Changeset 25578
- Timestamp:
- 09/17/20 12:08:07 (5 years ago)
- Location:
- issm/trunk-jpl/src/c/cores
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/cores/controladm1qn3_core.cpp
r25558 r25578 271 271 int num_dependents; 272 272 IssmPDouble *dependents; 273 DataSet *dependent_objects = NULL;274 IssmDouble J = 0.;273 IssmDouble J = 0.; 274 DataSet *dependent_objects = ((DataSetParam*)femmodel->parameters->FindParamObject(AutodiffDependentObjectsEnum))->value; 275 275 femmodel->parameters->FindParam(&num_dependents,AutodiffNumDependentsEnum); 276 femmodel->parameters->FindParam(&dependent_objects,AutodiffDependentObjectsEnum);277 276 278 277 /*Go through our dependent variables, and compute the response:*/ … … 471 470 xDelete<IssmPDouble>(dependents); 472 471 xDelete<IssmPDouble>(totalgradient); 473 delete dependent_objects;474 472 }/*}}}*/ 475 473 void controladm1qn3_core(FemModel* femmodel){/*{{{*/ -
issm/trunk-jpl/src/c/cores/controlvalidation_core.cpp
r25558 r25578 209 209 int num_dependents; 210 210 IssmPDouble *dependents; 211 DataSet * dependent_objects=NULL;211 DataSet *dependent_objects = ((DataSetParam*)femmodel->parameters->FindParamObject(AutodiffDependentObjectsEnum))->value; 212 212 IssmDouble J=0.; 213 213 femmodel->parameters->FindParam(&num_dependents,AutodiffNumDependentsEnum); 214 femmodel->parameters->FindParam(&dependent_objects,AutodiffDependentObjectsEnum);215 214 216 215 /*Go through our dependent variables, and compute the response:*/ … … 340 339 xDelete<double>(X0); 341 340 xDelete<IssmDouble>(scaling_factors); 342 #if defined(_HAVE_CODIPACK_)343 delete dependent_objects;344 #endif345 341 } -
issm/trunk-jpl/src/c/cores/transient_core.cpp
r25575 r25578 62 62 #endif 63 63 64 DataSet* dependent_objects=NULL;65 if(iscontrol && isautodiff){66 femmodel->parameters->FindParam(&dependent_objects,AutodiffDependentObjectsEnum);67 }68 69 64 if(isslr) sealevelrise_core_geometry(femmodel); 70 65 … … 128 123 if(iscontrol && isautodiff){ 129 124 /*Go through our dependent variables, and compute the response:*/ 125 DataSet* dependent_objects=((DataSetParam*)femmodel->parameters->FindParamObject(AutodiffDependentObjectsEnum))->value; 130 126 for(Object* & object:dependent_objects->objects){ 131 127 DependentObject* dep=(DependentObject*)object; … … 138 134 139 135 if(!iscontrol || !isautodiff) femmodel->RequestedDependentsx(); 140 if(iscontrol && isautodiff) femmodel->parameters->SetParam(dependent_objects,AutodiffDependentObjectsEnum);141 142 136 }/*}}}*/ 143 137 void transient_step(FemModel* femmodel){/*{{{*/ … … 277 271 int step,timestepping; 278 272 int recording_frequency; 279 DataSet* dependent_objects=NULL; 273 274 /*Get rank*/ 275 int my_rank = IssmComm::GetRank(); 280 276 281 277 /*then recover parameters common to all solutions*/ … … 286 282 femmodel->parameters->FindParam(×tepping,TimesteppingTypeEnum); 287 283 femmodel->parameters->FindParam(&isslr,TransientIsslrEnum); 288 femmodel->parameters->FindParam(&dependent_objects,AutodiffDependentObjectsEnum);289 284 femmodel->parameters->FindParam(&recording_frequency,SettingsRecordingFrequencyEnum); _assert_(recording_frequency>0); 290 285 if(isslr) sealevelrise_core_geometry(femmodel); … … 338 333 339 334 /*Go through our dependent variables, and compute the response:*/ 335 DataSet* dependent_objects=((DataSetParam*)femmodel->parameters->FindParamObject(AutodiffDependentObjectsEnum))->value; 340 336 for(Object* & object:dependent_objects->objects){ 341 337 DependentObject* dep=(DependentObject*)object; … … 378 374 femmodel->Marshall(hdl_regin); 379 375 delete hdl_regin; 380 for(int i=0; i < Xsize; i++) tape_codi.registerInput(X[i]); 381 376 if(my_rank==0) for(int i=0; i < Xsize; i++) tape_codi.registerInput(X[i]); 382 377 SetControlInputsFromVectorx(femmodel,X); 383 378 384 379 IssmDouble J = 0.; 385 380 if(0){ 381 DataSet* dependent_objects=((DataSetParam*)femmodel->parameters->FindParamObject(AutodiffDependentObjectsEnum))->value; 386 382 for(Object* & object:dependent_objects->objects){ 387 383 DependentObject* dep=(DependentObject*)object;
Note:
See TracChangeset
for help on using the changeset viewer.