Changeset 9476
- Timestamp:
- 08/26/11 16:45:02 (14 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
r9395 r9476 16 16 int i; 17 17 Parameters *parameters = NULL; 18 bool control_analysis = false;18 bool control_analysis; 19 19 int nsteps; 20 20 int num_control_type; … … 30 30 31 31 /*retrieve some parameters: */ 32 parameters->FindParam(&control_analysis,ControlAnalysisEnum); 32 iomodel->Constant(&control_analysis,ControlAnalysisEnum); 33 parameters->AddObject(new BoolParam(ControlAnalysisEnum,control_analysis)); 33 34 34 35 if(control_analysis){ 36 37 /*How many controls and how many responses?*/ 38 parameters->AddObject(iomodel->CopyConstantObject(NumControlTypeEnum)); 39 parameters->AddObject(iomodel->CopyConstantObject(NumCmResponsesEnum)); 40 parameters->AddObject(iomodel->CopyConstantObject(NstepsEnum)); 41 parameters->AddObject(iomodel->CopyConstantObject(TolxEnum)); 42 parameters->AddObject(iomodel->CopyConstantObject(EpsCmEnum)); 43 parameters->AddObject(iomodel->CopyConstantObject(CmGradientEnum)); 44 parameters->AddObject(iomodel->CopyConstantObject(MeanvelEnum)); 35 45 36 46 /*What solution type?*/ -
issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
r9472 r9476 18 18 Parameters *parameters = NULL; 19 19 double *requestedoutputs = NULL; 20 char *rheology_law = NULL;21 20 22 21 if(*pparameters)return; //do not create parameters twice! 22 23 /*Initialize dataset: */ 24 parameters = new Parameters(ParametersEnum); 23 25 24 /*Initialize dataset: */ 25 parameters = iomodel->CopyConstants(); 26 /*Copy some constants from iomodel */ 27 parameters->AddObject(iomodel->CopyConstantObject(DimEnum)); 28 parameters->AddObject(iomodel->CopyConstantObject(IshutterEnum)); 29 parameters->AddObject(iomodel->CopyConstantObject(IsmacayealpattynEnum)); 30 parameters->AddObject(iomodel->CopyConstantObject(IsstokesEnum)); 31 parameters->AddObject(iomodel->CopyConstantObject(OutputFrequencyEnum)); 32 parameters->AddObject(iomodel->CopyConstantObject(EpsResEnum)); 33 parameters->AddObject(iomodel->CopyConstantObject(EpsRelEnum)); 34 parameters->AddObject(iomodel->CopyConstantObject(EpsAbsEnum)); 35 parameters->AddObject(iomodel->CopyConstantObject(MaxNonlinearIterationsEnum)); 36 parameters->AddObject(iomodel->CopyConstantObject(MaxSteadystateIterationsEnum)); 37 parameters->AddObject(iomodel->CopyConstantObject(EpsvelEnum)); 38 parameters->AddObject(iomodel->CopyConstantObject(YtsEnum)); 39 parameters->AddObject(iomodel->CopyConstantObject(DtEnum)); 40 parameters->AddObject(iomodel->CopyConstantObject(NdtEnum)); 41 parameters->AddObject(iomodel->CopyConstantObject(TimeAdaptEnum)); 42 parameters->AddObject(iomodel->CopyConstantObject(CflCoefficientEnum)); 43 parameters->AddObject(iomodel->CopyConstantObject(HydrostaticAdjustmentEnum)); 44 parameters->AddObject(iomodel->CopyConstantObject(PenaltyOffsetEnum)); 45 parameters->AddObject(iomodel->CopyConstantObject(LowmemEnum)); 46 parameters->AddObject(iomodel->CopyConstantObject(ConnectivityEnum)); 47 parameters->AddObject(iomodel->CopyConstantObject(BetaEnum)); 48 parameters->AddObject(iomodel->CopyConstantObject(MeltingpointEnum)); 49 parameters->AddObject(iomodel->CopyConstantObject(ReferencetemperatureEnum)); 50 parameters->AddObject(iomodel->CopyConstantObject(LatentheatEnum)); 51 parameters->AddObject(iomodel->CopyConstantObject(HeatcapacityEnum)); 52 parameters->AddObject(iomodel->CopyConstantObject(ArtificialDiffusivityEnum)); 53 parameters->AddObject(iomodel->CopyConstantObject(GroundinglineMeltingRateEnum)); 54 parameters->AddObject(iomodel->CopyConstantObject(MinThermalConstraintsEnum)); 55 parameters->AddObject(iomodel->CopyConstantObject(MinMechanicalConstraintsEnum)); 56 parameters->AddObject(iomodel->CopyConstantObject(StabilizeConstraintsEnum)); 57 parameters->AddObject(iomodel->CopyConstantObject(StokesreconditioningEnum)); 58 parameters->AddObject(iomodel->CopyConstantObject(ShelfDampeningEnum)); 59 parameters->AddObject(iomodel->CopyConstantObject(ViscosityOvershootEnum)); 60 parameters->AddObject(iomodel->CopyConstantObject(WaitonlockEnum)); 61 parameters->AddObject(iomodel->CopyConstantObject(NumberOfElementsEnum)); 62 parameters->AddObject(iomodel->CopyConstantObject(IoGatherEnum)); 63 parameters->AddObject(iomodel->CopyConstantObject(GroundinglineMigrationEnum)); 64 parameters->AddObject(iomodel->CopyConstantObject(IsdiagnosticEnum)); 65 parameters->AddObject(iomodel->CopyConstantObject(IsprognosticEnum)); 66 parameters->AddObject(iomodel->CopyConstantObject(IsthermalEnum)); 67 68 /*Some parameters need to be processed from iomodel*/ 69 char* rheology_law = NULL; 70 iomodel->Constant(&rheology_law,RheologyLawEnum); 71 if (strcmp(rheology_law,"none")==0) parameters->AddObject(new IntParam(RheologyLawEnum,NoneEnum)); 72 else if (strcmp(rheology_law,"paterson")==0) parameters->AddObject(new IntParam(RheologyLawEnum,PatersonEnum)); 73 else if (strcmp(rheology_law,"arrhenius")==0) parameters->AddObject(new IntParam(RheologyLawEnum,ArrheniusEnum)); 74 else _error_("Rheology law %s not supported",rheology_law); 26 75 27 76 /*some parameters that did not come with the iomodel: */ -
issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp
r9381 r9476 63 63 64 64 /*recover parameters: */ 65 parameters->FindParam(&qmu_analysis,QmuAnalysisEnum); 66 parameters->FindParam(&name,NameEnum); 67 parameters->FindParam(&numberofresponses,NumberOfResponsesEnum); 68 parameters->FindParam(&numberofvertices,NumberOfVerticesEnum); 65 iomodel->Constant(&qmu_analysis,QmuAnalysisEnum); 66 parameters->AddObject(new BoolParam(QmuAnalysisEnum,qmu_analysis)); 67 69 68 if(qmu_analysis){ 69 70 parameters->FindParam(&name,NameEnum); 71 parameters->FindParam(&numberofresponses,NumberOfResponsesEnum); 72 parameters->FindParam(&numberofvertices,NumberOfVerticesEnum); 70 73 71 74 /*name of qmu input, error and output files:{{{1*/ -
issm/trunk/src/c/objects/IoModel.cpp
r9468 r9476 124 124 } 125 125 /*}}}*/ 126 /*FUNCTION IoModel::CopyConstant s{{{1*/127 Param eters* IoModel::CopyConstants(void){126 /*FUNCTION IoModel::CopyConstantObject{{{1*/ 127 Param* IoModel::CopyConstantObject(int constant_enum){ 128 128 129 129 _assert_(this->constants); 130 return (Parameters*)this->constants->Copy(); 130 131 /*Find constant*/ 132 Param* param=(Param*)this->constants->FindParamObject(constant_enum); 133 if(!param) _error_("Constant %s not found in iomodel",EnumToStringx(constant_enum)); 134 135 return (Param*)param->copy(); 131 136 } 132 137 /*}}}*/ -
issm/trunk/src/c/objects/IoModel.h
r9468 r9476 12 12 13 13 class Elements; 14 class Param; 14 15 15 16 … … 44 45 void Constant(double *poutput,int constant_enum); 45 46 void Constant(char **poutput,int constant_enum); 46 Param eters *CopyConstants(void);47 Param *CopyConstantObject(int constant_enum); 47 48 double *Data(int dataenum); 48 49 void DeleteData(int num,...); -
issm/trunk/src/m/model/marshall.m
r9472 r9476 25 25 if strcmpi(field,'verbose'), 26 26 WriteData(fid,field,VerboseToBinary(md.verbose),{'Integer'}); 27 elseif strcmpi(field,'rheology_law'),28 if strcmpi(md.rheology_law,'none'),29 WriteData(fid,field,NoneEnum,{'Integer'});30 elseif strcmpi(md.rheology_law,'paterson'),31 WriteData(fid,field,PatersonEnum,{'Integer'});32 elseif strcmpi(md.rheology_law,'arrhenius'),33 WriteData(fid,field,ArrheniusEnum,{'Integer'});34 else35 error('unkown value');36 end37 27 else 38 28 WriteData(fid,field,md.(field),template.(field)(3:end));
Note:
See TracChangeset
for help on using the changeset viewer.