source:
issm/oecreview/Archive/11821-11840/ISSM-11826-11827.diff@
11991
Last change on this file since 11991 was 11991, checked in by , 13 years ago | |
---|---|
File size: 61.3 KB |
-
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/prognostic_core.cpp
15 15 16 16 /*parameters: */ 17 17 int solution_type; 18 bool control_analysis;18 bool save_results; 19 19 20 20 /*activate formulation: */ 21 21 femmodel->SetCurrentConfiguration(PrognosticAnalysisEnum); 22 22 23 23 /*recover parameters: */ 24 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);24 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 25 25 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 26 26 27 27 _printf_(VerboseSolution()," call computational core\n"); 28 28 solver_linear(femmodel); 29 29 30 if(s olution_type==PrognosticSolutionEnum && !control_analysis){30 if(save_results){ 31 31 _printf_(VerboseSolution()," saving results\n"); 32 32 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ThicknessEnum); 33 33 } 34 35 34 } 36 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/steadystate_core.cpp
24 24 int step; 25 25 26 26 /*parameters: */ 27 bool control_analysis,isenthalpy;27 bool save_results,isenthalpy; 28 28 int dim; 29 29 int solution_type; 30 30 int maxiter; … … 33 33 34 34 /* recover parameters:*/ 35 35 femmodel->parameters->FindParam(&dim,MeshDimensionEnum); 36 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);36 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 37 37 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 38 38 femmodel->parameters->FindParam(&maxiter,SteadystateMaxiterEnum); 39 39 femmodel->parameters->FindParam(&numoutputs,SteadystateNumRequestedOutputsEnum); … … 80 80 step++; 81 81 } 82 82 83 if(s olution_type==SteadystateSolutionEnum && !control_analysis){83 if(save_results){ 84 84 _printf_(VerboseSolution()," saving results\n"); 85 85 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum); 86 86 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/surfaceslope_core.cpp
16 16 int dim; 17 17 bool isstokes; 18 18 bool ishutter; 19 bool control_analysis;19 bool save_results; 20 20 int solution_type; 21 21 22 22 /*Recover some parameters: */ 23 23 femmodel->parameters->FindParam(&dim,MeshDimensionEnum); 24 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);24 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 25 25 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 26 26 27 27 _printf_(VerboseSolution(),"%s\n","computing slope..."); … … 32 32 femmodel->SetCurrentConfiguration(SurfaceSlopeAnalysisEnum,SurfaceSlopeYAnalysisEnum); 33 33 solver_linear(femmodel); 34 34 35 if(s olution_type==SurfaceSlopeSolutionEnum && !control_analysis){35 if(save_results){ 36 36 _printf_(VerboseSolution(),"saving results:\n"); 37 37 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceSlopeXEnum); 38 38 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceSlopeYEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/thermal_core.cpp
18 18 19 19 /*intermediary*/ 20 20 double melting_offset; 21 bool control_analysis;21 bool save_results; 22 22 int solution_type; 23 23 bool dakota_analysis = false; 24 24 25 25 //first recover parameters common to all solutions 26 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);26 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 27 27 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 28 28 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 29 29 … … 35 35 /*call thermal_core_step: */ 36 36 thermal_core_step(femmodel); 37 37 38 if(s olution_type==ThermalSolutionEnum && !control_analysis){38 if(save_results){ 39 39 _printf_(VerboseSolution()," saving results\n"); 40 40 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum); 41 41 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum); 42 42 } 43 44 43 } -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/adjointdiagnostic_core.cpp
16 16 17 17 /*parameters: */ 18 18 bool isstokes; 19 bool control_analysis;19 bool save_results; 20 20 bool conserve_loads = true; 21 21 int solution_type; 22 22 23 23 /*retrieve parameters:*/ 24 24 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 25 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);25 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 26 26 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 27 27 28 28 /*Compute velocities*/ … … 39 39 solver_adjoint_linear(femmodel); 40 40 41 41 /*Save results*/ 42 if(s olution_type==AdjointSolutionEnum && !control_analysis){42 if(save_results){ 43 43 _printf_(VerboseSolution()," saving results\n"); 44 44 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,AdjointxEnum); 45 45 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,AdjointyEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/bedslope_core.cpp
16 16 int dim; 17 17 bool isstokes; 18 18 bool ishutter; 19 bool control_analysis;19 bool save_results; 20 20 int solution_type; 21 21 22 22 /*Recover some parameters: */ 23 23 femmodel->parameters->FindParam(&dim,MeshDimensionEnum); 24 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);24 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 25 25 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 26 26 27 27 _printf_(VerboseSolution(),"%s\n"," computing slope"); … … 32 32 femmodel->SetCurrentConfiguration(BedSlopeAnalysisEnum,BedSlopeYAnalysisEnum); 33 33 solver_linear(femmodel); 34 34 35 if(s olution_type==BedSlopeSolutionEnum && !control_analysis){35 if(save_results){ 36 36 _printf_(VerboseSolution()," saving results\n"); 37 37 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BedSlopeXEnum); 38 38 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BedSlopeYEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/balancethickness_core.cpp
17 17 /*parameters: */ 18 18 int dim; 19 19 int solution_type; 20 bool control_analysis;20 bool save_results; 21 21 22 22 /*activate formulation: */ 23 23 femmodel->SetCurrentConfiguration(BalancethicknessAnalysisEnum); 24 24 25 25 /*recover parameters: */ 26 26 femmodel->parameters->FindParam(&dim,MeshDimensionEnum); 27 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);27 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 28 28 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 29 29 30 30 _printf_(VerboseSolution(),"call computational core:\n"); 31 31 solver_linear(femmodel); 32 32 33 if(s olution_type==BalancethicknessSolutionEnum && !control_analysis){33 if(save_results){ 34 34 _printf_(VerboseSolution()," saving results\n"); 35 35 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ThicknessEnum); 36 36 } -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/issm.cpp
113 113 MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( ); 114 114 115 115 _printf_(true,"write results to disk:\n"); 116 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters, &femmodel->results);116 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results); 117 117 118 118 /*Close output and petsc options file and write lock file if requested*/ 119 119 pfclose(output_fid,lockfilename); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/transient_core.cpp
23 23 24 24 /*parameters: */ 25 25 double starttime,finaltime,dt,yts; 26 bool control_analysis,isdiagnostic,isprognostic,isthermal,isgroundingline,isenthalpy;27 bool dakota_analysis=false;26 bool isdiagnostic,isprognostic,isthermal,isgroundingline,isenthalpy; 27 bool save_results,dakota_analysis; 28 28 bool time_adapt=false; 29 29 int solution_type; 30 30 int output_frequency; … … 42 42 femmodel->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum); 43 43 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 44 44 femmodel->parameters->FindParam(&yts,ConstantsYtsEnum); 45 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);46 45 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 47 46 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 48 47 femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum); … … 86 85 step+=1; 87 86 time+=dt; 88 87 femmodel->parameters->SetParam(time,TimeEnum); 88 femmodel->parameters->SetParam(step,StepEnum); 89 89 90 90 _printf_(VerboseSolution(),"iteration %i/%g time [yr]: %-7.3g (time step: %.2g)\n",step,floor((finaltime-time)/dt)+step,time/yts,dt/yts); 91 if(step%output_frequency==0 || time==finaltime) 92 save_results=true; 93 else 94 save_results=false; 95 femmodel->parameters->SetParam(save_results,SaveResultsEnum); 91 96 92 97 if(isthermal && dim==3){ 93 98 _printf_(VerboseSolution()," computing temperatures:\n"); … … 128 133 #endif 129 134 } 130 135 131 //save should be done by the analysis... see control_core 132 if(solution_type==TransientSolutionEnum && !control_analysis && (step%output_frequency==0 || time==finaltime)){ 133 _printf_(VerboseSolution()," saving results\n"); 134 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VzMeshEnum,step,time); 135 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum,step,time); 136 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum,step,time); 137 if(dim==3) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VzEnum,step,time); 138 if(isdiagnostic)InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VelEnum,step,time); 139 if(isdiagnostic)InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,PressureEnum,step,time); 140 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ThicknessEnum,step,time); 141 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceEnum,step,time); 142 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BedEnum,step,time); 143 if(dim==3 && isthermal) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,step,time); 144 if(isenthalpy) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterfractionEnum,step,time); 145 if(isenthalpy) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EnthalpyEnum,step,time); 146 if(!isenthalpy) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum,step,time); 147 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceforcingsMassBalanceEnum,step,time); 148 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,MaskElementonfloatingiceEnum,step,time); 149 RequestedOutputsx(femmodel->results,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,requested_outputs,numoutputs,step,time); 136 /*unload results*/ 137 if(save_results){ 138 _printf_(VerboseSolution()," saving transient results\n"); 139 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceEnum); 140 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BedEnum); 141 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceforcingsMassBalanceEnum); 142 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,MaskElementonfloatingiceEnum); 143 RequestedOutputsx(femmodel->results,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,requested_outputs,numoutputs); 150 144 151 /*unload results*/152 145 _printf_(VerboseSolution()," saving temporary results\n"); 153 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters, &femmodel->results);146 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results); 154 147 } 155 148 } 156 149 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/adjointbalancethickness_core.cpp
15 15 void adjointbalancethickness_core(FemModel* femmodel){ 16 16 17 17 /*parameters: */ 18 bool control_analysis;18 bool save_results; 19 19 int solution_type; 20 20 21 21 /*retrieve parameters:*/ 22 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);22 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 23 23 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 24 24 25 25 /*compute thickness */ … … 36 36 solver_adjoint_linear(femmodel); 37 37 38 38 /*Save results*/ 39 if(s olution_type==AdjointSolutionEnum && !control_analysis){39 if(save_results){ 40 40 _printf_(VerboseSolution()," saving results\n"); 41 41 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,AdjointEnum); 42 42 } -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/controlrestart.cpp
28 28 //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1,InversionControlParametersEnum,EnumToStringx(control_type),1,0)); 29 29 30 30 /*write to disk: */ 31 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters, &femmodel->results);31 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results); 32 32 } 33 33 34 34 /*Clean up and return*/ -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/control_core.cpp
58 58 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 59 59 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 60 60 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 61 femmodel->parameters->SetParam(false,SaveResultsEnum); 61 62 62 63 /*out of solution_type, figure out solution core and adjoint function pointer*/ 63 64 CorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type); … … 65 66 66 67 /*Launch once a complete solution to set up all inputs*/ 67 68 _printf_(VerboseControl(),"%s\n"," preparing initial solution"); 68 if 69 if(isstokes) solutioncore(femmodel); 69 70 70 71 /*Initialize responses: */ 71 72 J=(double*)xmalloc(nsteps*sizeof(double)); … … 107 108 } 108 109 109 110 _printf_(VerboseControl(),"%s\n"," preparing final solution"); 110 femmodel->parameters->SetParam( false,InversionIscontrolEnum); //needed to turn control result output in solutioncore111 femmodel->parameters->SetParam(true,SaveResultsEnum); 111 112 solutioncore(femmodel); 112 113 113 114 /*some results not computed by steadystate_core or diagnostic_core: */ … … 124 125 xfree((void**)&maxiter); 125 126 xfree((void**)&cm_jump); 126 127 xfree((void**)&J); 127 128 /*control_core might be used in Qmu, so leave everything similar to where it started: */129 femmodel->parameters->SetParam(true,InversionIscontrolEnum);130 128 } -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/hydrology_core.cpp
20 20 int nsteps; 21 21 double starttime,final_time; 22 22 double dt; 23 bool control_analysis;23 bool save_results; 24 24 int solution_type; 25 25 int output_frequency; 26 26 … … 28 28 femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum); 29 29 femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum); 30 30 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 31 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);31 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 32 32 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 33 33 femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum); 34 34 /*first compute slopes: */ … … 53 53 /*call hydrology_core step: */ 54 54 hydrology_core_step(femmodel,i,time); 55 55 56 if(solution_type==HydrologySolutionEnum && !control_analysis && ((i+1)%output_frequency==0 || (i+1)==nsteps)){ 57 56 if(save_results && ((i+1)%output_frequency==0 || (i+1)==nsteps)){ 58 57 _printf_(VerboseSolution()," saving results \n"); 59 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WatercolumnEnum,i+1,time);60 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,HydrologyWaterVxEnum,i+1,time);61 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,HydrologyWaterVyEnum,i+1,time);58 //InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WatercolumnEnum,i+1,time); 59 //InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,HydrologyWaterVxEnum,i+1,time); 60 //InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,HydrologyWaterVyEnum,i+1,time); 62 61 63 62 /*unload results*/ 64 63 _printf_(VerboseSolution()," saving temporary results\n"); 65 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,&femmodel->results); 66 64 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results); 67 65 } 68 69 66 } 70 67 } 71 68 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/diagnostic_core.cpp
23 23 bool isnewton = false; 24 24 bool conserve_loads = true; 25 25 bool modify_loads = true; 26 bool control_analysis;26 bool save_results; 27 27 int solution_type; 28 28 int numoutputs = 0; 29 29 int *requested_outputs = NULL; … … 35 35 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 36 36 femmodel->parameters->FindParam(&isnewton,DiagnosticIsnewtonEnum); 37 37 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 38 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);38 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 39 39 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 40 40 femmodel->parameters->FindParam(&numoutputs,DiagnosticNumRequestedOutputsEnum); 41 41 if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,DiagnosticRequestedOutputsEnum); … … 93 93 } 94 94 95 95 96 if(s olution_type==DiagnosticSolutionEnum && !control_analysis){96 if(save_results){ 97 97 _printf_(VerboseSolution()," saving results\n"); 98 98 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum); 99 99 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/controltao_core.cpp
48 48 femmodel->parameters->FindParam(&control_list,NULL,InversionControlParametersEnum); 49 49 femmodel->parameters->FindParam(&nsteps,InversionNstepsEnum); 50 50 femmodel->parameters->FindParam(&dummy,NULL,NULL,InversionMaxiterPerStepEnum); 51 femmodel->parameters->SetParam(false,SaveResultsEnum); 51 52 maxiter=nsteps*(int)dummy[0]; xfree((void**)&dummy); 52 53 53 54 /*Initialize TAO*/ … … 87 88 88 89 /*Finalize*/ 89 90 _printf_(VerboseControl(),"%s\n"," preparing final solution"); 90 femmodel->parameters->SetParam( false,InversionIscontrolEnum); //needed to turn control result output in solutioncore91 femmodel->parameters->SetParam(true,SaveResultsEnum); 91 92 void (*solutioncore)(FemModel*)=NULL; 92 93 CorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type); 93 94 solutioncore(femmodel); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/enthalpy_core.cpp
14 14 15 15 void enthalpy_core(FemModel* femmodel){ 16 16 17 int i;18 19 17 /*intermediary*/ 20 bool control_analysis;18 bool save_results; 21 19 int solution_type; 22 20 23 21 //first recover parameters common to all solutions 24 femmodel->parameters->FindParam(& control_analysis,InversionIscontrolEnum);22 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 25 23 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 26 24 27 25 /*call enthalpy_core_step: */ 28 26 enthalpy_core_step(femmodel); 29 27 30 if(s olution_type==EnthalpySolutionEnum && !control_analysis){28 if(save_results){ 31 29 _printf_(VerboseSolution()," saving results\n"); 32 30 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum); 33 31 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EnthalpyEnum); 34 32 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterfractionEnum); 35 33 } 36 37 34 } -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
384 384 P1DGEnum, 385 385 /*}}}*/ 386 386 /*Results{{{1*/ 387 SaveResultsEnum, 387 388 BoolElementResultEnum, 388 389 BoolExternalResultEnum, 389 390 DoubleElementResultEnum, … … 398 399 PentaP1ElementResultEnum, 399 400 PetscVecExternalResultEnum, 400 401 StringExternalResultEnum, 402 StepEnum, 401 403 TimeEnum, 402 404 TriaP1ElementResultEnum, 403 405 WaterColumnOldEnum, -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/io/Matlab/FetchMatlabData.cpp
602 602 /*Check type of field: */ 603 603 if (mxIsClass(pfield,"double")){ 604 604 605 /*could be DOUBLE, DOUBLEVEC or DOUBLEMAT, depends on dimensions: */606 605 M=mxGetM(pfield); 607 606 N=mxGetN(pfield); 608 607 609 608 if (M==0 | N==0){ 610 _error_(" %s%i (%s) %s%i%s%i%s","array in parameters structure field ",count,name," is of size (",M,",",N,")");609 _error_("array in parameters structure field %s is of size 0",name); 611 610 } 612 611 if (M==1 && N==1){ 613 612 /*we have a simple scalar: */ … … 642 641 } 643 642 644 643 } 644 else if (mxIsClass(pfield,"logical")){ 645 646 M=mxGetM(pfield); 647 N=mxGetN(pfield); 648 649 if (M==0 | N==0){ 650 _error_("array in parameters structure field %s is of size 0",name); 651 } 652 if (M==1 && N==1){ 653 /*we have a simple bool: */ 654 param= new BoolParam(enum_type,*mxGetLogicals(pfield)); 655 parameters->AddObject(param); 656 657 } 658 else{ 659 _error_("Matrices of Booleans not supported yet in parameters"); 660 } 661 } 645 662 else if (mxIsClass(pfield,"char")){ 646 663 /* we have a string parameter:*/ 647 664 … … 717 734 xfree((void**)&ndims_array); 718 735 } 719 736 } 720 else _error_(" %s%i","unknow type in parameters structure field ",i);737 else _error_("Parameters structure field %s has a format that is not supported: %s",name,mxGetClassName(pfield)); 721 738 } 722 739 723 740 /*Assign output pointers:*/ 724 741 *pparameters=parameters; 725 726 742 } 727 743 /*}}}*/ 728 744 #endif -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
377 377 else if (strcmp(name,"P0")==0) return P0Enum; 378 378 else if (strcmp(name,"P1")==0) return P1Enum; 379 379 else if (strcmp(name,"P1DG")==0) return P1DGEnum; 380 else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum; 380 381 else if (strcmp(name,"BoolElementResult")==0) return BoolElementResultEnum; 381 382 else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 382 383 else if (strcmp(name,"DoubleElementResult")==0) return DoubleElementResultEnum; 383 384 else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum; 384 else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"DoubleVecExternalResult")==0) return DoubleVecExternalResultEnum; 388 if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum; 389 else if (strcmp(name,"DoubleVecExternalResult")==0) return DoubleVecExternalResultEnum; 389 390 else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum; 390 391 else if (strcmp(name,"J")==0) return JEnum; 391 392 else if (strcmp(name,"Patch")==0) return PatchEnum; … … 394 395 else if (strcmp(name,"PentaP1ElementResult")==0) return PentaP1ElementResultEnum; 395 396 else if (strcmp(name,"PetscVecExternalResult")==0) return PetscVecExternalResultEnum; 396 397 else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum; 398 else if (strcmp(name,"Step")==0) return StepEnum; 397 399 else if (strcmp(name,"Time")==0) return TimeEnum; 398 400 else if (strcmp(name,"TriaP1ElementResult")==0) return TriaP1ElementResultEnum; 399 401 else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum; -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
370 370 case P0Enum : return "P0"; 371 371 case P1Enum : return "P1"; 372 372 case P1DGEnum : return "P1DG"; 373 case SaveResultsEnum : return "SaveResults"; 373 374 case BoolElementResultEnum : return "BoolElementResult"; 374 375 case BoolExternalResultEnum : return "BoolExternalResult"; 375 376 case DoubleElementResultEnum : return "DoubleElementResult"; … … 384 385 case PentaP1ElementResultEnum : return "PentaP1ElementResult"; 385 386 case PetscVecExternalResultEnum : return "PetscVecExternalResult"; 386 387 case StringExternalResultEnum : return "StringExternalResult"; 388 case StepEnum : return "Step"; 387 389 case TimeEnum : return "Time"; 388 390 case TriaP1ElementResultEnum : return "TriaP1ElementResult"; 389 391 case WaterColumnOldEnum : return "WaterColumnOld"; -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.h
15 15 16 16 #ifdef _SERIAL_ 17 17 #include <mex.h> 18 void OutputResultsx(mxArray** pdataref, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, Results* * presults);18 void OutputResultsx(mxArray** pdataref, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, Results* results); 19 19 #else 20 void OutputResultsx(Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, Results* * presults);20 void OutputResultsx(Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, Results* results); 21 21 #endif 22 22 23 23 #endif /* _OUTPUTRESULTS_H */ -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
16 16 #include "../../objects/objects.h" 17 17 18 18 #ifdef _SERIAL_ 19 void OutputResultsx(mxArray** pdataref, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,Results* * presults){19 void OutputResultsx(mxArray** pdataref, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,Results* results){ 20 20 #else 21 void OutputResultsx( Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,Results* * presults){21 void OutputResultsx( Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,Results* results){ 22 22 #endif 23 23 24 24 extern int my_rank; … … 28 28 bool io_gather; 29 29 int solutiontype; 30 30 char* solutiontypestring = NULL; 31 Results *results = NULL;32 31 bool dakota_analysis = false; 33 32 34 33 #ifdef _SERIAL_ … … 38 37 int nfields=0; 39 38 #endif 40 39 41 /*recover results dataset: */42 results=*presults;43 44 40 /*retrieve parameters: */ 45 41 parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 46 42 … … 114 110 } 115 111 */ 116 112 #endif 117 118 /*Assign output pointers:*/119 *presults=results;120 113 } -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
92 92 parameters->AddObject(new IntParam(SolutionTypeEnum,solution_type)); 93 93 parameters->AddObject(new IntParam(AnalysisTypeEnum,analysis_type)); 94 94 parameters->AddObject(new IntParam(AnalysisCounterEnum,analysis_counter)); 95 parameters->AddObject(new DoubleParam(TimeEnum,0.0)); //start at time 0 by default for all solutions 95 parameters->AddObject(new DoubleParam(TimeEnum,0.0)); //start at time 0 by default for all solutions FIXME: to be deleted 96 parameters->AddObject(new IntParam(StepEnum,1)); //start at time 0 by default for all solutions FIXME: to be deleted 96 97 97 /*Requested output?*/ 98 /*By default, save all results*/ 99 parameters->AddObject(new BoolParam(SaveResultsEnum,true)); 100 101 /*Requested outputs*/ 98 102 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,DiagnosticRequestedOutputsEnum); 99 103 parameters->AddObject(new IntParam(DiagnosticNumRequestedOutputsEnum,numoutputs)); 100 104 if(numoutputs)parameters->AddObject(new IntVecParam(DiagnosticRequestedOutputsEnum,requestedoutputs,numoutputs)); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/InputToResultx/InputToResultx.h
8 8 #include "../../Container/Container.h" 9 9 10 10 /* local prototypes: */ 11 void InputToResultx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters,int enum_type ,int step=1, double time=0);11 void InputToResultx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters,int enum_type); 12 12 13 13 #endif /* _INPUTTORESULTX_H */ 14 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/InputToResultx/InputToResultx.cpp
8 8 #include "../../toolkits/toolkits.h" 9 9 #include "../../EnumDefinitions/EnumDefinitions.h" 10 10 11 void InputToResultx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters,int enum_type ,int step, double time){11 void InputToResultx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters,int enum_type){ 12 12 13 13 /*intermediary:*/ 14 int i; 14 int step; 15 double time; 15 16 Element *element = NULL; 16 17 18 /*Get time and step*/ 19 parameters->FindParam(&step,StepEnum); 20 parameters->FindParam(&time,TimeEnum); 21 17 22 /*Go through elemnets, and ask each element to transfer the enum_type input into the results dataset, with step and time information: */ 18 for(i =0;i<elements->Size();i++){23 for(int i=0;i<elements->Size();i++){ 19 24 20 25 element=(Element*)elements->GetObjectByOffset(i); 21 26 element->InputToResult(enum_type,step,time); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/RequestedOutputsx/RequestedOutputsx.h
8 8 #include "../../Container/Container.h" 9 9 10 10 /* local prototypes: */ 11 void RequestedOutputsx(Results* results,Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int* requested_outputs, int numoutputs , int step=1, double time=0);11 void RequestedOutputsx(Results* results,Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int* requested_outputs, int numoutputs); 12 12 13 13 #endif /* _INPUTTORESULTX_H */ 14 14 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/modules/RequestedOutputsx/RequestedOutputsx.cpp
8 8 #include "../../toolkits/toolkits.h" 9 9 #include "../../EnumDefinitions/EnumDefinitions.h" 10 10 11 void RequestedOutputsx(Results* results,Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int* requested_outputs, int numoutputs , int step, double time){11 void RequestedOutputsx(Results* results,Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int* requested_outputs, int numoutputs){ 12 12 13 int i,j; 14 int output_enum; 15 double output_value; 16 Element* element=NULL; 13 int output_enum; 14 int step; 15 double time; 16 double output_value; 17 Element *element = NULL; 17 18 18 /*retrieve parameters: */ 19 /*Get time and step*/ 20 parameters->FindParam(&step,StepEnum); 21 parameters->FindParam(&time,TimeEnum); 22 23 /*retrieve Inputs*/ 19 24 if(numoutputs){ 20 for(i =0;i<numoutputs;i++){25 for(int i=0;i<numoutputs;i++){ 21 26 output_enum=requested_outputs[i]; 22 27 23 28 switch(output_enum){ … … 28 33 break; 29 34 default: 30 35 /*create this output in the element inputs, and then transfer to results:*/ 31 for( j=0;j<elements->Size();j++){36 for(int j=0;j<elements->Size();j++){ 32 37 element=(Element*)elements->GetObjectByOffset(j); 33 38 element->RequestedOutput(output_enum,step,time); 34 39 } -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/mex/InputToResult/InputToResult.cpp
41 41 nodes-> Configure(elements,loads, nodes,vertices, materials,parameters); 42 42 loads-> Configure(elements, loads, nodes,vertices, materials,parameters); 43 43 44 if(nrhs==9){ 45 FetchMatlabData(&step,STEP); 46 FetchMatlabData(&time,TIME); 44 /*Call core code: */ 45 InputToResultx( elements, nodes, vertices, loads, materials,parameters,enum_type); 47 46 48 /*!Call core code: */49 InputToResultx( elements, nodes, vertices, loads, materials,parameters,enum_type, step,time);50 }51 else{52 53 /*!Call core code: */54 InputToResultx( elements, nodes, vertices, loads, materials,parameters,enum_type);55 }56 57 47 /*write output : */ 58 48 WriteMatlabData(ELEMENTSOUT,elements); 59 49 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/mex/OutputResults/OutputResults.cpp
42 42 loads-> Configure(elements, loads, nodes,vertices, materials,parameters); 43 43 44 44 /*Call "x" code layer: */ 45 OutputResultsx(&dataref, elements,nodes,vertices,loads,materials,parameters, &results);45 OutputResultsx(&dataref, elements,nodes,vertices,loads,materials,parameters,results); 46 46 47 47 /*write output datasets: */ 48 48 plhs[0]=dataref; -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/enthalpy_core.m
5 5 % femmodel=enthalpy_core(femmodel) 6 6 7 7 %recover parameters common to all solutions 8 control_analysis=femmodel.parameters.InversionIscontrol;8 save_results=femmodel.parameters.SaveResults; 9 9 solution_type=femmodel.parameters.SolutionType; 10 10 11 11 issmprintf(VerboseSolution,'\n%s',[' computing enthalpy']); 12 12 femmodel=enthalpy_core_step(femmodel); 13 13 14 if (s olution_type==EnthalpySolutionEnum & ~control_analysis),14 if (save_results), 15 15 issmprintf(VerboseSolution,'\n%s',[' saving results']); 16 16 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,EnthalpyEnum); 17 17 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/steadystate_core.m
7 7 8 8 %recover parameters common to all solutions 9 9 dim=femmodel.parameters.MeshDimension; 10 control_analysis=femmodel.parameters.InversionIscontrol;10 save_results=femmodel.parameters.SaveResults; 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 isenthalpy=femmodel.parameters.ThermalIsenthalpy; 13 13 … … 42 42 step=step+1; 43 43 end 44 44 45 if (s olution_type==SteadystateSolutionEnum & ~control_analysis),45 if (save_results), 46 46 issmprintf(VerboseSolution,'\n%s',[' saving results']); 47 47 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum); 48 48 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/adjointdiagnostic_core.m
7 7 %recover parameters common to all solutions 8 8 isstokes=femmodel.parameters.FlowequationIsstokes; 9 9 dim=femmodel.parameters.MeshDimension; 10 control_analysis=femmodel.parameters.InversionIscontrol;10 save_results=femmodel.parameters.SaveResults; 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 conserve_loads=true; 13 13 … … 25 25 femmodel=solver_adjoint_linear(femmodel); 26 26 27 27 %save results 28 if(s olution_type==AdjointSolutionEnum & ~control_analysis)28 if(save_results), 29 29 issmprintf(VerboseSolution,' saving results'); 30 30 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,AdjointxEnum); 31 31 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,AdjointyEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/bedslope_core.m
7 7 8 8 %Recover some parameters: 9 9 dim=femmodel.parameters.MeshDimension; 10 control_analysis=femmodel.parameters.InversionIscontrol;10 save_results=femmodel.parameters.SaveResults; 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 13 13 issmprintf(VerboseSolution,' computing bed slope'); … … 18 18 femmodel=SetCurrentConfiguration(femmodel,BedSlopeAnalysisEnum,BedSlopeYAnalysisEnum); 19 19 femmodel=solver_linear(femmodel); 20 20 21 if (s olution_type==BedSlopeSolutionEnum & ~control_analysis),21 if (save_results), 22 22 issmprintf(VerboseSolution,' saving results'); 23 23 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BedSlopeXEnum); 24 24 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BedSlopeYEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/adjointbalancethickness_core.m
5 5 % femmodel=adjointbalancethickness_core(femmodel) 6 6 7 7 %recover parameters common to all solutions 8 control_analysis=femmodel.parameters.InversionIscontrol;8 save_results=femmodel.parameters.SaveResults; 9 9 solution_type=femmodel.parameters.SolutionType; 10 10 11 11 %set analysis type to compute velocity: … … 23 23 24 24 %Save results 25 25 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,AdjointEnum); 26 if(s olution_type==AdjointSolutionEnum & ~control_analysis)26 if(save_results), 27 27 issmprintf(VerboseSolution,' saving results'); 28 28 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,AdjointEnum); 29 29 end -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/control_core.m
18 18 gradient_only=femmodel.parameters.InversionGradientOnly; 19 19 dim=femmodel.parameters.MeshDimension; 20 20 isstokes=femmodel.parameters.FlowequationIsstokes; 21 femmodel.parameters.SaveResults=false; 21 22 22 23 %Initialise options with maxiter 23 24 options.MaxIter=femmodel.parameters.InversionMaxiterPerStep; … … 74 75 75 76 %generate output 76 77 issmprintf(VerboseControl,' preparing final velocity solution'); 77 femmodel.parameters. InversionIscontrol=0;78 femmodel.parameters.SaveResults=true; 78 79 eval(['femmodel=' solutioncore '(femmodel);']); 79 80 80 81 %Some results not computed by diagnostic or steadystate -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/diagnostic_core.m
16 16 isstokes=femmodel.parameters.FlowequationIsstokes; 17 17 isnewton=femmodel.parameters.DiagnosticIsnewton; 18 18 dakota_analysis=femmodel.parameters.QmuIsdakota; 19 control_analysis=femmodel.parameters.InversionIscontrol;19 save_results=femmodel.parameters.SaveResults; 20 20 solution_type=femmodel.parameters.SolutionType; 21 21 22 22 %for qmu analysis, be sure the velocity input we are starting from is the one in the parameters: … … 74 74 femmodel=solver_linear(femmodel); 75 75 end 76 76 77 if (s olution_type==DiagnosticSolutionEnum & ~control_analysis)77 if (save_results), 78 78 issmprintf(VerboseSolution,'\n%s',[' saving results']); 79 79 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum); 80 80 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/prognostic_core.m
5 5 % femmodel=prognostic_core(femmodel) 6 6 7 7 %recover parameters common to all solutions 8 control_analysis=femmodel.parameters.InversionIscontrol;8 save_results=femmodel.parameters.SaveResults; 9 9 solution_type=femmodel.parameters.SolutionType; 10 10 11 11 %Activate formulation … … 14 14 issmprintf(VerboseSolution,'\n%s',[' call computational core']); 15 15 femmodel=solver_linear(femmodel); 16 16 17 if (s olution_type==PrognosticSolutionEnum & ~control_analysis)17 if (save_results), 18 18 issmprintf(VerboseSolution,'\n%s',[' saving results']); 19 19 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,ThicknessEnum); 20 20 end -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/surfaceslope_core.m
7 7 8 8 %Recover some parameters: 9 9 dim=femmodel.parameters.MeshDimension; 10 control_analysis=femmodel.parameters.InversionIscontrol;10 save_results=femmodel.parameters.SaveResults; 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 13 13 %Call on core computations: … … 17 17 femmodel=SetCurrentConfiguration(femmodel,SurfaceSlopeAnalysisEnum,SurfaceSlopeYAnalysisEnum); 18 18 femmodel=solver_linear(femmodel); 19 19 20 if (s olution_type==SurfaceSlopeSolutionEnum),20 if (save_results), 21 21 issmprintf(VerboseSolution,'\n%s',[' saving results']); 22 22 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,SurfaceSlopeXEnum); 23 23 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,SurfaceSlopeYEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/thermal_core.m
6 6 7 7 8 8 %recover parameters common to all solutions 9 control_analysis=femmodel.parameters.InversionIscontrol;9 save_results=femmodel.parameters.SaveResults; 10 10 solution_type=femmodel.parameters.SolutionType; 11 11 12 12 issmprintf(VerboseSolution,'\n%s',[' computing temperature']); 13 13 femmodel=thermal_core_step(femmodel); 14 14 15 if (s olution_type==ThermalSolutionEnum & ~control_analysis),15 if (save_results), 16 16 issmprintf(VerboseSolution,'\n%s',[' saving results']); 17 17 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum); 18 18 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/balancethickness_core.m
6 6 7 7 %recover parameters common to all solutions 8 8 dim=femmodel.parameters.MeshDimension; 9 control_analysis=femmodel.parameters.InversionIscontrol;9 save_results=femmodel.parameters.SaveResults; 10 10 solution_type=femmodel.parameters.SolutionType; 11 11 12 12 %Activate formulation … … 15 15 issmprintf(VerboseSolution,' call computational core'); 16 16 femmodel=solver_linear(femmodel); 17 17 18 if (s olution_type==BalancethicknessSolutionEnum & ~control_analysis),18 if (save_results), 19 19 issmprintf(VerboseSolution,' saving results'); 20 20 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,ThicknessEnum); 21 21 end -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/transient_core.m
10 10 finaltime=femmodel.parameters.TimesteppingFinalTime; 11 11 dt=femmodel.parameters.TimesteppingTimeStep; 12 12 yts=femmodel.parameters.ConstantsYts; 13 control_analysis=femmodel.parameters.InversionIscontrol;14 13 solution_type=femmodel.parameters.SolutionType; 15 14 output_frequency=femmodel.parameters.SettingsOutputFrequency; 16 15 time_adapt=femmodel.parameters.TimesteppingTimeAdapt; … … 53 52 step=step+1; 54 53 time=time+dt; 55 54 femmodel.parameters.Time=time; 55 femmodel.parameters.Step=step; 56 56 57 57 issmprintf(VerboseSolution,'\n%s%g%s%i%s%g\n','time [yr] ',time/yts,' iteration number: ',step,'/',floor((finaltime-starttime)/dt)); 58 if(mod(step,output_frequency)==0 | time==ndt), 59 save_results=true; 60 else 61 save_results=false; 62 end 63 femmodel.parameters.SaveResults=save_results; 58 64 59 65 if (isthermal & dim==3) 60 66 issmprintf(VerboseSolution,'\n%s',[' computing temperature']); … … 84 90 GroundinglineMigration(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 85 91 end 86 92 87 if (solution_type==TransientSolutionEnum & ~control_analysis & (mod(step,output_frequency)==0 | time==finaltime)), 88 issmprintf(VerboseSolution,'\n%s',[' saving results']); 89 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum,step,time); 90 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum,step,time); 91 if (dim==3), femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VzEnum,step,time); end 92 if (isdiagnostic), femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VelEnum,step,time); end 93 if (isdiagnostic), femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,PressureEnum,step,time); end 94 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,ThicknessEnum,step,time); 93 if (save_results), 94 issmprintf(VerboseSolution,'\n%s',[' saving transient results']); 95 95 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,SurfaceEnum,step,time); 96 96 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BedEnum,step,time); 97 if (dim==3 & isthermal), femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum,step,time);end98 if (dim==3 & isenthalpy), femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,WaterfractionEnum,step,time);end99 if (dim==3 & isenthalpy), femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,EnthalpyEnum,step,time);end100 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum,step,time);101 97 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,SurfaceforcingsMassBalanceEnum,step,time); 102 98 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,MaskElementonfloatingiceEnum,step,time); 103 99 end -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/model/plot/plotmodel.m
47 47 try, 48 48 for i=1:numberofplots, 49 49 plot_manager(getfieldvalue(options.list{i},'model',md),options.list{i},subplotwidth,nlines,ncols,i); 50 cbfreeze; 50 51 end 51 52 catch me, 52 53 %figure(figurenumber),close; -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/enum/StepEnum.m
1 function macro=StepEnum() 2 %STEPENUM - Enum of Step 3 % 4 % WARNING: DO NOT MODIFY THIS FILE 5 % this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh 6 % Please read src/c/EnumDefinitions/README for more information 7 % 8 % Usage: 9 % macro=StepEnum() 10 11 macro=StringToEnum('Step'); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/enum/SaveResultsEnum.m
1 function macro=SaveResultsEnum() 2 %SAVERESULTSENUM - Enum of SaveResults 3 % 4 % WARNING: DO NOT MODIFY THIS FILE 5 % this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh 6 % Please read src/c/EnumDefinitions/README for more information 7 % 8 % Usage: 9 % macro=SaveResultsEnum() 10 11 macro=StringToEnum('SaveResults');
Note:
See TracBrowser
for help on using the repository browser.