Changeset 13855
- Timestamp:
- 10/30/12 14:08:46 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 8 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r13831 r13855 325 325 ./solutions/ResetBoundaryConditions.cpp\ 326 326 ./solutions/AnalysisConfiguration.cpp\ 327 ./solutions/WrapperCorePointerFromSolutionEnum.cpp\ 327 328 ./solutions/CorePointerFromSolutionEnum.cpp\ 328 ./solutions/PureCorePointerFromSolutionEnum.cpp\329 329 ./solutions/EnvironmentInit.cpp\ 330 330 ./solutions/EnvironmentFinalize.cpp\ -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r13813 r13855 304 304 305 305 /*Figure out which solution core we are going to run with the current solution type: */ 306 CorePointerFromSolutionEnum(&solutioncore,this->parameters,solution_type);306 WrapperCorePointerFromSolutionEnum(&solutioncore,this->parameters,solution_type); 307 307 308 308 /*run solutoin core: */ -
issm/trunk-jpl/src/c/solutions/AdjointCorePointerFromSolutionEnum.cpp
r13621 r13855 1 /*!\file: CorePointerFromSolutionEnum.cpp1 /*!\file: AdjointCorePointerFromSolutionEnum.cpp 2 2 * \brief: return type of analyses, number of analyses and core solution function. 3 3 */ -
issm/trunk-jpl/src/c/solutions/CorePointerFromSolutionEnum.cpp
r13621 r13855 18 18 #include "../solvers/solvers.h" 19 19 20 void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype ,bool nodakotacore){20 void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype){ 21 21 22 22 /*output: */ 23 23 void (*solutioncore)(FemModel*)=NULL; 24 24 25 /*parameters: */ 26 bool control_analysis=false; 27 bool tao_analysis=false; 28 bool dakota_analysis=false; 25 switch(solutiontype){ 29 26 30 /* retrieve some parameters that tell us whether wrappers are allowed, or whether we return 31 * a pure core. Wrappers can be dakota_core (which samples many solution_cores) or control_core (which 32 * carries out adjoint based inversion on a certain core: */ 33 parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 34 parameters->FindParam(&control_analysis,InversionIscontrolEnum); 35 parameters->FindParam(&tao_analysis,InversionTaoEnum); 36 37 if(nodakotacore)dakota_analysis=false; 38 39 if(dakota_analysis){ 40 #ifdef _HAVE_DAKOTA_ 41 solutioncore=dakota_core; 42 #else 43 _error_("ISSM was not compiled with dakota support, cannot carry out dakota analysis!"); 44 #endif 27 case DiagnosticSolutionEnum: 28 #ifdef _HAVE_DIAGNOSTIC_ 29 solutioncore=&diagnostic_core; 30 #else 31 _error_("ISSM was not compiled with diagnostic capabilities. Exiting"); 32 #endif 33 break; 34 case SteadystateSolutionEnum: 35 #ifdef _HAVE_STEADYSTATE_ 36 solutioncore=&steadystate_core; 37 #else 38 _error_("ISSM was not compiled with steady state capabilities. Exiting"); 39 #endif 40 break; 41 case ThermalSolutionEnum: 42 #ifdef _HAVE_THERMAL_ 43 solutioncore=&thermal_core; 44 #else 45 _error_("ISSM was not compiled with thermal capabilities. Exiting"); 46 #endif 47 break; 48 case EnthalpySolutionEnum: 49 #ifdef _HAVE_THERMAL_ 50 solutioncore=&enthalpy_core; 51 #else 52 _error_("ISSM was not compiled with thermal capabilities. Exiting"); 53 #endif 54 break; 55 case BalancethicknessSolutionEnum: 56 #ifdef _HAVE_BALANCED_ 57 solutioncore=&balancethickness_core; 58 #else 59 _error_("ISSM was not compiled with balanced capabilities. Exiting"); 60 #endif 61 break; 62 case HydrologySolutionEnum: 63 #ifdef _HAVE_HYDROLOGY_ 64 solutioncore=&hydrology_core; 65 #else 66 _error_("ISSM was not compiled with hydrology capabilities. Exiting"); 67 #endif 68 break; 69 case SurfaceSlopeSolutionEnum: 70 #ifdef _HAVE_SLOPE_ 71 solutioncore=&surfaceslope_core; 72 #else 73 _error_("ISSM was not compiled with slope capabilities. Exiting"); 74 #endif 75 break; 76 case BedSlopeSolutionEnum: 77 #ifdef _HAVE_SLOPE_ 78 solutioncore=&bedslope_core; 79 #else 80 _error_("ISSM was not compiled with slope capabilities. Exiting"); 81 #endif 82 break; 83 case TransientSolutionEnum: 84 #ifdef _HAVE_TRANSIENT_ 85 solutioncore=&transient_core; 86 #else 87 _error_("ISSM was not compiled with transient capabilities. Exiting"); 88 #endif 89 break; 90 case PrognosticSolutionEnum: 91 #ifdef _HAVE_PROGNOSTIC_ 92 solutioncore=&prognostic_core; 93 #else 94 _error_("ISSM was not compiled with prognostic capabilities. Exiting"); 95 #endif 96 break; 97 default: 98 _error_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!"); 99 break; 45 100 } 46 else if(control_analysis){47 #ifdef _HAVE_CONTROL_48 if(tao_analysis) solutioncore=controltao_core;49 else solutioncore=control_core;50 #else51 _error_("ISSM was not compiled with control support, cannot carry out control analysis!");52 #endif53 }54 else PureCorePointerFromSolutionEnum(&solutioncore,parameters,solutiontype); /*This means we retrieve a core solution that is not a wrapper*/55 101 56 102 /*Assign output pointer:*/ -
issm/trunk-jpl/src/c/solutions/DakotaSpawnCore.cpp
r13813 r13855 76 76 /*Determine solution sequence: */ 77 77 if(VerboseQmu()) _pprintLine_("Starting " << EnumToStringx(solution_type) << " core:"); 78 CorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type,nodakotacore);78 WrapperCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type,nodakotacore); 79 79 80 80 /*Run the core solution sequence: */ -
issm/trunk-jpl/src/c/solutions/WrapperCorePointerFromSolutionEnum.cpp
r13852 r13855 1 /*!\file: PureCorePointerFromSolutionEnum.cpp1 /*!\file: WrapperCorePointerFromSolutionEnum.cpp 2 2 * \brief: return type of analyses, number of analyses and core solution function. 3 3 */ … … 18 18 #include "../solvers/solvers.h" 19 19 20 void PureCorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype){20 void WrapperCorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype,bool nodakotacore){ 21 21 22 22 /*output: */ 23 23 void (*solutioncore)(FemModel*)=NULL; 24 24 25 switch(solutiontype){ 25 /*parameters: */ 26 bool control_analysis=false; 27 bool tao_analysis=false; 28 bool dakota_analysis=false; 26 29 27 case DiagnosticSolutionEnum: 28 #ifdef _HAVE_DIAGNOSTIC_ 29 solutioncore=&diagnostic_core; 30 #else 31 _error_("ISSM was not compiled with diagnostic capabilities. Exiting"); 32 #endif 33 break; 34 case SteadystateSolutionEnum: 35 #ifdef _HAVE_STEADYSTATE_ 36 solutioncore=&steadystate_core; 37 #else 38 _error_("ISSM was not compiled with steady state capabilities. Exiting"); 39 #endif 40 break; 41 case ThermalSolutionEnum: 42 #ifdef _HAVE_THERMAL_ 43 solutioncore=&thermal_core; 44 #else 45 _error_("ISSM was not compiled with thermal capabilities. Exiting"); 46 #endif 47 break; 48 case EnthalpySolutionEnum: 49 #ifdef _HAVE_THERMAL_ 50 solutioncore=&enthalpy_core; 51 #else 52 _error_("ISSM was not compiled with thermal capabilities. Exiting"); 53 #endif 54 break; 55 case BalancethicknessSolutionEnum: 56 #ifdef _HAVE_BALANCED_ 57 solutioncore=&balancethickness_core; 58 #else 59 _error_("ISSM was not compiled with balanced capabilities. Exiting"); 60 #endif 61 break; 62 case HydrologySolutionEnum: 63 #ifdef _HAVE_HYDROLOGY_ 64 solutioncore=&hydrology_core; 65 #else 66 _error_("ISSM was not compiled with hydrology capabilities. Exiting"); 67 #endif 68 break; 69 case SurfaceSlopeSolutionEnum: 70 #ifdef _HAVE_SLOPE_ 71 solutioncore=&surfaceslope_core; 72 #else 73 _error_("ISSM was not compiled with slope capabilities. Exiting"); 74 #endif 75 break; 76 case BedSlopeSolutionEnum: 77 #ifdef _HAVE_SLOPE_ 78 solutioncore=&bedslope_core; 79 #else 80 _error_("ISSM was not compiled with slope capabilities. Exiting"); 81 #endif 82 break; 83 case TransientSolutionEnum: 84 #ifdef _HAVE_TRANSIENT_ 85 solutioncore=&transient_core; 86 #else 87 _error_("ISSM was not compiled with transient capabilities. Exiting"); 88 #endif 89 break; 90 case PrognosticSolutionEnum: 91 #ifdef _HAVE_PROGNOSTIC_ 92 solutioncore=&prognostic_core; 93 #else 94 _error_("ISSM was not compiled with prognostic capabilities. Exiting"); 95 #endif 96 break; 97 default: 98 _error_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!"); 99 break; 30 /* retrieve some parameters that tell us whether wrappers are allowed, or whether we return 31 * a pure core. Wrappers can be dakota_core (which samples many solution_cores) or control_core (which 32 * carries out adjoint based inversion on a certain core: */ 33 parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 34 parameters->FindParam(&control_analysis,InversionIscontrolEnum); 35 parameters->FindParam(&tao_analysis,InversionTaoEnum); 36 37 if(nodakotacore)dakota_analysis=false; 38 39 if(dakota_analysis){ 40 #ifdef _HAVE_DAKOTA_ 41 solutioncore=dakota_core; 42 #else 43 _error_("ISSM was not compiled with dakota support, cannot carry out dakota analysis!"); 44 #endif 100 45 } 46 else if(control_analysis){ 47 #ifdef _HAVE_CONTROL_ 48 if(tao_analysis) solutioncore=controltao_core; 49 else solutioncore=control_core; 50 #else 51 _error_("ISSM was not compiled with control support, cannot carry out control analysis!"); 52 #endif 53 } 54 else CorePointerFromSolutionEnum(&solutioncore,parameters,solutiontype); /*This means we retrieve a core solution that is not a wrapper*/ 101 55 102 56 /*Assign output pointer:*/ -
issm/trunk-jpl/src/c/solutions/control_core.cpp
r13621 r13855 62 62 63 63 /*out of solution_type, figure out solution core and adjoint function pointer*/ 64 PureCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type);64 CorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type); 65 65 AdjointCorePointerFromSolutionEnum(&adjointcore,solution_type); 66 66 -
issm/trunk-jpl/src/c/solutions/controltao_core.cpp
r13852 r13855 94 94 femmodel->parameters->SetParam(true,SaveResultsEnum); 95 95 void (*solutioncore)(FemModel*)=NULL; 96 PureCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type);96 CorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type); 97 97 solutioncore(femmodel); 98 98 99 99 /*Clean up and return*/ 100 100 xDelete<int>(control_list); 101 xDelete<double>(user.J); 101 102 xdelete(&X); 102 103 TaoDestroy(&tao); … … 135 136 void (*solutioncore)(FemModel*)=NULL; 136 137 void (*adjointcore)(FemModel*)=NULL; 137 PureCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type);138 CorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type); 138 139 AdjointCorePointerFromSolutionEnum(&adjointcore,solution_type); 139 140 solutioncore(femmodel); -
issm/trunk-jpl/src/c/solutions/solutions.h
r13589 r13855 55 55 //solution configuration 56 56 void AnalysisConfiguration(int** panalyses,int* pnumanalyses, int solutiontype); 57 void PureCorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype);58 void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype,bool nodakotacore=false);57 void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype); 58 void WrapperCorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype,bool nodakotacore=false); 59 59 void AdjointCorePointerFromSolutionEnum(void (**padjointcore)(FemModel*),int solutiontype); 60 60
Note:
See TracChangeset
for help on using the changeset viewer.