- Timestamp:
- 06/01/10 14:51:09 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp
r3982 r3984 16 16 17 17 18 void CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type ){18 void CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type,int nummodels,int analysis_counter){ 19 19 20 /*First, partition elements and vertices. Nodes will partitioned on a per analysis_type basis: */ 21 VerticesPartitioning(&iomodel->my_elements, &iomodel->my_vertices, &iomodel->my_bordervertices, iomodel, iomodel_handle); 20 bool continuous=true; 21 DataSet* elements=NULL; 22 23 /*Create elements, vertices and materials, independent of analysis_type: */ 24 CreateElementsVerticesAndMaterials(pelements, pvertices, pmaterials, iomodel,iomodel_handle,nummodels); 22 25 23 /*create parameters common to all solutions: */ 26 /*Recover elements, for future update: */ 27 elements=*pelements; 28 29 /*Now, branch onto analysis dependent model generation: */ 30 switch(analysis_type){ 31 case DiagnosticHorizAnalysisEnum: 32 CreateNodesDiagnosticHoriz(pnodes, iomodel,iomodel_handle); 33 CreateConstraintsDiagnosticHoriz(pconstraints,iomodel,iomodel_handle); 34 CreateLoadsDiagnosticHoriz(ploads,iomodel,iomodel_handle); 35 UpdateElementsDiagnosticHoriz(elements,iomodel,iomodel_handle,analysis_counter); 36 break; 37 38 case DiagnosticVertAnalysisEnum: 39 CreateNodesDiagnosticVert(pnodes, iomodel,iomodel_handle); 40 CreateConstraintsDiagnosticVert(pconstraints,iomodel,iomodel_handle); 41 CreateLoadsDiagnosticVert(ploads,iomodel,iomodel_handle); 42 UpdateElementsDiagnosticVert(elements,iomodel,iomodel_handle,analysis_counter); 43 break; 44 45 case DiagnosticStokesAnalysisEnum: 46 CreateNodesDiagnosticStokes(pnodes, iomodel,iomodel_handle); 47 CreateConstraintsDiagnosticStokes(pconstraints,iomodel,iomodel_handle); 48 CreateLoadsDiagnosticStokes(ploads,iomodel,iomodel_handle); 49 UpdateElementsDiagnosticStokes(elements,iomodel,iomodel_handle,analysis_counter); 50 break; 51 52 case DiagnosticHutterAnalysisEnum: 53 CreateNodesDiagnosticHutter(pnodes, iomodel,iomodel_handle); 54 CreateConstraintsDiagnosticHutter(pconstraints,iomodel,iomodel_handle); 55 CreateLoadsDiagnosticHutter(ploads,iomodel,iomodel_handle); 56 UpdateElementsDiagnosticHutter(elements,iomodel,iomodel_handle,analysis_counter); 57 break; 58 59 case SlopecomputeAnalysisEnum: 60 CreateNodesSlopeCompute(pnodes, iomodel,iomodel_handle); 61 CreateConstraintsSlopeCompute(pconstraints,iomodel,iomodel_handle); 62 CreateLoadsSlopeCompute(ploads,iomodel,iomodel_handle); 63 UpdateElementsSlopeCompute(elements,iomodel,iomodel_handle,analysis_counter); 64 break; 65 66 case ThermalAnalysisEnum: 67 CreateNodesThermal(pnodes, iomodel,iomodel_handle); 68 CreateConstraintsThermal(pconstraints,iomodel,iomodel_handle); 69 CreateLoadsThermal(ploads,iomodel,iomodel_handle); 70 UpdateElementsThermal(elements,iomodel,iomodel_handle,analysis_counter); 71 break; 72 73 case MeltingAnalysisEnum: 74 CreateNodesMelting(pnodes, iomodel,iomodel_handle); 75 CreateConstraintsMelting(pconstraints,iomodel,iomodel_handle); 76 CreateLoadsMelting(ploads,iomodel,iomodel_handle); 77 UpdateElementsMelting(elements,iomodel,iomodel_handle,analysis_counter); 78 break; 79 80 case PrognosticAnalysisEnum: 81 CreateNodesPrognostic(pnodes, iomodel,iomodel_handle); 82 CreateConstraintsPrognostic(pconstraints,iomodel,iomodel_handle); 83 CreateLoadsPrognostic(ploads,iomodel,iomodel_handle); 84 UpdateElementsPrognostic(elements,iomodel,iomodel_handle,analysis_counter); 85 break; 86 87 case Prognostic2AnalysisEnum: 88 CreateNodesPrognostic2(pnodes, iomodel,iomodel_handle); 89 CreateConstraintsPrognostic2(pconstraints,iomodel,iomodel_handle); 90 CreateLoadsPrognostic2(ploads,iomodel,iomodel_handle); 91 UpdateElementsPrognostic2(elements,iomodel,iomodel_handle,analysis_counter); 92 break; 93 94 case BalancedthicknessAnalysisEnum: 95 CreateNodesBalancedthickness(pnodes, iomodel,iomodel_handle); 96 CreateConstraintsBalancedthickness(pconstraints,iomodel,iomodel_handle); 97 CreateLoadsBalancedthickness(ploads,iomodel,iomodel_handle); 98 UpdateElementsBalancedthickness(elements,iomodel,iomodel_handle,analysis_counter); 99 break; 100 101 case Balancedthickness2AnalysisEnum: 102 CreateNodesBalancedthickness2(pnodes, iomodel,iomodel_handle); 103 CreateConstraintsBalancedthickness2(pconstraints,iomodel,iomodel_handle); 104 CreateLoadsBalancedthickness2(ploads,iomodel,iomodel_handle); 105 UpdateElementsBalancedthickness2(elements,iomodel,iomodel_handle,analysis_counter); 106 break; 107 case BalancedvelocitiesAnalysisEnum: 108 CreateNodesBalancedvelocities(pnodes, iomodel,iomodel_handle); 109 CreateConstraintsBalancedvelocities(pconstraints,iomodel,iomodel_handle); 110 CreateLoadsBalancedvelocities(ploads,iomodel,iomodel_handle); 111 UpdateElementsBalancedvelocities(elements,iomodel,iomodel_handle,analysis_counter); 112 break; 113 default: 114 ISSMERROR("%s%s%s"," analysis_type: ",EnumAsString(analysis_type)," not supported yet!"); 115 } 116 117 /*Generate objects that are not dependent on any analysis_type: */ 24 118 CreateParameters(pparameters,iomodel,iomodel_handle); 25 26 119 CreateParametersControl(pparameters,iomodel,iomodel_handle); 27 28 /*This is just a high level driver: */29 if (analysis_type==DiagnosticHorizAnalysisEnum){30 CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes, pvertices, pmaterials, iomodel,iomodel_handle);31 CreateConstraintsDiagnosticHoriz(pconstraints,iomodel,iomodel_handle);32 CreateLoadsDiagnosticHoriz(ploads,iomodel,iomodel_handle);33 }34 else if (analysis_type==DiagnosticVertAnalysisEnum){35 36 CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes, pvertices, pmaterials, iomodel,iomodel_handle);37 CreateConstraintsDiagnosticVert(pconstraints,iomodel,iomodel_handle);38 CreateLoadsDiagnosticVert(ploads,iomodel,iomodel_handle);39 }40 else if (analysis_type==DiagnosticStokesAnalysisEnum){41 42 CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes, pvertices, pmaterials, iomodel,iomodel_handle);43 CreateConstraintsDiagnosticStokes(pconstraints,iomodel,iomodel_handle);44 CreateLoadsDiagnosticStokes(ploads,iomodel,iomodel_handle);45 }46 else if (analysis_type==DiagnosticHutterAnalysisEnum){47 48 CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);49 CreateConstraintsDiagnosticHutter(pconstraints,iomodel,iomodel_handle);50 CreateLoadsDiagnosticHutter(ploads,iomodel,iomodel_handle);51 }52 else if (analysis_type==SlopecomputeAnalysisEnum){53 54 CreateElementsNodesAndMaterialsSlopeCompute(pelements,pnodes, pvertices,pmaterials, iomodel,iomodel_handle);55 CreateConstraintsSlopeCompute(pconstraints,iomodel,iomodel_handle);56 CreateLoadsSlopeCompute(ploads,iomodel,iomodel_handle);57 }58 else if (analysis_type==ThermalAnalysisEnum){59 60 CreateElementsNodesAndMaterialsThermal(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);61 CreateConstraintsThermal(pconstraints,iomodel,iomodel_handle);62 CreateLoadsThermal(ploads,iomodel,iomodel_handle);63 64 }65 else if (analysis_type==MeltingAnalysisEnum){66 67 CreateElementsNodesAndMaterialsMelting(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);68 CreateConstraintsMelting(pconstraints,iomodel,iomodel_handle);69 CreateLoadsMelting(ploads,iomodel,iomodel_handle);70 }71 else if (analysis_type==PrognosticAnalysisEnum){72 73 CreateElementsNodesAndMaterialsPrognostic(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);74 CreateConstraintsPrognostic(pconstraints,iomodel,iomodel_handle);75 CreateLoadsPrognostic(ploads,iomodel,iomodel_handle);76 }77 else if (analysis_type==Prognostic2AnalysisEnum){78 79 CreateElementsNodesAndMaterialsPrognostic2(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);80 CreateConstraintsPrognostic2(pconstraints,iomodel,iomodel_handle);81 CreateLoadsPrognostic2(ploads,iomodel,iomodel_handle);82 }83 else if (analysis_type==BalancedthicknessAnalysisEnum){84 85 CreateElementsNodesAndMaterialsBalancedthickness(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);86 CreateConstraintsBalancedthickness(pconstraints,iomodel,iomodel_handle);87 CreateLoadsBalancedthickness(ploads,iomodel,iomodel_handle);88 }89 else if (analysis_type==Balancedthickness2AnalysisEnum){90 91 CreateElementsNodesAndMaterialsBalancedthickness2(pelements,pnodes,pvertices, pmaterials, iomodel,iomodel_handle);92 CreateConstraintsBalancedthickness2(pconstraints,iomodel,iomodel_handle);93 CreateLoadsBalancedthickness2(ploads,iomodel,iomodel_handle);94 }95 else if (analysis_type==BalancedvelocitiesAnalysisEnum){96 97 CreateElementsNodesAndMaterialsBalancedvelocities(pelements,pnodes,pvertices,pmaterials, iomodel,iomodel_handle);98 CreateConstraintsBalancedvelocities(pconstraints,iomodel,iomodel_handle);99 CreateLoadsBalancedvelocities(ploads,iomodel,iomodel_handle);100 }101 else{102 ISSMERROR("%s%i%s%i%s"," analysis_type: ",analysis_type," analysis_type: ",analysis_type," not supported yet!");103 104 }105 120 CreateParametersQmu(pparameters,iomodel,iomodel_handle); 106 107 121 }
Note:
See TracChangeset
for help on using the changeset viewer.