Changeset 13325
- Timestamp:
- 09/11/12 13:49:31 (13 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 1 added
- 12 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/externalpackages/git/install.sh
r13246 r13325 18 18 #install 19 19 cd src 20 ./configure --prefix="$ISSM_DIR/externalpackages/git/install" 20 ./configure --prefix="$ISSM_DIR/externalpackages/git/install" --with-python="$ISSM_DIR/externalpackages/python/install/bin/python" 21 21 22 22 #Compile -
issm/trunk-jpl/src/c/Container/Elements.cpp
r13216 r13325 166 166 void Elements::ToResults(Results* results,Parameters* parameters){ 167 167 168 int i; 169 168 170 extern int my_rank; 169 171 extern int num_procs; … … 245 247 if(my_rank==0){ 246 248 /*No need to add this vector for all cpus*/ 247 results->AddObject(new DoubleVecExternalResult(results->Size()+1,resultsenums[i],vector_serial,vectorsize,resultssteps[i],resultstimes[i])); 249 #ifdef _HAVE_ADOLC_ 250 IssmPDouble* vector_serial_passive=xNew<IssmPDouble>(vectorsize); 251 for(i=0;i<vectorsize;i++)vector_serial_passive[i]=reCast<IssmPDouble>(vector_serial[i]); 252 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,resultsenums[i],vector_serial_passive,vectorsize,1,resultssteps[i],resultstimes[i])); 253 xDelete<IssmPDouble>(vector_serial_passive); 254 #else 255 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,resultsenums[i],vector_serial,vectorsize,1,resultssteps[i],resultstimes[i])); 256 #endif 248 257 } 249 258 … … 262 271 /*create result object and add to results dataset:*/ 263 272 if (patch->maxvertices && patch->maxnodes){ 264 results->AddObject(new IntExternalResult(results->Size()+1,PatchVerticesEnum,patch->maxvertices,1,0)); 265 results->AddObject(new IntExternalResult(results->Size()+1,PatchNodesEnum, patch->maxnodes,1,0)); 266 results->AddObject(new DoubleMatExternalResult(results->Size()+1,PatchEnum, patch->values,patch->numrows,patch->numcols,1,0)); 273 results->AddObject(new GenericExternalResult<int>(results->Size()+1,PatchVerticesEnum,patch->maxvertices,1,0)); 274 results->AddObject(new GenericExternalResult<int>(results->Size()+1,PatchNodesEnum, patch->maxnodes,1,0)); 275 #ifdef _HAVE_ADOLC_ 276 IssmPDouble* values_passive=xNew<IssmPDouble>(patch->numrows); 277 for(i=0;i<patch->numrows;i++)values_passive[i]=reCast<IssmPDouble>(patch->values[i]); 278 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,PatchEnum, values_passive,patch->numrows,patch->numcols,1,0)); 279 xDelete<IssmPDouble>(values_passive); 280 #else 281 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,PatchEnum, patch->values,patch->numrows,patch->numcols,1,0)); 282 #endif 267 283 } 268 284 } -
issm/trunk-jpl/src/c/Makefile.am
r13292 r13325 75 75 ./classes/objects/ElementResults/BoolElementResult.cpp\ 76 76 ./classes/objects/ExternalResults/ExternalResult.h\ 77 ./classes/objects/ExternalResults/BoolExternalResult.h\ 78 ./classes/objects/ExternalResults/BoolExternalResult.cpp\ 79 ./classes/objects/ExternalResults/DoubleExternalResult.h\ 80 ./classes/objects/ExternalResults/DoubleExternalResult.cpp\ 81 ./classes/objects/ExternalResults/DoubleVecExternalResult.h\ 82 ./classes/objects/ExternalResults/DoubleVecExternalResult.cpp\ 83 ./classes/objects/ExternalResults/DoubleMatExternalResult.h\ 84 ./classes/objects/ExternalResults/DoubleMatExternalResult.cpp\ 85 ./classes/objects/ExternalResults/IntExternalResult.h\ 86 ./classes/objects/ExternalResults/IntExternalResult.cpp\ 87 ./classes/objects/ExternalResults/StringExternalResult.h\ 88 ./classes/objects/ExternalResults/StringExternalResult.cpp\ 77 ./classes/objects/ExternalResults/GenericExternalResult.h\ 89 78 ./classes/objects/Elements/Tria.h\ 90 79 ./classes/objects/Elements/Tria.cpp\ -
issm/trunk-jpl/src/c/classes/objects/objects.h
r13321 r13325 93 93 /*ExternalResults: */ 94 94 #include "./ExternalResults/ExternalResult.h" 95 #include "./ExternalResults/BoolExternalResult.h" 96 #include "./ExternalResults/DoubleExternalResult.h" 97 #include "./ExternalResults/DoubleVecExternalResult.h" 98 #include "./ExternalResults/DoubleMatExternalResult.h" 99 #include "./ExternalResults/IntExternalResult.h" 100 #include "./ExternalResults/StringExternalResult.h" 95 #include "./ExternalResults/GenericExternalResult.h" 101 96 102 97 /*Materials: */ -
issm/trunk-jpl/src/c/modules/AddExternalResultx/AddExternalResultx.cpp
r13220 r13325 11 11 void AddExternalResultx( DataSet* results, int enumtype, IssmDouble value){ 12 12 /* Add new result in into results*/ 13 results->AddObject(new DoubleExternalResult(results->Size()+1,enumtype,value,1,0));13 results->AddObject(new GenericExternalResult<double>(results->Size()+1,enumtype,reCast<IssmPDouble>(value),1,0)); 14 14 } 15 15 void AddExternalResultx( DataSet* results, int enumtype, IssmDouble* value, int nraws){ 16 16 /* Add new result in into results*/ 17 results->AddObject(new DoubleVecExternalResult(results->Size()+1,enumtype,value,nraws,1,0)); 17 #ifdef _HAVE_ADOLC_ 18 IssmPDouble* value_passive=xNew<IssmPDouble>(nraws); 19 for(int i=0;i<nraws;i++)value_passive[i]=reCast<IssmPDouble>(value[i]); 20 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,enumtype,value_passive,nraws,1,1,0)); 21 xDelete<IssmPDouble>(value_passive); 22 #else 23 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,enumtype,value,nraws,1,1,0)); 24 #endif 18 25 } -
issm/trunk-jpl/src/c/modules/AutodiffDriversx/AutodiffDriversx.cpp
r13314 r13325 67 67 if (fos_forward(1,num_dependents,num_independents, 0, xp, tangentDir, theOutput, theJacVecProduct )) 68 68 _error_("fos_forward returned non-zero error code"); 69 IssmDouble *theJacVecProductA=xNew<IssmDouble>(num_dependents); 70 for (int i=0;i<num_dependents;++i) 71 theJacVecProductA[i]=theJacVecProduct[i]; 72 results->AddObject(new DoubleVecExternalResult(results->Size()+1,AutodiffJacobianEnum,theJacVecProductA,num_dependents,1,0.0)); 69 results->AddObject(new GenericExternalResult<IssmPDouble*>(results->Size()+1,AutodiffJacobianEnum,theJacVecProduct,num_dependents,1,1,0.0)); 73 70 74 71 #if 0 75 72 double **J=xNew<double>(num_dependents,num_independents); 76 73 jacobian(1,num_dependents,num_independents,xp,J); 77 Issm Double *matJ=xNew<IssmDouble>(num_dependents*num_independents);74 IssmPDouble *matJ=xNew<IssmPDouble>(num_dependents*num_independents); 78 75 for (int i=0;i<num_dependents*num_independents;++i) 79 76 matJ[i]=J[i]; 80 results->AddObject(new DoubleMatExternalResult(results->Size()+1,AutodiffJacobianEnum,matJ,num_independents,num_dependents,1,0.0));81 xDelete (matJ);77 results->AddObject(new GenericExternalResult<IssmPDouble*>(results->Size()+1,AutodiffJacobianEnum,matJ,num_independents,num_dependents,1,1,0.0)); 78 xDelete<IssmPDouble>(matJ); 82 79 xDelete(J); 83 80 #endif -
issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
r12832 r13325 45 45 parameters->FindParam(&solutiontype,SolutionTypeEnum); 46 46 EnumToStringx(&solutiontypestring,solutiontype); 47 results->AddObject(new StringExternalResult(results->Size()+1,SolutionTypeEnum,solutiontypestring,1,0));47 results->AddObject(new GenericExternalResult<char*>(results->Size()+1,SolutionTypeEnum,solutiontypestring,1,0)); 48 48 xDelete<char>(solutiontypestring); 49 49 } -
issm/trunk-jpl/src/c/modules/RequestedOutputsx/RequestedOutputsx.cpp
r12773 r13325 30 30 case IceVolumeEnum: 31 31 Responsex(&output_value,elements,nodes,vertices,loads,materials,parameters,"IceVolume",false,0); 32 results->AddObject(new DoubleExternalResult(results->Size()+1,IceVolumeEnum,output_value,step,time));32 results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeEnum,reCast<IssmPDouble>(output_value),step,time)); 33 33 break; 34 34 case TotalSmbEnum: 35 35 Responsex(&output_value,elements,nodes,vertices,loads,materials,parameters,"TotalSmb",false,0); 36 results->AddObject(new DoubleExternalResult(results->Size()+1,TotalSmbEnum,output_value,step,time));36 results->AddObject(new GenericExternalResult<double>(results->Size()+1,TotalSmbEnum,reCast<IssmPDouble>(output_value),step,time)); 37 37 break; 38 38 default: -
issm/trunk-jpl/src/c/solutions/control_core.cpp
r13073 r13325 115 115 if(!dakota_analysis){ //do not save this if we are running the control core from a qmu run! 116 116 for(i=0;i<num_controls;i++) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_type[i]); 117 femmodel->results->AddObject(new DoubleVecExternalResult(femmodel->results->Size()+1,JEnum,J,nsteps,1,0)); 117 118 #ifdef _HAVE_ADOLC_ 119 IssmPDouble* J_passive=xNew<IssmPDouble>(nsteps); 120 for(int i=0;i<nsteps;i++)J_passive[i]=reCast<IssmPDouble>(J[i]); 121 femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J_passive,nsteps,1,1,0)); 122 xDelete<IssmPDouble>(J_passive); 123 #else 124 femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J,nsteps,1,1,0)); 125 #endif 118 126 } 119 127 -
issm/trunk-jpl/src/c/solutions/controlrestart.cpp
r12477 r13325 25 25 /*we essentially want J and the parameter: */ 26 26 for(int i=0;i<num_controls;i++) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_type[i]); 27 femmodel->results->AddObject(new DoubleVecExternalResult(femmodel->results->Size()+1,JEnum,J,nsteps,1,0)); 28 //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1,InversionControlParametersEnum,EnumToStringx(control_type),1,0)); 27 #ifdef _HAVE_ADOLC_ 28 IssmPDouble* J_passive=xNew<IssmPDouble>(nsteps); 29 for(int i=0;i<nsteps;i++)J_passive[i]=reCast<IssmPDouble>(J[i]); 30 femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J_passive,nsteps,1,1,0)); 31 xDelete<IssmPDouble>(J_passive); 32 #else 33 femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J,nsteps,1,1,0)); 34 #endif 35 //femmodel->results->AddObject(new GenericExternalResult<char*>(femmodel->results->Size()+1,InversionControlParametersEnum,EnumToStringx(control_type),1,0)); 29 36 30 37 /*write to disk: */ -
issm/trunk-jpl/src/c/solutions/controltao_core.cpp
r13232 r13325 88 88 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_list[i]); 89 89 } 90 femmodel->results->AddObject(new DoubleVecExternalResult(femmodel->results->Size()+1,JEnum,user.J,maxiter+3,1,0));90 femmodel->results->AddObject(new GenericExternalResult<double*>(femmodel->results->Size()+1,JEnum,user.J,maxiter+3,1,1,0)); 91 91 92 92 /*Finalize*/ -
issm/trunk-jpl/src/c/solutions/issm.cpp
r13286 r13325 165 165 if(profiling){ 166 166 ProfilingEnd(&Solution_time,&Memory_use,&Current_flops,Time_start,Flops_start); 167 femmodel->results->AddObject(new DoubleExternalResult(femmodel->results->Size()+1, ProfilingSolutionTimeEnum, Solution_time, 1, 0));168 femmodel->results->AddObject(new DoubleExternalResult(femmodel->results->Size()+1, ProfilingCurrentMemEnum, Memory_use, 1, 0));169 femmodel->results->AddObject(new DoubleExternalResult(femmodel->results->Size()+1, ProfilingCurrentFlopsEnum, Current_flops, 1, 0));167 femmodel->results->AddObject(new GenericExternalResult<double>(femmodel->results->Size()+1, ProfilingSolutionTimeEnum, Solution_time, 1, 0)); 168 femmodel->results->AddObject(new GenericExternalResult<double>(femmodel->results->Size()+1, ProfilingCurrentMemEnum, Memory_use, 1, 0)); 169 femmodel->results->AddObject(new GenericExternalResult<double>(femmodel->results->Size()+1, ProfilingCurrentFlopsEnum, Current_flops, 1, 0)); 170 170 } 171 171 -
issm/trunk-jpl/src/c/solutions/kriging.cpp
r13277 r13325 73 73 if(my_rank==0){ 74 74 output_fid=pfopen(outbinfilename,"wb"); 75 results->AddObject(new DoubleVecExternalResult(results->Size()+1,0,predictions,ninterp,1,0));76 results->AddObject(new DoubleVecExternalResult(results->Size()+1,1,error,ninterp,1,0));75 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,0,predictions,ninterp,1,1,0)); 76 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,1,error,ninterp,1,1,0)); 77 77 for(int i=0;i<results->Size();i++){ 78 78 ExternalResult* result=(ExternalResult*)results->GetObjectByOffset(i); -
issm/trunk-jpl/src/c/solvers/solver_newton.cpp
r13216 r13325 71 71 int tempStep=1; 72 72 IssmDouble tempTime=1.0; 73 femmodel->results->AddObject(new BoolExternalResult(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, tempStep, tempTime));73 femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, tempStep, tempTime)); 74 74 break; 75 75 } … … 79 79 int tempStep=1; 80 80 IssmDouble tempTime=1.0; 81 femmodel->results->AddObject(new BoolExternalResult(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, tempStep, tempTime));81 femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, tempStep, tempTime)); 82 82 break; 83 83 } -
issm/trunk-jpl/src/c/solvers/solver_nonlinear.cpp
r13216 r13325 89 89 int tempStep=1; 90 90 IssmDouble tempTime=1.0; 91 femmodel->results->AddObject(new BoolExternalResult(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, tempStep, tempTime));91 femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, tempStep, tempTime)); 92 92 break; 93 93 } … … 100 100 int tempStep=1; 101 101 IssmDouble tempTime=1.0; 102 femmodel->results->AddObject(new BoolExternalResult(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, tempStep, tempTime));102 femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, tempStep, tempTime)); 103 103 break; 104 104 } -
issm/trunk-jpl/test/NightlyRun/ad.m
r13302 r13325 8 8 md.autodiff.independents={'Thickness','Surface'}; 9 9 md.autodiff.dependents={'IceVolume'}; 10 md=solve(md,TransientSolutionEnum); 10 %md=solve(md,TransientSolutionEnum); 11 md=solve(md,PrognosticSolutionEnum); 11 12 12 13 %Fields and tolerances to track changes
Note:
See TracChangeset
for help on using the changeset viewer.