Changeset 25379 for issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
- Timestamp:
- 08/11/20 19:43:31 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
r25337 r25379 9 9 #include "../ModelProcessorx.h" 10 10 11 void UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs 2* inputs2,Materials* materials, IoModel* iomodel){11 void UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel){ 12 12 /*Intermediary*/ 13 13 bool control_analysis; … … 34 34 iomodel->FindConstant(&isautodiff,"md.autodiff.isautodiff"); 35 35 if(isautodiff){ 36 UpdateElementsAndMaterialsControlAD(elements,parameters,inputs 2,materials,iomodel);36 UpdateElementsAndMaterialsControlAD(elements,parameters,inputs,materials,iomodel); 37 37 return; 38 38 } … … 72 72 for(int i=0;i<num_cost_functions;i++){ 73 73 cost_function=cost_function_enums[i]; 74 if( cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.inversion.thickness_obs",InversionThicknessObsEnum);75 else if(cost_function==SurfaceAbsMisfitEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.inversion.surface_obs",InversionSurfaceObsEnum);76 else if(cost_function==RheologyBInitialguessMisfitEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",RheologyBInitialguessEnum);74 if( cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(inputs,elements,"md.inversion.thickness_obs",InversionThicknessObsEnum); 75 else if(cost_function==SurfaceAbsMisfitEnum) iomodel->FetchDataToInput(inputs,elements,"md.inversion.surface_obs",InversionSurfaceObsEnum); 76 else if(cost_function==RheologyBInitialguessMisfitEnum) iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",RheologyBInitialguessEnum); 77 77 else if(cost_function==SurfaceAbsVelMisfitEnum 78 78 || cost_function==SurfaceRelVelMisfitEnum … … 80 80 || cost_function==SurfaceLogVxVyMisfitEnum 81 81 || cost_function==SurfaceAverageVelMisfitEnum){ 82 iomodel->FetchDataToInput(inputs 2,elements,"md.inversion.vx_obs",InversionVxObsEnum);83 if(domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.inversion.vy_obs",InversionVyObsEnum);82 iomodel->FetchDataToInput(inputs,elements,"md.inversion.vx_obs",InversionVxObsEnum); 83 if(domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(inputs,elements,"md.inversion.vy_obs",InversionVyObsEnum); 84 84 } 85 85 for(int j=0;j<elements->Size();j++){ 86 86 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 87 element->DatasetInputAdd(InversionCostFunctionsCoefficientsEnum,&weights[i*iomodel->numberofvertices],inputs 2,iomodel,M,1,1,cost_function,7,cost_function);87 element->DatasetInputAdd(InversionCostFunctionsCoefficientsEnum,&weights[i*iomodel->numberofvertices],inputs,iomodel,M,1,1,cost_function,7,cost_function); 88 88 } 89 89 } … … 162 162 for(int j=0;j<elements->Size();j++){ 163 163 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 164 element->ControlInputCreate(independent,&independents_min[offset],&independents_max[offset],inputs 2,iomodel,M,N,scale,control,i+1);164 element->ControlInputCreate(independent,&independents_min[offset],&independents_max[offset],inputs,iomodel,M,N,scale,control,i+1); 165 165 } 166 166 xDelete<IssmDouble>(independent); … … 207 207 xDelete<char*>(controls); 208 208 } 209 void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs 2* inputs2,Materials* materials, IoModel* iomodel){209 void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel){ 210 210 211 211 #if defined(_HAVE_AD_) … … 292 292 for(int j=0;j<elements->Size();j++){ 293 293 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 294 element->ControlInputCreate(independent,independents_min,independents_max,inputs 2,iomodel,M,N,1.,input_enum,i+1);294 element->ControlInputCreate(independent,independents_min,independents_max,inputs,iomodel,M,N,1.,input_enum,i+1); 295 295 } 296 296 xDelete<IssmDouble>(independent);
Note:
See TracChangeset
for help on using the changeset viewer.