Changeset 1838
- Timestamp:
- 08/24/09 17:55:52 (16 years ago)
- Location:
- issm/trunk/src/c/ModelProcessorx
- Files:
-
- 2 added
- 2 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ModelProcessorx/CreateDataSets.cpp
r1805 r1838 1 1 /*!\file: CreateDataSets 2 * \brief general driver for creating all datasets that make a finite element model2 * \brief general driver for creating all datasets that make a finite element iomodel 3 3 */ 4 4 … … 12 12 #define __FUNCT__ "CreateElementsNodesAndMaterials" 13 13 14 #include "./ Model.h"14 #include "./IoModel.h" 15 15 #include "../shared/shared.h" 16 16 #include "../EnumDefinitions/EnumDefinitions.h" 17 17 18 18 19 void CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,DataSet** pparameters,Model* model,ConstDataHandle model_handle){ 19 void CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){ 20 20 21 21 22 /*create parameters common to all solutions: */ 22 CreateParameters(pparameters, model,model_handle);23 CreateParametersQmu(pparameters, model,model_handle);23 CreateParameters(pparameters,iomodel,iomodel_handle); 24 CreateParametersQmu(pparameters,iomodel,iomodel_handle); 24 25 25 26 /*This is just a high level driver: */ 26 if ( model->analysis_type==ControlAnalysisEnum()){27 if (iomodel->analysis_type==ControlAnalysisEnum()){ 27 28 28 if ( model->sub_analysis_type==HorizAnalysisEnum()){29 if (iomodel->sub_analysis_type==HorizAnalysisEnum()){ 29 30 30 CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, model,model_handle);31 CreateConstraintsDiagnosticHoriz(pconstraints, model,model_handle);32 CreateLoadsDiagnosticHoriz(ploads, model,model_handle);33 CreateParametersControl(pparameters, model,model_handle);31 CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 32 CreateConstraintsDiagnosticHoriz(pconstraints,iomodel,iomodel_handle); 33 CreateLoadsDiagnosticHoriz(ploads,iomodel,iomodel_handle); 34 CreateParametersControl(pparameters,iomodel,iomodel_handle); 34 35 35 36 } 36 else if ( model->sub_analysis_type==VertAnalysisEnum()){37 else if (iomodel->sub_analysis_type==VertAnalysisEnum()){ 37 38 38 CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, model,model_handle);39 CreateConstraintsDiagnosticVert(pconstraints, model,model_handle);40 CreateLoadsDiagnosticVert(ploads, model,model_handle);39 CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 40 CreateConstraintsDiagnosticVert(pconstraints,iomodel,iomodel_handle); 41 CreateLoadsDiagnosticVert(ploads,iomodel,iomodel_handle); 41 42 42 43 } 43 else if ( model->sub_analysis_type==StokesAnalysisEnum()){44 else if (iomodel->sub_analysis_type==StokesAnalysisEnum()){ 44 45 45 CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, model,model_handle);46 CreateConstraintsDiagnosticStokes(pconstraints, model,model_handle);47 CreateLoadsDiagnosticStokes(ploads, model,model_handle);48 CreateParametersControl(pparameters, model,model_handle);46 CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 47 CreateConstraintsDiagnosticStokes(pconstraints,iomodel,iomodel_handle); 48 CreateLoadsDiagnosticStokes(ploads,iomodel,iomodel_handle); 49 CreateParametersControl(pparameters,iomodel,iomodel_handle); 49 50 50 51 } 51 else if ( model->sub_analysis_type==HutterAnalysisEnum()){52 else if (iomodel->sub_analysis_type==HutterAnalysisEnum()){ 52 53 53 CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, model,model_handle);54 CreateConstraintsDiagnosticHutter(pconstraints, model,model_handle);55 CreateLoadsDiagnosticHutter(ploads, model,model_handle);56 CreateParametersControl(pparameters, model,model_handle);54 CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 55 CreateConstraintsDiagnosticHutter(pconstraints,iomodel,iomodel_handle); 56 CreateLoadsDiagnosticHutter(ploads,iomodel,iomodel_handle); 57 CreateParametersControl(pparameters,iomodel,iomodel_handle); 57 58 58 59 } 59 60 60 61 } 61 else if ( model->analysis_type==DiagnosticAnalysisEnum()){62 else if (iomodel->analysis_type==DiagnosticAnalysisEnum()){ 62 63 63 if ( model->sub_analysis_type==HorizAnalysisEnum()){64 if (iomodel->sub_analysis_type==HorizAnalysisEnum()){ 64 65 65 CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, model,model_handle);66 CreateConstraintsDiagnosticHoriz(pconstraints, model,model_handle);67 CreateLoadsDiagnosticHoriz(ploads, model,model_handle);68 CreateParametersDiagnosticHoriz(pparameters, model,model_handle);66 CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 67 CreateConstraintsDiagnosticHoriz(pconstraints,iomodel,iomodel_handle); 68 CreateLoadsDiagnosticHoriz(ploads,iomodel,iomodel_handle); 69 CreateParametersDiagnosticHoriz(pparameters,iomodel,iomodel_handle); 69 70 70 71 } 71 else if ( model->sub_analysis_type==VertAnalysisEnum()){72 else if (iomodel->sub_analysis_type==VertAnalysisEnum()){ 72 73 73 CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, model,model_handle);74 CreateConstraintsDiagnosticVert(pconstraints, model,model_handle);75 CreateLoadsDiagnosticVert(ploads, model,model_handle);74 CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 75 CreateConstraintsDiagnosticVert(pconstraints,iomodel,iomodel_handle); 76 CreateLoadsDiagnosticVert(ploads,iomodel,iomodel_handle); 76 77 77 78 } 78 else if ( model->sub_analysis_type==StokesAnalysisEnum()){79 else if (iomodel->sub_analysis_type==StokesAnalysisEnum()){ 79 80 80 CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, model,model_handle);81 CreateConstraintsDiagnosticStokes(pconstraints, model,model_handle);82 CreateLoadsDiagnosticStokes(ploads, model,model_handle);81 CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 82 CreateConstraintsDiagnosticStokes(pconstraints,iomodel,iomodel_handle); 83 CreateLoadsDiagnosticStokes(ploads,iomodel,iomodel_handle); 83 84 84 85 } 85 else if ( model->sub_analysis_type==HutterAnalysisEnum()){86 else if (iomodel->sub_analysis_type==HutterAnalysisEnum()){ 86 87 87 CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, model,model_handle);88 CreateConstraintsDiagnosticHutter(pconstraints, model,model_handle);89 CreateLoadsDiagnosticHutter(ploads, model,model_handle);88 CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 89 CreateConstraintsDiagnosticHutter(pconstraints,iomodel,iomodel_handle); 90 CreateLoadsDiagnosticHutter(ploads,iomodel,iomodel_handle); 90 91 91 92 } 92 93 } 93 else if ( model->analysis_type==SlopeComputeAnalysisEnum()){94 else if (iomodel->analysis_type==SlopeComputeAnalysisEnum()){ 94 95 95 CreateElementsNodesAndMaterialsSlopeCompute(pelements,pnodes,pmaterials, model,model_handle);96 CreateConstraintsSlopeCompute(pconstraints, model,model_handle);97 CreateLoadsSlopeCompute(ploads, model,model_handle);96 CreateElementsNodesAndMaterialsSlopeCompute(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 97 CreateConstraintsSlopeCompute(pconstraints,iomodel,iomodel_handle); 98 CreateLoadsSlopeCompute(ploads,iomodel,iomodel_handle); 98 99 99 100 } 100 else if ( model->analysis_type==ThermalAnalysisEnum()){101 else if (iomodel->analysis_type==ThermalAnalysisEnum()){ 101 102 102 CreateElementsNodesAndMaterialsThermal(pelements,pnodes,pmaterials, model,model_handle);103 CreateConstraintsThermal(pconstraints, model,model_handle);104 CreateLoadsThermal(ploads, model,model_handle);105 CreateParametersThermal(pparameters, model,model_handle);103 CreateElementsNodesAndMaterialsThermal(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 104 CreateConstraintsThermal(pconstraints,iomodel,iomodel_handle); 105 CreateLoadsThermal(ploads,iomodel,iomodel_handle); 106 CreateParametersThermal(pparameters,iomodel,iomodel_handle); 106 107 107 108 } 108 else if ( model->analysis_type==MeltingAnalysisEnum()){109 else if (iomodel->analysis_type==MeltingAnalysisEnum()){ 109 110 110 CreateElementsNodesAndMaterialsMelting(pelements,pnodes,pmaterials, model,model_handle);111 CreateConstraintsMelting(pconstraints, model,model_handle);112 CreateLoadsMelting(ploads, model,model_handle);113 CreateParametersMelting(pparameters, model,model_handle);111 CreateElementsNodesAndMaterialsMelting(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 112 CreateConstraintsMelting(pconstraints,iomodel,iomodel_handle); 113 CreateLoadsMelting(ploads,iomodel,iomodel_handle); 114 CreateParametersMelting(pparameters,iomodel,iomodel_handle); 114 115 } 115 else if ( model->analysis_type==PrognosticAnalysisEnum()){116 else if (iomodel->analysis_type==PrognosticAnalysisEnum()){ 116 117 117 CreateElementsNodesAndMaterialsPrognostic(pelements,pnodes,pmaterials, model,model_handle);118 CreateConstraintsPrognostic(pconstraints, model,model_handle);119 CreateLoadsPrognostic(ploads, model,model_handle);120 CreateParametersPrognostic(pparameters, model,model_handle);118 CreateElementsNodesAndMaterialsPrognostic(pelements,pnodes,pmaterials, iomodel,iomodel_handle); 119 CreateConstraintsPrognostic(pconstraints,iomodel,iomodel_handle); 120 CreateLoadsPrognostic(ploads,iomodel,iomodel_handle); 121 CreateParametersPrognostic(pparameters,iomodel,iomodel_handle); 121 122 122 123 } 123 124 else{ 124 throw ErrorException(__FUNCT__,exprintf("%s%i%s%i%s"," analysis_type: ", model->analysis_type," sub_analysis_type: ",model->sub_analysis_type," not supported yet!"));125 throw ErrorException(__FUNCT__,exprintf("%s%i%s%i%s"," analysis_type: ",iomodel->analysis_type," sub_analysis_type: ",iomodel->sub_analysis_type," not supported yet!")); 125 126 } 126 127 127 128 128 } -
issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp
r1805 r1838 12 12 #include "../shared/shared.h" 13 13 #include "../MeshPartitionx/MeshPartitionx.h" 14 #include "./ Model.h"15 16 void CreateParameters(DataSet** pparameters, Model* model,ConstDataHandlemodel_handle){14 #include "./IoModel.h" 15 16 void CreateParameters(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){ 17 17 18 18 int i; … … 31 31 count++; 32 32 param= new Param(count,"analysis_type",INTEGER); 33 param->SetInteger( model->analysis_type);33 param->SetInteger(iomodel->analysis_type); 34 34 parameters->AddObject(param); 35 35 36 36 count++; 37 37 param= new Param(count,"sub_analysis_type",INTEGER); 38 param->SetInteger( model->sub_analysis_type);38 param->SetInteger(iomodel->sub_analysis_type); 39 39 parameters->AddObject(param); 40 40 41 41 //dimension 2d or 3d: 42 if (strcmp( model->meshtype,"2d")==0)dim=2;42 if (strcmp(iomodel->meshtype,"2d")==0)dim=2; 43 43 else dim=3; 44 44 … … 51 51 count++; 52 52 param= new Param(count,"ishutter",INTEGER); 53 param->SetInteger( model->ishutter);53 param->SetInteger(iomodel->ishutter); 54 54 parameters->AddObject(param); 55 55 56 56 count++; 57 57 param= new Param(count,"ismacayealpattyn",INTEGER); 58 param->SetInteger( model->ismacayealpattyn);58 param->SetInteger(iomodel->ismacayealpattyn); 59 59 parameters->AddObject(param); 60 60 … … 62 62 count++; 63 63 param= new Param(count,"isstokes",INTEGER); 64 param->SetInteger(model->isstokes); 64 param->SetInteger(iomodel->isstokes); 65 parameters->AddObject(param); 66 67 //control: thermal static 68 count++; 69 param= new Param(count,"thermalstatic",INTEGER); 70 param->SetInteger(iomodel->thermalstatic); 65 71 parameters->AddObject(param); 66 72 67 73 /*debug: */ 68 74 param= new Param(count,"debug",INTEGER); 69 param->SetInteger( model->debug);75 param->SetInteger(iomodel->debug); 70 76 parameters->AddObject(param); 71 77 … … 73 79 count++; 74 80 param= new Param(count,"eps_res",DOUBLE); 75 param->SetDouble( model->eps_res);81 param->SetDouble(iomodel->eps_res); 76 82 parameters->AddObject(param); 77 83 … … 79 85 count++; 80 86 param= new Param(count,"eps_rel",DOUBLE); 81 param->SetDouble( model->eps_rel);87 param->SetDouble(iomodel->eps_rel); 82 88 parameters->AddObject(param); 83 89 … … 85 91 count++; 86 92 param= new Param(count,"eps_abs",DOUBLE); 87 param->SetDouble( model->eps_abs);93 param->SetDouble(iomodel->eps_abs); 88 94 parameters->AddObject(param); 89 95 … … 91 97 count++; 92 98 param= new Param(count,"yts",DOUBLE); 93 param->SetDouble( model->yts);99 param->SetDouble(iomodel->yts); 94 100 parameters->AddObject(param); 95 101 … … 97 103 count++; 98 104 param= new Param(count,"dt",DOUBLE); 99 param->SetDouble( model->dt);105 param->SetDouble(iomodel->dt); 100 106 parameters->AddObject(param); 101 107 … … 103 109 count++; 104 110 param= new Param(count,"ndt",DOUBLE); 105 param->SetDouble( model->ndt);111 param->SetDouble(iomodel->ndt); 106 112 parameters->AddObject(param); 107 113 … … 109 115 count++; 110 116 param= new Param(count,"penalty_offset",DOUBLE); 111 param->SetDouble( model->penalty_offset);117 param->SetDouble(iomodel->penalty_offset); 112 118 parameters->AddObject(param); 113 119 … … 115 121 count++; 116 122 param= new Param(count,"sparsity",DOUBLE); 117 param->SetDouble( model->sparsity);123 param->SetDouble(iomodel->sparsity); 118 124 parameters->AddObject(param); 119 125 … … 121 127 count++; 122 128 param= new Param(count,"lowmem",INTEGER); 123 param->SetInteger( model->lowmem);129 param->SetInteger(iomodel->lowmem); 124 130 parameters->AddObject(param); 125 131 … … 127 133 count++; 128 134 param= new Param(count,"connectivity",INTEGER); 129 param->SetInteger( model->connectivity);135 param->SetInteger(iomodel->connectivity); 130 136 parameters->AddObject(param); 131 137 … … 133 139 count++; 134 140 param= new Param(count,"beta",DOUBLE); 135 param->SetDouble( model->beta);141 param->SetDouble(iomodel->beta); 136 142 parameters->AddObject(param); 137 143 … … 139 145 count++; 140 146 param= new Param(count,"meltingpoint",DOUBLE); 141 param->SetDouble( model->meltingpoint);147 param->SetDouble(iomodel->meltingpoint); 142 148 parameters->AddObject(param); 143 149 … … 145 151 count++; 146 152 param= new Param(count,"latentheat",DOUBLE); 147 param->SetDouble( model->latentheat);153 param->SetDouble(iomodel->latentheat); 148 154 parameters->AddObject(param); 149 155 … … 151 157 count++; 152 158 param= new Param(count,"heatcapacity",DOUBLE); 153 param->SetDouble( model->heatcapacity);159 param->SetDouble(iomodel->heatcapacity); 154 160 parameters->AddObject(param); 155 161 … … 157 163 count++; 158 164 param= new Param(count,"penalty_melting",DOUBLE); 159 param->SetDouble( model->penalty_melting);165 param->SetDouble(iomodel->penalty_melting); 160 166 parameters->AddObject(param); 161 167 … … 163 169 count++; 164 170 param= new Param(count,"min_thermal_constraints",INTEGER); 165 param->SetInteger( model->min_thermal_constraints);171 param->SetInteger(iomodel->min_thermal_constraints); 166 172 parameters->AddObject(param); 167 173 … … 169 175 count++; 170 176 param= new Param(count,"stokesreconditioning",DOUBLE); 171 param->SetDouble( model->stokesreconditioning);177 param->SetDouble(iomodel->stokesreconditioning); 172 178 parameters->AddObject(param); 173 179 … … 175 181 count++; 176 182 param= new Param(count,"waitonlock",INTEGER); 177 param->SetInteger( model->waitonlock);183 param->SetInteger(iomodel->waitonlock); 178 184 parameters->AddObject(param); 179 185 … … 181 187 count++; 182 188 param= new Param(count,"solverstring",STRING); 183 param->SetString( model->solverstring);189 param->SetString(iomodel->solverstring); 184 190 parameters->AddObject(param); 185 191 … … 187 193 count++; 188 194 param= new Param(count,"plot",INTEGER); 189 param->SetInteger( model->plot);195 param->SetInteger(iomodel->plot); 190 196 parameters->AddObject(param); 191 197 … … 193 199 count++; 194 200 param= new Param(count,"numberofnodes",INTEGER); 195 param->SetInteger( model->numberofnodes);201 param->SetInteger(iomodel->numberofnodes); 196 202 parameters->AddObject(param); 197 203 198 204 /*Deal with numberofdofspernode: */ 199 DistributeNumDofs(&numberofdofspernode, model->analysis_type,model->sub_analysis_type);205 DistributeNumDofs(&numberofdofspernode,iomodel->analysis_type,iomodel->sub_analysis_type); 200 206 201 207 count++; 202 208 param= new Param(count,"numberofdofspernode",INTEGER); 203 209 param->SetInteger(numberofdofspernode); 204 parameters->AddObject(param) ;205 210 parameters->AddObject(param) 211 ; 206 212 /*numrifts: */ 207 213 ModelFetchData((void**)&model->riftinfo,&model->numrifts,NULL,model_handle,"riftinfo","Matrix","Mat");
Note:
See TracChangeset
for help on using the changeset viewer.