source:
issm/oecreview/Archive/16133-16554/ISSM-16362-16363.diff
Last change on this file was 16556, checked in by , 11 years ago | |
---|---|
File size: 45.5 KB |
-
../trunk-jpl/test/NightlyRun/test426.m
13 13 md.transient.isstressbalance=0; 14 14 md.transient.isgroundingline=1; 15 15 md.groundingline.migration='AgressiveMigration'; 16 md.transient.requested_outputs= [IceVolumeEnum();IceVolumeAboveFloatationEnum()];16 md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'}; 17 17 md.cluster=generic('name',oshostname(),'np',3); 18 18 19 19 md=solve(md,TransientSolutionEnum()); -
../trunk-jpl/test/NightlyRun/test328.m
7 7 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y; 8 8 md.surfaceforcings.href=md.geometry.surface; 9 9 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y; 10 md.transient.requested_outputs= TotalSmbEnum();10 md.transient.requested_outputs={'TotalSmb'}; 11 11 md.cluster=generic('name',oshostname(),'np',3); 12 12 md=solve(md,TransientSolutionEnum()); 13 13 -
../trunk-jpl/test/NightlyRun/test3001.m
3 3 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 4 4 md=setflowequation(md,'SSA','all'); 5 5 md.cluster=generic('name',oshostname(),'np',1); 6 md.stressbalance.requested_outputs= StressTensorEnum();6 md.stressbalance.requested_outputs={'StressTensor'}; 7 7 md.autodiff.isautodiff=true; 8 8 md.toolkits.DefaultAnalysis=issmgslsolver(); 9 9 -
../trunk-jpl/test/NightlyRun/test3103.py
13 13 md.extrude(3,2.) 14 14 md=setflowequation(md,'HO','all') 15 15 md.cluster=generic('name',oshostname(),'np',3) 16 md.stressbalance.requested_outputs= StressTensorEnum()16 md.stressbalance.requested_outputs=['StressTensor'] 17 17 md.toolkits.DefaultAnalysis=issmmumpssolver() 18 18 md.autodiff.isautodiff=True 19 19 md=solve(md,StressbalanceSolutionEnum()) -
../trunk-jpl/test/NightlyRun/test3010.m
3 3 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 4 4 md=setflowequation(md,'SSA','all'); 5 5 md.cluster=generic('name',oshostname(),'np',1); 6 md.transient.requested_outputs= IceVolumeEnum();6 md.transient.requested_outputs={'IceVolume'}; 7 7 8 8 md.autodiff.isautodiff=true; 9 9 md.verbose=verbose('autodiff',true); -
../trunk-jpl/test/NightlyRun/test329.py
19 19 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y 20 20 md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1) 21 21 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y; 22 md.transient.requested_outputs= TotalSmbEnum()22 md.transient.requested_outputs=['TotalSmb'] 23 23 md.cluster=generic('name',oshostname(),'np',3) 24 24 md=solve(md,TransientSolutionEnum()) 25 25 -
../trunk-jpl/test/NightlyRun/test329.m
8 8 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y; 9 9 md.surfaceforcings.href=md.geometry.surface; 10 10 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y; 11 md.transient.requested_outputs= TotalSmbEnum();11 md.transient.requested_outputs={'TotalSmb'}; 12 12 md.cluster=generic('name',oshostname(),'np',3); 13 13 md=solve(md,TransientSolutionEnum()); 14 14 -
../trunk-jpl/test/NightlyRun/test101.m
3 3 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 4 4 md=setflowequation(md,'SSA','all'); 5 5 md.cluster=generic('name',oshostname(),'np',3); 6 md.stressbalance.requested_outputs=StressTensorEnum(); 6 md.stressbalance.requested_outputs={'StressTensor'}; 7 md.verbose=verbose('11111111'); 7 8 md=solve(md,StressbalanceSolutionEnum()); 8 9 9 10 %Fields and tolerances to track changes -
../trunk-jpl/test/NightlyRun/android.m
4 4 md=setflowequation(md,'SSA','all'); 5 5 md.cluster=generic('name',oshostname(),'np',3); 6 6 md.verbose=verbose('mprocessor',true,'module',true,'solution',true,'solver',true,'convergence',true,'control',true,'qmu',true,'autodiff',true); 7 md.stressbalance.requested_outputs= StressTensorEnum();7 md.stressbalance.requested_outputs={'StressTensor'}; 8 8 md=solve(md,StressbalanceSolutionEnum()); 9 9 10 10 -
../trunk-jpl/test/NightlyRun/test3020.m
7 7 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 8 8 md=setflowequation(md,'SSA','all'); 9 9 md.cluster=generic('name',oshostname(),'np',1); 10 md.transient.requested_outputs= [IceVolumeEnum();MaxVelEnum()];10 md.transient.requested_outputs={'IceVolume','MaxVelEnum'}; 11 11 md.verbose=verbose('autodiff',true); 12 12 md.stressbalance.restol=1e-4; 13 13 md.toolkits.DefaultAnalysis=issmgslsolver(); -
../trunk-jpl/test/NightlyRun/test3101.m
3 3 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 4 4 md=setflowequation(md,'SSA','all'); 5 5 md.cluster=generic('name',oshostname(),'np',3); 6 md.stressbalance.requested_outputs= StressTensorEnum();6 md.stressbalance.requested_outputs={'StressTensor'}; 7 7 md.autodiff.isautodiff=true; 8 8 md.toolkits.DefaultAnalysis=issmmumpssolver(); 9 9 -
../trunk-jpl/test/NightlyRun/test3003.m
4 4 md=extrude(md,3,2.); 5 5 md=setflowequation(md,'HO','all'); 6 6 md.cluster=generic('name',oshostname(),'np',1); 7 md.stressbalance.requested_outputs= StressTensorEnum();7 md.stressbalance.requested_outputs={'StressTensor'}; 8 8 md.autodiff.isautodiff=true; 9 9 md.toolkits.DefaultAnalysis=issmgslsolver(); 10 10 md.verbose=verbose('autodiff',true); -
../trunk-jpl/test/NightlyRun/test110.m
3 3 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 4 4 md=setflowequation(md,'SSA','all'); 5 5 md.cluster=generic('name',oshostname(),'np',3); 6 md.transient.requested_outputs= IceVolumeEnum();6 md.transient.requested_outputs={'IceVolume'}; 7 7 8 8 md=solve(md,TransientSolutionEnum()); 9 9 -
../trunk-jpl/test/NightlyRun/test3110.m
3 3 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 4 4 md=setflowequation(md,'SSA','all'); 5 5 md.cluster=generic('name',oshostname(),'np',3); 6 md.transient.requested_outputs= IceVolumeEnum();6 md.transient.requested_outputs={'IceVolume'}; 7 7 8 8 md.autodiff.isautodiff=true; 9 9 md.verbose=verbose('autodiff',true); -
../trunk-jpl/test/NightlyRun/test3001.py
12 12 md=parameterize(md,'../Par/SquareShelfConstrained.py') 13 13 md=setflowequation(md,'SSA','all') 14 14 md.cluster=generic('name',oshostname(),'np',1) 15 md.stressbalance.requested_outputs= StressTensorEnum()15 md.stressbalance.requested_outputs=['StressTensor'] 16 16 md.toolkits.DefaultAnalysis=issmgslsolver() 17 17 md.autodiff.isautodiff=True 18 18 md=solve(md,StressbalanceSolutionEnum()) -
../trunk-jpl/test/NightlyRun/test3015.py
21 21 md=parameterize(md,'../Par/SquareShelfConstrained.py') 22 22 md=setflowequation(md,'SSA','all') 23 23 md.cluster=generic('name',oshostname(),'np',3) 24 md.masstransport.requested_outputs= IceVolumeEnum()24 md.masstransport.requested_outputs=['IceVolume'] 25 25 md.verbose=verbose('autodiff',True) 26 26 md.toolkits.DefaultAnalysis=issmgslsolver() 27 27 -
../trunk-jpl/test/NightlyRun/test3021.m
3 3 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 4 4 md=setflowequation(md,'SSA','all'); 5 5 md.cluster=generic('name',oshostname(),'np',3); 6 md.stressbalance.requested_outputs= StressTensorEnum();6 md.stressbalance.requested_outputs={'StressTensor'}; 7 7 md.autodiff.isautodiff=false; 8 8 md.toolkits.DefaultAnalysis=issmsolver(); 9 9 md.verbose=verbose('1111111'); -
../trunk-jpl/test/NightlyRun/test111.m
4 4 md=extrude(md,3,1.); 5 5 md=setflowequation(md,'HO','all'); 6 6 md.cluster=generic('name',oshostname(),'np',3); 7 md.transient.requested_outputs= IceVolumeEnum();7 md.transient.requested_outputs={'IceVolume'}; 8 8 md=solve(md,TransientSolutionEnum()); 9 9 10 10 %Fields and tolerances to track changes -
../trunk-jpl/test/NightlyRun/test234.m
56 56 md.qmu.isdakota=1; 57 57 58 58 md.stressbalance.reltol=10^-5; %tighten for qmu analyses 59 md.transient.requested_outputs= IceVolumeEnum();59 md.transient.requested_outputs={'IceVolume'}; 60 60 61 61 %solve 62 62 md=solve(md,TransientSolutionEnum(),'overwrite','y'); -
../trunk-jpl/test/NightlyRun/test3010.py
13 13 md=setflowequation(md,'SSA','all') 14 14 md.cluster=generic('name',oshostname(),'np',1) 15 15 md.toolkits.DefaultAnalysis=issmgslsolver() 16 md.transient.requested_outputs= IceVolumeEnum()16 md.transient.requested_outputs=['IceVolume'] 17 17 18 18 md.autodiff.isautodiff=True 19 19 md=solve(md,TransientSolutionEnum()) -
../trunk-jpl/test/NightlyRun/test101.py
12 12 md=parameterize(md,'../Par/SquareShelfConstrained.py') 13 13 md=setflowequation(md,'SSA','all') 14 14 md.cluster=generic('name',oshostname(),'np',3) 15 md.stressbalance.requested_outputs= StressTensorEnum()15 md.stressbalance.requested_outputs=['StressTensor'] 16 16 md=solve(md,StressbalanceSolutionEnum()) 17 17 18 18 #Fields and tolerances to track changes -
../trunk-jpl/test/NightlyRun/test103.m
4 4 md=extrude(md,3,2.); 5 5 md=setflowequation(md,'HO','all'); 6 6 md.cluster=generic('name',oshostname(),'np',3); 7 md.stressbalance.requested_outputs= StressTensorEnum();7 md.stressbalance.requested_outputs={'StressTensor'}; 8 8 md=solve(md,StressbalanceSolutionEnum()); 9 9 10 10 %Fields and tolerances to track changes -
../trunk-jpl/test/NightlyRun/test424.py
22 22 md.transient.isstressbalance=False 23 23 md.transient.isgroundingline=True 24 24 md.groundingline.migration='AgressiveMigration' 25 md.transient.requested_outputs=[ IceVolumeEnum(),IceVolumeAboveFloatationEnum()]25 md.transient.requested_outputs=['IceVolume','IceVolumeAboveFloatation'] 26 26 27 27 md.cluster=generic('name',oshostname(),'np',3) 28 28 md=solve(md,TransientSolutionEnum()) -
../trunk-jpl/test/NightlyRun/test3103.m
4 4 md=extrude(md,3,2.); 5 5 md=setflowequation(md,'HO','all'); 6 6 md.cluster=generic('name',oshostname(),'np',3); 7 md.stressbalance.requested_outputs= StressTensorEnum();7 md.stressbalance.requested_outputs={'StressTensor'}; 8 8 md.autodiff.isautodiff=true; 9 9 md.toolkits.DefaultAnalysis=issmmumpssolver(); 10 10 md.verbose=verbose('autodiff',true); -
../trunk-jpl/test/NightlyRun/test110.py
12 12 md=parameterize(md,'../Par/SquareShelfConstrained.py') 13 13 md=setflowequation(md,'SSA','all') 14 14 md.cluster=generic('name',oshostname(),'np',3) 15 md.transient.requested_outputs= IceVolumeEnum()15 md.transient.requested_outputs=['IceVolume'] 16 16 17 17 md=solve(md,TransientSolutionEnum()) 18 18 -
../trunk-jpl/test/NightlyRun/test235.m
51 51 md.qmu.isdakota=1; 52 52 53 53 md.stressbalance.reltol=10^-5; %tighten for qmu analyses 54 md.transient.requested_outputs= IceVolumeEnum();54 md.transient.requested_outputs={'IceVolume'}; 55 55 56 56 %solve 57 57 md=solve(md,TransientSolutionEnum(),'overwrite','y'); -
../trunk-jpl/test/NightlyRun/test3101.py
12 12 md=parameterize(md,'../Par/SquareShelfConstrained.py') 13 13 md=setflowequation(md,'SSA','all') 14 14 md.cluster=generic('name',oshostname(),'np',3) 15 md.stressbalance.requested_outputs= StressTensorEnum()15 md.stressbalance.requested_outputs=['StressTensor'] 16 16 md.toolkits.DefaultAnalysis=issmmumpssolver() 17 17 md.autodiff.isautodiff=True 18 18 md=solve(md,StressbalanceSolutionEnum()) -
../trunk-jpl/test/NightlyRun/test3020.py
21 21 md=parameterize(md,'../Par/SquareShelfConstrained.py') 22 22 md=setflowequation(md,'SSA','all') 23 23 md.cluster=generic('name',oshostname(),'np',1) 24 md.transient.requested_outputs=[ IceVolumeEnum(),MaxVelEnum()]24 md.transient.requested_outputs=['IceVolume','MaxVel'] 25 25 md.verbose=verbose('autodiff',True) 26 26 md.stressbalance.restol=0.000001 27 27 md.toolkits.DefaultAnalysis=issmgslsolver() -
../trunk-jpl/test/NightlyRun/test3015.m
7 7 md=parameterize(md,'../Par/SquareShelfConstrained.par'); 8 8 md=setflowequation(md,'SSA','all'); 9 9 md.cluster=generic('name',oshostname(),'np',1); 10 md.masstransport.requested_outputs= IceVolumeEnum();10 md.masstransport.requested_outputs={'IceVolume'}; 11 11 md.verbose=verbose('autodiff',true); 12 12 md.toolkits.DefaultAnalysis=issmgslsolver(); 13 13 -
../trunk-jpl/test/NightlyRun/test111.py
13 13 md.extrude(3,1.) 14 14 md=setflowequation(md,'HO','all') 15 15 md.cluster=generic('name',oshostname(),'np',3) 16 md.transient.requested_outputs= IceVolumeEnum()16 md.transient.requested_outputs=['IceVolume'] 17 17 md=solve(md,TransientSolutionEnum()) 18 18 19 19 #Fields and tolerances to track changes -
../trunk-jpl/test/NightlyRun/test424.m
12 12 md.transient.isstressbalance=0; 13 13 md.transient.isgroundingline=1; 14 14 md.groundingline.migration='AgressiveMigration'; 15 md.transient.requested_outputs= [IceVolumeEnum();IceVolumeAboveFloatationEnum()];15 md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'}; 16 16 17 17 md.cluster=generic('name',oshostname(),'np',3); 18 18 md=solve(md,TransientSolutionEnum()); -
../trunk-jpl/test/NightlyRun/test3110.py
13 13 md=setflowequation(md,'SSA','all') 14 14 md.cluster=generic('name',oshostname(),'np',3) 15 15 md.toolkits.DefaultAnalysis=issmmumpssolver() 16 md.transient.requested_outputs= IceVolumeEnum()16 md.transient.requested_outputs=['IceVolume'] 17 17 18 18 md.autodiff.isautodiff=True 19 19 md=solve(md,TransientSolutionEnum()) -
../trunk-jpl/test/NightlyRun/test3003.py
13 13 md.extrude(3,2.) 14 14 md=setflowequation(md,'HO','all') 15 15 md.cluster=generic('name',oshostname(),'np',1) 16 md.stressbalance.requested_outputs= StressTensorEnum()16 md.stressbalance.requested_outputs=['StressTensor'] 17 17 md.toolkits.DefaultAnalysis=issmgslsolver() 18 18 md.autodiff.isautodiff=True 19 19 md=solve(md,StressbalanceSolutionEnum()) -
../trunk-jpl/test/NightlyRun/test103.py
13 13 md.extrude(3,2.) 14 14 md=setflowequation(md,'HO','all') 15 15 md.cluster=generic('name',oshostname(),'np',3) 16 md.stressbalance.requested_outputs= StressTensorEnum()16 md.stressbalance.requested_outputs=['StressTensor'] 17 17 md=solve(md,StressbalanceSolutionEnum()) 18 18 19 19 #Fields and tolerances to track changes -
../trunk-jpl/test/NightlyRun/test426.py
23 23 md.transient.isstressbalance=False 24 24 md.transient.isgroundingline=True 25 25 md.groundingline.migration='AgressiveMigration' 26 md.transient.requested_outputs=[ IceVolumeEnum(),IceVolumeAboveFloatationEnum()]26 md.transient.requested_outputs=['IceVolume','IceVolumeAboveFloatation'] 27 27 md.cluster=generic('name',oshostname(),'np',3) 28 28 29 29 md=solve(md,TransientSolutionEnum()) -
../trunk-jpl/test/NightlyRun/test328.py
16 16 md.surfaceforcings.issmbgradients=1 17 17 md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y 18 18 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y 19 md.transient.requested_outputs= TotalSmbEnum()19 md.transient.requested_outputs=['TotalSmb'] 20 20 md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1) 21 21 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y; 22 22 md.cluster=generic('name',oshostname(),'np',3) -
../trunk-jpl/src/c/analyses/transient_core.cpp
19 19 void transient_core(FemModel* femmodel){ 20 20 21 21 /*parameters: */ 22 int i; 22 23 IssmDouble starttime,finaltime,dt,yts; 23 24 bool isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isenthalpy,isdelta18o,isgia; 24 25 bool save_results,dakota_analysis; … … 26 27 int output_frequency; 27 28 int meshtype,groundingline_migration; 28 29 int numoutputs = 0; 29 int *requested_outputs = NULL;30 char** requested_outputs = NULL; 30 31 32 31 33 /*intermediary: */ 32 34 int step; 33 35 IssmDouble time; … … 183 185 184 186 femmodel->RequestedDependentsx(); 185 187 186 /*Free ressources:*/ 187 xDelete<int>(requested_outputs);188 /*Free ressources:*/ 189 if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);} 188 190 } -
../trunk-jpl/src/c/analyses/masstransport_core.cpp
12 12 void masstransport_core(FemModel* femmodel){ 13 13 14 14 /*parameters: */ 15 int i; 15 16 bool save_results; 16 17 bool issmbgradients,ispdd,isdelta18o,isFS,isfreesurface,dakota_analysis; 17 18 int solution_type; 18 int *requested_outputs = NULL;19 char** requested_outputs = NULL; 19 20 int numoutputs = 0; 20 21 21 22 /*activate configuration*/ … … 76 77 if(solution_type==MasstransportSolutionEnum)femmodel->RequestedDependentsx(); 77 78 78 79 /*Free ressources:*/ 79 xDelete<int>(requested_outputs);80 if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);} 80 81 } -
../trunk-jpl/src/c/analyses/stressbalance_core.cpp
20 20 int newton; 21 21 int solution_type; 22 22 int numoutputs = 0; 23 int *requested_outputs = NULL; 23 char** requested_outputs = NULL; 24 int i; 24 25 26 25 27 /* recover parameters:*/ 26 28 femmodel->parameters->FindParam(&meshtype,MeshTypeEnum); 27 29 femmodel->parameters->FindParam(&isSIA,FlowequationIsSIAEnum); … … 95 97 96 98 if(solution_type==StressbalanceSolutionEnum)femmodel->RequestedDependentsx(); 97 99 98 /*Free ressources:*/ 99 xDelete<int>(requested_outputs);100 /*Free ressources:*/ 101 if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);} 100 102 } -
../trunk-jpl/src/c/analyses/steadystate_core.cpp
20 20 void steadystate_core(FemModel* femmodel){ 21 21 22 22 /*intermediary: */ 23 int i; 23 24 int step; 24 25 Vector<IssmDouble>* ug = NULL; 25 26 Vector<IssmDouble>* ug_old = NULL; … … 31 32 int maxiter; 32 33 IssmDouble reltol; 33 34 int numoutputs = 0; 34 int *requested_outputs = NULL;35 char** requested_outputs = NULL; 35 36 36 37 /* recover parameters:*/ 37 38 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); … … 101 102 delete tg_old; 102 103 delete ug_old; 103 104 delete tg; 104 delete ug; 105 xDelete<int>(requested_outputs);105 delete ug; 106 if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);} 106 107 } 107 108 bool steadystateconvergence(Vector<IssmDouble>* tg,Vector<IssmDouble>* tg_old,Vector<IssmDouble>* ug,Vector<IssmDouble>* ug_old,IssmDouble reltol){ 108 109 -
../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateParametersStressbalance.cpp
11 11 12 12 /*Intermediaries*/ 13 13 int numoutputs; 14 IssmDouble *requestedoutputs = NULL;14 char** requestedoutputs = NULL; 15 15 16 16 /*Get parameters: */ 17 17 Parameters *parameters=*pparameters; … … 34 34 parameters->AddObject(iomodel->CopyConstantObject(StressbalanceViscosityOvershootEnum)); 35 35 36 36 /*Requested outputs*/ 37 iomodel->FetchData(&requestedoutputs,&numoutputs, NULL,StressbalanceRequestedOutputsEnum);37 iomodel->FetchData(&requestedoutputs,&numoutputs,StressbalanceRequestedOutputsEnum); 38 38 parameters->AddObject(new IntParam(StressbalanceNumRequestedOutputsEnum,numoutputs)); 39 if(numoutputs)parameters->AddObject(new IntVecParam(StressbalanceRequestedOutputsEnum,requestedoutputs,numoutputs));40 iomodel->DeleteData( requestedoutputs,StressbalanceRequestedOutputsEnum);39 if(numoutputs)parameters->AddObject(new StringArrayParam(StressbalanceRequestedOutputsEnum,requestedoutputs,numoutputs)); 40 iomodel->DeleteData(&requestedoutputs,numoutputs,StressbalanceRequestedOutputsEnum); 41 41 42 42 /*Assign output pointer: */ 43 43 *pparameters = parameters; -
../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
20 20 int i,j,m,k; 21 21 int numoutputs,meshtype; 22 22 Parameters *parameters = NULL; 23 IssmDouble *requestedoutputs = NULL;23 char** requestedoutputs = NULL; 24 24 IssmDouble time; 25 25 bool ispdd,isdelta18o; 26 26 … … 135 135 /*By default, save all results*/ 136 136 parameters->AddObject(new BoolParam(SaveResultsEnum,true)); 137 137 138 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,TransientRequestedOutputsEnum); 138 /*Requested outputs */ 139 iomodel->FetchData(&requestedoutputs,&numoutputs,TransientRequestedOutputsEnum); 139 140 parameters->AddObject(new IntParam(TransientNumRequestedOutputsEnum,numoutputs)); 140 if(numoutputs)parameters->AddObject(new IntVecParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs));141 iomodel->DeleteData( requestedoutputs,TransientRequestedOutputsEnum);141 if(numoutputs)parameters->AddObject(new StringArrayParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs)); 142 iomodel->DeleteData(&requestedoutputs,numoutputs,TransientRequestedOutputsEnum); 142 143 143 iomodel->FetchData(&requestedoutputs,&numoutputs, NULL,SteadystateRequestedOutputsEnum);144 iomodel->FetchData(&requestedoutputs,&numoutputs,SteadystateRequestedOutputsEnum); 144 145 parameters->AddObject(new IntParam(SteadystateNumRequestedOutputsEnum,numoutputs)); 145 if(numoutputs)parameters->AddObject(new IntVecParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs));146 iomodel->DeleteData( requestedoutputs,SteadystateRequestedOutputsEnum);146 if(numoutputs)parameters->AddObject(new StringArrayParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs)); 147 iomodel->DeleteData(&requestedoutputs,numoutputs,SteadystateRequestedOutputsEnum); 147 148 148 iomodel->FetchData(&requestedoutputs,&numoutputs, NULL,MasstransportRequestedOutputsEnum);149 iomodel->FetchData(&requestedoutputs,&numoutputs,MasstransportRequestedOutputsEnum); 149 150 parameters->AddObject(new IntParam(MasstransportNumRequestedOutputsEnum,numoutputs)); 150 if(numoutputs)parameters->AddObject(new IntVecParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs));151 iomodel->DeleteData( requestedoutputs,MasstransportRequestedOutputsEnum);151 if(numoutputs)parameters->AddObject(new StringArrayParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs)); 152 iomodel->DeleteData(&requestedoutputs,numoutputs,MasstransportRequestedOutputsEnum); 152 153 153 154 /*Deal with mass flux segments: {{{*/ 154 155 iomodel->FetchData(&qmu_mass_flux_present,QmuMassFluxSegmentsPresentEnum); -
../trunk-jpl/src/c/classes/FemModel.cpp
469 469 470 470 } 471 471 /*}}}*/ 472 void FemModel::RequestedOutputsx( int* requested_outputs, int numoutputs){/*{{{*/472 void FemModel::RequestedOutputsx(char** requested_outputs, int numoutputs){/*{{{*/ 473 473 474 int output_enum;474 char* output_string; 475 475 int step; 476 476 IssmDouble time; 477 477 IssmDouble output_value; … … 484 484 /*retrieve Inputs*/ 485 485 if(numoutputs){ 486 486 for(int i=0;i<numoutputs;i++){ 487 output_ enum=requested_outputs[i];487 output_string=requested_outputs[i]; 488 488 489 switch(output_enum){ 489 if (strcmp(output_string,"IceVolume")==0){ 490 Responsex(&output_value,output_string); 491 results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeEnum,reCast<IssmPDouble>(output_value),step,time)); 490 492 491 case IceVolumeEnum:492 Responsex(&output_value,"IceVolume");493 results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeEnum,reCast<IssmPDouble>(output_value),step,time));494 break;495 case IceVolumeAboveFloatationEnum:496 Responsex(&output_value,"IceVolumeAboveFloatation");497 results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeAboveFloatationEnum,reCast<IssmPDouble>(output_value),step,time));498 break;499 case TotalSmbEnum:500 Responsex(&output_value,"TotalSmb");501 results->AddObject(new GenericExternalResult<double>(results->Size()+1,TotalSmbEnum,reCast<IssmPDouble>(output_value),step,time));502 break;503 case MaxVelEnum:504 Responsex(&output_value,"MaxVel");505 results->AddObject(new GenericExternalResult<double>(results->Size()+1,MaxVelEnum,reCast<IssmPDouble>(output_value),step,time));506 break;507 default:508 /*create this output in the element inputs, and then transfer to results:*/509 for(int j=0;j<elements->Size();j++){510 element=(Element*)elements->GetObjectByOffset(j);511 element->RequestedOutput(output_enum,step,time);512 }513 break;514 493 } 494 else if (strcmp(output_string,"TotalSmb")==0){ 495 Responsex(&output_value,output_string); 496 results->AddObject(new GenericExternalResult<double>(results->Size()+1,TotalSmbEnum,reCast<IssmPDouble>(output_value),step,time)); 497 } 498 else if (strcmp(output_string,"MaxVel")==0){ 499 Responsex(&output_value,output_string); 500 results->AddObject(new GenericExternalResult<double>(results->Size()+1,MaxVelEnum,reCast<IssmPDouble>(output_value),step,time)); 501 } 502 else{ 503 /*create this output in the element inputs, and then transfer to results:*/ 504 for(int j=0;j<elements->Size();j++){ 505 element=(Element*)elements->GetObjectByOffset(j); 506 element->RequestedOutput(StringToEnumx(output_string),step,time); 507 } 508 } 515 509 } 516 510 } 517 511 } -
../trunk-jpl/src/c/classes/IoModel.h
66 66 IssmDouble *Data(int dataenum); 67 67 void DeleteData(int num,...); 68 68 void DeleteData(IssmDouble* vector, int dataenum); 69 void DeleteData(char*** pstringarray, int numstrings, int dataenum); 69 70 void FetchConstants(void); 70 71 void FetchData(bool* pboolean,int data_enum); 71 72 void FetchData(int* pinteger,int data_enum); -
../trunk-jpl/src/c/classes/IoModel.cpp
339 339 if(vector)if (!this->independents[dataenum]) xDelete<IssmDouble>(vector); 340 340 341 341 } /*}}}*/ 342 /*FUNCTION IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum) {{{*/ 343 void IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum){ 344 345 int i; 346 char** stringarray=*pstringarray; 347 348 if (numstrings){ 349 for (i=0;i<numstrings;i++){ 350 char* string=stringarray[i]; 351 xDelete<char>(string); 352 } 353 xDelete<char*>(stringarray); 354 } 355 *pstringarray=NULL; 356 } /*}}}*/ 342 357 /*FUNCTION IoModel::FetchConstants{{{*/ 343 358 void IoModel::FetchConstants(void){ 344 359 -
../trunk-jpl/src/c/classes/FemModel.h
81 81 #ifdef _HAVE_DAKOTA_ 82 82 void DakotaResponsesx(double* d_responses,char** responses_descriptors,int numresponsedescriptors,int d_numresponses); 83 83 #endif 84 void RequestedOutputsx( int* requested_outputs, int numoutputs);84 void RequestedOutputsx(char** requested_outputs, int numoutputs); 85 85 void RequestedDependentsx(void); 86 86 void Responsex(IssmDouble* presponse,int response_descriptor_enum); 87 87 void Responsex(IssmDouble* presponse,const char* response_descriptor); -
../trunk-jpl/src/m/classes/transient.py
17 17 self.isthermal = False 18 18 self.isgroundingline = False 19 19 self.isgia = False 20 self.requested_outputs = float('NaN')20 self.requested_outputs = [] 21 21 22 22 #set defaults 23 23 self.setdefaultparameters() … … 55 55 md = checkfield(md,'transient.isthermal','numel',[1],'values',[0,1]) 56 56 md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0,1]) 57 57 md = checkfield(md,'transient.isgia','numel',[1],'values',[0,1]) 58 md = checkfield(md,'transient.requested_outputs','size',[ float('NaN')])58 md = checkfield(md,'transient.requested_outputs','size',[1, float('NaN')]) 59 59 60 60 61 61 return md … … 66 66 WriteData(fid,'object',self,'fieldname','isthermal','format','Boolean') 67 67 WriteData(fid,'object',self,'fieldname','isgroundingline','format','Boolean') 68 68 WriteData(fid,'object',self,'fieldname','isgia','format','Boolean') 69 WriteData(fid,'object',self,'fieldname','requested_outputs','format',' DoubleMat','mattype',3)69 WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray') 70 70 # }}} 71 71 -
../trunk-jpl/src/m/classes/steadystate.m
7 7 properties (SetAccess=public) 8 8 reltol = 0; 9 9 maxiter = 0; 10 requested_outputs = NaN;10 requested_outputs = {}; 11 11 end 12 12 methods 13 13 function obj = steadystate(varargin) % {{{ … … 49 49 function marshall(obj,md,fid) % {{{ 50 50 WriteData(fid,'object',obj,'fieldname','reltol','format','Double'); 51 51 WriteData(fid,'object',obj,'fieldname','maxiter','format','Integer'); 52 WriteData(fid,'object',obj,'fieldname','requested_outputs','format',' DoubleMat','mattype',3);52 WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray'); 53 53 end % }}} 54 54 end 55 55 end -
../trunk-jpl/src/m/classes/transient.m
11 11 isgroundingline = 0; 12 12 isgia = 0; 13 13 isdamage = 0; 14 requested_outputs = NaN;14 requested_outputs = {}; 15 15 end 16 16 methods 17 17 function obj = transient(varargin) % {{{ … … 44 44 md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0 1]); 45 45 md = checkfield(md,'transient.isgia','numel',[1],'values',[0 1]); 46 46 md = checkfield(md,'transient.isdamage','numel',[1],'values',[0 1]); 47 md = checkfield(md,'transient.requested_outputs','size',[ NaN 1]);47 md = checkfield(md,'transient.requested_outputs','size',[1 NaN]); 48 48 49 49 end % }}} 50 50 function disp(obj) % {{{ … … 66 66 WriteData(fid,'object',obj,'fieldname','isgroundingline','format','Boolean'); 67 67 WriteData(fid,'object',obj,'fieldname','isgia','format','Boolean'); 68 68 WriteData(fid,'object',obj,'fieldname','isdamage','format','Boolean'); 69 WriteData(fid,'object',obj,'fieldname','requested_outputs','format',' DoubleMat','mattype',3);69 WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray'); 70 70 end % }}} 71 71 end 72 72 end -
../trunk-jpl/src/m/classes/masstransport.py
20 20 self.stabilization = 0 21 21 self.vertex_pairing = float('NaN') 22 22 self.penalty_factor = 0 23 self.requested_outputs = float('NaN')23 self.requested_outputs = [] 24 24 25 25 #set defaults 26 26 self.setdefaultparameters() … … 65 65 md = checkfield(md,'masstransport.stabilization','values',[0,1,2,3]) 66 66 md = checkfield(md,'masstransport.min_thickness','>',0) 67 67 if not md.masstransport.requested_outputs: 68 md = checkfield(md,'masstransport.requested_outputs','size',[ float('NaN'),1])68 md = checkfield(md,'masstransport.requested_outputs','size',[1, float('NaN')]) 69 69 70 70 return md 71 71 # }}} … … 77 77 WriteData(fid,'object',self,'fieldname','stabilization','format','Integer') 78 78 WriteData(fid,'object',self,'fieldname','vertex_pairing','format','DoubleMat','mattype',3) 79 79 WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double') 80 WriteData(fid,'object',self,'fieldname','requested_outputs','format',' DoubleMat','mattype',3);80 WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray'); 81 81 # }}} -
../trunk-jpl/src/m/classes/snowpack.m
470 470 WriteData(fid,'object',obj,'class','snowpack','fieldname','rift_penalty_lock','format','Integer'); 471 471 WriteData(fid,'object',obj,'class','snowpack','fieldname','rift_penalty_threshold','format','Integer'); 472 472 WriteData(fid,'object',obj,'class','snowpack','fieldname','referential','format','DoubleMat','mattype',1); 473 WriteData(fid,'object',obj,'class','snowpack','fieldname','requested_outputs','format',' DoubleMat','mattype',3);473 WriteData(fid,'object',obj,'class','snowpack','fieldname','requested_outputs','format','StringArray'); 474 474 WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum); 475 475 WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum); 476 476 WriteData(fid,'data',obj.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum); -
../trunk-jpl/src/m/classes/stressbalance.py
33 33 self.rift_penalty_threshold = 0 34 34 self.referential = float('NaN') 35 35 self.loadingforce = float('NaN') 36 self.requested_outputs = float('NaN')36 self.requested_outputs = [] 37 37 38 38 #set defaults 39 39 self.setdefaultparameters() … … 123 123 md = checkfield(md,'stressbalance.referential','size',[md.mesh.numberofvertices,6]) 124 124 md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices,3]) 125 125 if not md.stressbalance.requested_outputs: 126 md = checkfield(md,'stressbalance.requested_outputs','size',[ float('NaN'),1])126 md = checkfield(md,'stressbalance.requested_outputs','size',[1, float('NaN')]) 127 127 128 128 #singular solution 129 129 # if ~any((~isnan(md.stressbalance.spcvx)+~isnan(md.stressbalance.spcvy))==2), … … 171 171 WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer') 172 172 WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer') 173 173 WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1) 174 WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format',' DoubleMat','mattype',3)174 WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format','StringArray') 175 175 WriteData(fid,'data',self.loadingforce[:,0],'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum()) 176 176 WriteData(fid,'data',self.loadingforce[:,1],'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum()) 177 177 WriteData(fid,'data',self.loadingforce[:,2],'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum()) -
../trunk-jpl/src/m/classes/steadystate.py
15 15 def __init__(self): # {{{ 16 16 self.reltol = 0 17 17 self.maxiter = 0 18 self.requested_outputs = float('NaN')18 self.requested_outputs = [] 19 19 20 20 #set defaults 21 21 self.setdefaultparameters() … … 55 55 def marshall(self,md,fid): # {{{ 56 56 WriteData(fid,'object',self,'fieldname','reltol','format','Double') 57 57 WriteData(fid,'object',self,'fieldname','maxiter','format','Integer') 58 WriteData(fid,'object',self,'fieldname','requested_outputs','format',' DoubleMat','mattype',3)58 WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray') 59 59 # }}} -
../trunk-jpl/src/m/classes/stressbalance.m
22 22 rift_penalty_threshold = 0; 23 23 referential = NaN; 24 24 loadingforce = NaN; 25 requested_outputs = NaN;25 requested_outputs = {}; 26 26 end 27 27 methods 28 28 function obj = stressbalance(varargin) % {{{ … … 91 91 md = checkfield(md,'stressbalance.referential','size',[md.mesh.numberofvertices 6]); 92 92 md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]); 93 93 if ~isempty(md.stressbalance.requested_outputs), 94 md = checkfield(md,'stressbalance.requested_outputs','size',[ NaN 1]);94 md = checkfield(md,'stressbalance.requested_outputs','size',[1 NaN]); 95 95 end 96 96 97 97 %singular solution … … 171 171 WriteData(fid,'object',obj,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer'); 172 172 WriteData(fid,'object',obj,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer'); 173 173 WriteData(fid,'object',obj,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1); 174 WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format',' DoubleMat','mattype',3);174 WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format','StringArray'); 175 175 WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum); 176 176 WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum); 177 177 WriteData(fid,'data',obj.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum); -
../trunk-jpl/src/m/classes/masstransport.m
12 12 stabilization = 0; 13 13 vertex_pairing = NaN; 14 14 penalty_factor = 0; 15 requested_outputs = NaN;15 requested_outputs = {}; 16 16 end 17 17 methods (Static) 18 18 function obj = loadobj(obj) % {{{ … … 84 84 md = checkfield(md,'masstransport.stabilization','values',[0 1 2 3]); 85 85 md = checkfield(md,'masstransport.min_thickness','>',0); 86 86 if ~isempty(md.masstransport.requested_outputs), 87 md = checkfield(md,'masstransport.requested_outputs','size',[ NaN 1]);87 md = checkfield(md,'masstransport.requested_outputs','size',[1 NaN]); 88 88 end 89 89 90 90 end % }}} … … 110 110 WriteData(fid,'object',obj,'fieldname','stabilization','format','Integer'); 111 111 WriteData(fid,'object',obj,'fieldname','vertex_pairing','format','DoubleMat','mattype',3); 112 112 WriteData(fid,'object',obj,'fieldname','penalty_factor','format','Double'); 113 WriteData(fid,'object',obj,'fieldname','requested_outputs','format',' DoubleMat','mattype',3);113 WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray'); 114 114 end % }}} 115 115 end 116 116 end
Note:
See TracBrowser
for help on using the repository browser.