Changeset 13509
- Timestamp:
- 10/02/12 16:33:22 (12 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
r13483 r13509 45 45 if(strcmp(autodiff_driver,"fos_forward")==0){ 46 46 parameters->AddObject(iomodel->CopyConstantObject(AutodiffFosForwardIndexEnum)); 47 } 48 else if(strcmp(autodiff_driver,"fos_reverse")==0){ 49 parameters->AddObject(iomodel->CopyConstantObject(AutodiffFosReverseIndexEnum)); 47 50 } 48 51 else if(strcmp(autodiff_driver,"fov_forward")==0){ -
issm/trunk-jpl/src/m/classes/autodiff.m
r13505 r13509 121 121 end 122 122 %}}} 123 %if driver is fos_reverse, build index: {{{ 124 if strcmpi(obj.driver,'fos_reverse'), 125 index=0; 126 127 for i=1:num_dependent_objects, 128 dep=obj.dependents{i}; 129 if ~isnan(dep.fos_reverse_index), 130 index=index+dep.fos_reverse_index; 131 break; 132 else 133 if strcmpi(dep.type,'scalar'), 134 index=index+1; 135 else 136 index=index+dep.nods; 137 end 138 end 139 end 140 index=index-1; %get c-index numbering going 141 WriteData(fid,'data',index,'enum',AutodiffFosReverseIndexEnum(),'format','Integer'); 142 end 143 %}}} 123 144 %if driver is fov_forward, build indices: {{{ 124 145 if strcmpi(obj.driver,'fov_forward'), -
issm/trunk-jpl/src/m/classes/dependent.m
r13483 r13509 8 8 name = ''; 9 9 type = ''; 10 fos_reverse_index = NaN; 10 11 exp = ''; 11 12 segments = []; 12 13 index = -1; 14 nods = 0; 13 15 end 14 16 methods … … 23 25 obj.segments=getfieldvalue(options,'segments',[]); 24 26 obj.index=getfieldvalue(options,'index',-1); 27 obj.nods=getfieldvalue(options,'nods',0); 25 28 26 29 %if name is mass flux: … … 49 52 end 50 53 end 54 if ~isnan(obj.fos_reverse_index), 55 if ~strcmpi(driver,'fos_reverse'), 56 error('cannot declare a dependent with a fos_reverse_index when the driver is not fos_reverse!'); 57 end 58 if obj.nods==0, 59 error('ependent checkconsistency error: nods should be set to the size of the independent variable'); 60 end 61 62 end 51 63 52 64 end % }}} … … 56 68 fielddisplay(obj,'name','variable name (must match corresponding Enum)'); 57 69 fielddisplay(obj,'type','type of variable (''vertex'' or ''scalar'')'); 70 71 if ~isnan(obj.fos_reverse_index), 72 fielddisplay(obj,'fos_reverse_index','index for fos_reverse driver of ADOLC'); 73 end 58 74 if ~isempty(obj.exp), 59 75 fielddisplay(obj,'exp','file needed to compute dependent variable');
Note:
See TracChangeset
for help on using the changeset viewer.