Changeset 300
- Timestamp:
- 05/07/09 12:05:55 (16 years ago)
- Location:
- issm/trunk/src/c/ModelProcessorx
- Files:
-
- 17 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ModelProcessorx/CreateConstraints.cpp
r128 r300 23 23 else if (strcmp(model->analysis_type,"diagnostic_vert")==0){ 24 24 CreateConstraintsDiagnosticVert(pconstraints,model,model_handle); 25 }/* 25 } 26 else if (strcmp(model->analysis_type,"diagnostic_stokes")==0){ 27 CreateConstraintsDiagnosticStokes(pconstraints,model,model_handle); 28 } 29 else if (strcmp(model->analysis_type,"diagnostic_hutter")==0){ 30 CreateConstraintsDiagnosticHutter(pconstraints,model,model_handle); 31 } 32 else if (strcmp(model->analysis_type,"surface_slope_compute")==0){ 33 CreateConstraintsSurfaceSlopeCompute(pconstraints,model,model_handle); 34 } 35 else if (strcmp(model->analysis_type,"bed_slope_compute")==0){ 36 CreateConstraintsBedSlopeCompute(pconstraints,model,model_handle); 37 } 38 /* 26 39 else if (strcmp(model->analysis_type,"melting")==0){ 27 40 CreateConstraintsMelting(pconstraints,model,model_handle); -
issm/trunk/src/c/ModelProcessorx/CreateElementsNodesAndMaterials.cpp
r128 r300 29 29 30 30 } 31 else if ((strcmp(model->analysis_type,"diagnostic_stokes")==0)){ 32 33 CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, model,model_handle); 34 35 } 36 else if ((strcmp(model->analysis_type,"diagnostic_hutter")==0)){ 37 38 CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, model,model_handle); 39 40 } 41 else if ((strcmp(model->analysis_type,"surface_slope_compute")==0)){ 42 43 CreateElementsNodesAndMaterialsSurfaceSlopeCompute(pelements,pnodes,pmaterials, model,model_handle); 44 45 } 46 else if ((strcmp(model->analysis_type,"bed_slope_compute")==0)){ 47 48 CreateElementsNodesAndMaterialsBedSlopeCompute(pelements,pnodes,pmaterials, model,model_handle); 49 50 } 31 51 /* 32 52 else if (strcmp(model->analysis_type,"melting")==0){ -
issm/trunk/src/c/ModelProcessorx/CreateLoads.cpp
r128 r300 25 25 26 26 CreateLoadsDiagnosticVert(ploads,model,model_handle); 27 }/* 27 } 28 else if (strcmp(model->analysis_type,"diagnostic_stokes")==0){ 29 30 CreateLoadsDiagnosticStokes(ploads,model,model_handle); 31 } 32 else if (strcmp(model->analysis_type,"diagnostic_hutter")==0){ 33 34 CreateLoadsDiagnosticHutter(ploads,model,model_handle); 35 } 36 else if (strcmp(model->analysis_type,"surface_slope_compute")==0){ 37 38 CreateLoadsSurfaceSlopeCompute(ploads,model,model_handle); 39 } 40 else if (strcmp(model->analysis_type,"bed_slope_compute")==0){ 41 42 CreateLoadsBedSlopeCompute(ploads,model,model_handle); 43 } 44 /* 28 45 else if (strcmp(model->analysis_type,"melting")==0){ 29 46 -
issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp
r209 r300 22 22 int analysis_type; 23 23 int numberofdofspernode; 24 25 double* fit=NULL; 26 double* optscal=NULL; 27 double* maxiter=NULL; 28 double* control_parameter=NULL; 29 double* vx=NULL; 30 double* vy=NULL; 31 double* vz=NULL; 32 24 int dim; 25 33 26 /*Initialize dataset: */ 34 27 parameters = new DataSet(ParametersEnum()); … … 42 35 parameters->AddObject(param); 43 36 44 37 //dimension 2d or 3d: 38 if (strcmp(model->meshtype,"2d")==0)dim=2; 39 else dim=3; 40 41 count++; 42 param= new Param(count,"dim",INTEGER); 43 param->SetInteger(dim); 44 parameters->AddObject(param); 45 46 //elements types 47 count++; 48 param= new Param(count,"ishutter",INTEGER); 49 param->SetInteger(model->ishutter); 50 parameters->AddObject(param); 51 52 count++; 53 param= new Param(count,"ismacayealpattyn",INTEGER); 54 param->SetInteger(model->ismacayealpattyn); 55 parameters->AddObject(param); 56 57 58 count++; 59 param= new Param(count,"isstokes",INTEGER); 60 param->SetInteger(model->isstokes); 61 parameters->AddObject(param); 62 45 63 /*debug: */ 46 64 param= new Param(count,"debug",INTEGER); … … 174 192 CreateParametersControl(parameters,model,model_handle,&count); 175 193 } 176 177 /*Diagnostic: */ 178 /*Get vx and vy: */ 179 ModelFetchData((void**)&vx,NULL,NULL,model_handle,"vx","Matrix","Mat"); 180 ModelFetchData((void**)&vy,NULL,NULL,model_handle,"vy","Matrix","Mat"); 181 ModelFetchData((void**)&vz,NULL,NULL,model_handle,"vz","Matrix","Mat"); 182 183 if(vx) for(i=0;i<model->numberofnodes;i++)vx[i]=vx[i]/model->yts; 184 if(vy) for(i=0;i<model->numberofnodes;i++)vy[i]=vy[i]/model->yts; 185 if(vz) for(i=0;i<model->numberofnodes;i++)vz[i]=vz[i]/model->yts; 186 187 count++; 188 param= new Param(count,"vx",DOUBLEVEC); 189 if(vx) param->SetDoubleVec(vx,model->numberofnodes); 190 else param->SetDoubleVec(vx,0); 191 parameters->AddObject(param); 192 193 count++; 194 param= new Param(count,"vy",DOUBLEVEC); 195 if(vy) param->SetDoubleVec(vy,model->numberofnodes); 196 else param->SetDoubleVec(vy,0); 197 parameters->AddObject(param); 198 199 count++; 200 param= new Param(count,"vz",DOUBLEVEC); 201 if(vz) param->SetDoubleVec(vz,model->numberofnodes); 202 else param->SetDoubleVec(vz,0); 203 parameters->AddObject(param); 204 205 xfree((void**)&vx); 206 xfree((void**)&vy); 207 xfree((void**)&vz); 208 194 if (analysis_type==DiagnosticHorizAnalysisEnum()){ 195 CreateParametersDiagnosticHoriz(parameters,model,model_handle,&count); 196 } 197 198 209 199 /*All our datasets are already ordered by ids. Set presort flag so that later on, when sorting is requested on these 210 200 * datasets, it will not be redone: */ -
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r117 r300 34 34 /*Create constraints: */ 35 35 constraints = new DataSet(ConstraintsEnum()); 36 37 /*Now, is the flag macayaealpattyn on? otherwise, do nothing: */ 38 if (!model->ismacayealpattyn)goto cleanup_and_return; 36 39 37 40 /*Fetch data: */ … … 80 83 constraints->Presort(); 81 84 85 86 cleanup_and_return: 82 87 /*Free data: */ 83 88 xfree((void**)&gridondirichlet_diag); 84 89 xfree((void**)&dirichletvalues_diag); 85 90 86 91 /*Assign output pointer: */ 87 92 *pconstraints=constraints; -
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
r239 r300 150 150 int grid_id; 151 151 152 /*Get analysis_type: */153 analysis_type=AnalysisTypeAsEnum(model->analysis_type);154 152 155 153 /*First create the elements, nodes and material properties: */ … … 157 155 nodes = new DataSet(NodesEnum()); 158 156 materials = new DataSet(MaterialsEnum()); 157 158 /*Now, is the flag macayaealpattyn on? otherwise, do nothing: */ 159 if (!model->ismacayealpattyn)goto cleanup_and_return; 160 161 /*Get analysis_type: */ 162 analysis_type=AnalysisTypeAsEnum(model->analysis_type); 159 163 160 164 /*Width of elements: */ -
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r211 r300 71 71 /*Create loads: */ 72 72 loads = new DataSet(LoadsEnum()); 73 74 /*Now, is the flag macayaealpattyn on? otherwise, do nothing: */ 75 if (!model->ismacayealpattyn)goto cleanup_and_return; 73 76 74 77 /*Create pressure loads as boundary conditions. Pay attention to the partitioning if we are running in parallel (the grids … … 262 265 loads->Presort(); 263 266 267 cleanup_and_return: 268 264 269 /*Free ressources:*/ 265 270 xfree((void**)&riftsnumpenaltypairs); -
issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
r128 r300 22 22 constraints = new DataSet(ConstraintsEnum()); 23 23 24 /*Now, is the model running in 3d? : */ 25 if (strcmp(model->meshtype,"2d")==0)goto cleanup_and_return; 26 27 cleanup_and_return: 28 24 29 /*Assign output pointer: */ 25 30 *pconstraints=constraints; -
issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp
r128 r300 131 131 132 132 133 /*Get analysis_type: */134 analysis_type=AnalysisTypeAsEnum(model->analysis_type);135 133 136 134 /*First create the elements, nodes and material properties: */ … … 138 136 nodes = new DataSet(NodesEnum()); 139 137 materials = new DataSet(MaterialsEnum()); 138 139 /*Now, is the model running in 3d? : */ 140 if (strcmp(model->meshtype,"2d")==0)goto cleanup_and_return; 141 142 /*Get analysis_type: */ 143 analysis_type=AnalysisTypeAsEnum(model->analysis_type); 140 144 141 145 /*Width of elements: */ -
issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp
r128 r300 20 20 /*Create loads: */ 21 21 loads = new DataSet(LoadsEnum()); 22 23 /*Now, is the model running in 3d? : */ 24 if (strcmp(model->meshtype,"2d")==0)goto cleanup_and_return; 25 26 cleanup_and_return: 22 27 23 28 /*Assign output pointer: */ -
issm/trunk/src/c/ModelProcessorx/Model.cpp
r117 r300 150 150 model->melting=NULL; 151 151 model->accumulation=NULL; 152 153 /*elements type: */ 154 model->ishutter=0; 155 model->ismacayealpattyn=0; 156 model->isstokes=0; 152 157 153 158 return model; … … 283 288 ModelFetchData((void**)&model->numlayers,NULL,NULL,model_handle,"numlayers","Integer",NULL); 284 289 } 285 290 291 /*elements type: */ 292 ModelFetchData((void**)&model->ishutter,NULL,NULL,model_handle,"ishutter","Integer",NULL); 293 ModelFetchData((void**)&model->ismacayealpattyn,NULL,NULL,model_handle,"ismacayealpattyn","Integer",NULL); 294 ModelFetchData((void**)&model->isstokes,NULL,NULL,model_handle,"isstokes","Integer",NULL); 295 286 296 /*!Get drag_type, drag and p,q: */ 287 297 ModelFetchData((void**)&model->drag_type,NULL,NULL,model_handle,"drag_type","Integer",NULL); -
issm/trunk/src/c/ModelProcessorx/Model.h
r128 r300 35 35 double* uppernodes; 36 36 37 /*elements type: */ 38 int ishutter; 39 int ismacayealpattyn; 40 int isstokes; 37 41 38 42 /*results: */ … … 174 178 void CreateConstraintsDiagnosticHoriz(DataSet** pconstraints,Model* model,ConstDataHandle model_handle); 175 179 void CreateLoadsDiagnosticHoriz(DataSet** ploads, Model* model, ConstDataHandle model_handle); 180 void CreateParametersDiagnosticHoriz(DataSet* parameters,Model* model,ConstDataHandle model_handle,int* pcount); 176 181 177 182 /*diagnostic vertical*/ … … 179 184 void CreateConstraintsDiagnosticVert(DataSet** pconstraints,Model* model,ConstDataHandle model_handle); 180 185 void CreateLoadsDiagnosticVert(DataSet** ploads, Model* model, ConstDataHandle model_handle); 181 186 void CreateParametersDiagnosticVert(DataSet* parameters,Model* model,ConstDataHandle model_handle,int* pcount); 187 188 /*diagnostic hutter*/ 189 void CreateElementsNodesAndMaterialsDiagnosticHutter(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, Model* model,ConstDataHandle model_handle); 190 void CreateConstraintsDiagnosticHutter(DataSet** pconstraints,Model* model,ConstDataHandle model_handle); 191 void CreateLoadsDiagnosticHutter(DataSet** ploads, Model* model, ConstDataHandle model_handle); 192 void CreateParametersDiagnosticHutter(DataSet* parameters,Model* model,ConstDataHandle model_handle,int* pcount); 193 194 /*diagnostic stokes*/ 195 void CreateElementsNodesAndMaterialsDiagnosticStokes(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, Model* model,ConstDataHandle model_handle); 196 void CreateConstraintsDiagnosticStokes(DataSet** pconstraints,Model* model,ConstDataHandle model_handle); 197 void CreateLoadsDiagnosticStokes(DataSet** ploads, Model* model, ConstDataHandle model_handle); 198 void CreateParametersDiagnosticStokes(DataSet* parameters,Model* model,ConstDataHandle model_handle,int* pcount); 199 200 /*surface slope compute*/ 201 void CreateElementsNodesAndMaterialsSurfaceSlopeCompute(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, Model* model,ConstDataHandle model_handle); 202 void CreateConstraintsSurfaceSlopeCompute(DataSet** pconstraints,Model* model,ConstDataHandle model_handle); 203 void CreateLoadsSurfaceSlopeCompute(DataSet** ploads, Model* model, ConstDataHandle model_handle); 204 void CreateParametersSurfaceSlopeCompute(DataSet* parameters,Model* model,ConstDataHandle model_handle,int* pcount); 205 206 /*bed slope compute*/ 207 void CreateElementsNodesAndMaterialsBedSlopeCompute(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, Model* model,ConstDataHandle model_handle); 208 void CreateConstraintsBedSlopeCompute(DataSet** pconstraints,Model* model,ConstDataHandle model_handle); 209 void CreateLoadsBedSlopeCompute(DataSet** ploads, Model* model, ConstDataHandle model_handle); 210 void CreateParametersBedSlopeCompute(DataSet* parameters,Model* model,ConstDataHandle model_handle,int* pcount); 211 182 212 /*control:*/ 183 213 void CreateParametersControl(DataSet* parameters,Model* model,ConstDataHandle model_handle,int* pcount);
Note:
See TracChangeset
for help on using the changeset viewer.