Changeset 16550
- Timestamp:
- 10/25/13 15:31:24 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r16544 r16550 246 246 ./modules/ModelProcessorx/EdgesPartitioning.cpp\ 247 247 ./modules/ModelProcessorx/FacesPartitioning.cpp\ 248 ./modules/ModelProcessorx/CreateDataSets.cpp\249 248 ./modules/ModelProcessorx/CreateParameters.cpp\ 250 249 ./modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp\ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
r16544 r16550 13 13 #include "./ModelProcessorx.h" 14 14 15 void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, FILE* IOMODEL,FILE* toolkitfile, char* rootpath,const int solution_enum,const int nummodels,const int* analysis_ type_list){15 void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, FILE* IOMODEL,FILE* toolkitfile, char* rootpath,const int solution_enum,const int nummodels,const int* analysis_enum_list){ 16 16 17 int i,analysis_ type,verbose;17 int i,analysis_enum,verbose; 18 18 bool isthermal,ismasstransport,isstressbalance,isgroundingline,isenthalpy; 19 19 … … 53 53 for(i=0;i<nummodels;i++){ 54 54 55 analysis_ type=analysis_type_list[i];55 analysis_enum=analysis_enum_list[i]; 56 56 parameters->AddObject(new IntParam(AnalysisCounterEnum,i)); 57 57 58 58 /*Hack for trasient runs (FIXME: to be improved)*/ 59 if(solution_enum==TransientSolutionEnum && analysis_ type==ThermalAnalysisEnum && iomodel->meshtype==Mesh2DhorizontalEnum) continue;60 if(solution_enum==TransientSolutionEnum && analysis_ type==MeltingAnalysisEnum && iomodel->meshtype==Mesh2DhorizontalEnum) continue;61 if(solution_enum==TransientSolutionEnum && analysis_ type==EnthalpyAnalysisEnum && iomodel->meshtype==Mesh2DhorizontalEnum) continue;62 if(solution_enum==TransientSolutionEnum && analysis_ type==ThermalAnalysisEnum && isthermal==false) continue;63 if(solution_enum==TransientSolutionEnum && analysis_ type==MeltingAnalysisEnum && isthermal==false) continue;64 if(solution_enum==TransientSolutionEnum && analysis_ type==EnthalpyAnalysisEnum && isthermal==false) continue;65 if(solution_enum==TransientSolutionEnum && analysis_ type==ThermalAnalysisEnum && isenthalpy==true) continue;66 if(solution_enum==TransientSolutionEnum && analysis_ type==MeltingAnalysisEnum && isenthalpy==true) continue;67 if(solution_enum==TransientSolutionEnum && analysis_ type==EnthalpyAnalysisEnum && isenthalpy==false) continue;68 if(solution_enum==TransientSolutionEnum && analysis_ type==MasstransportAnalysisEnum && ismasstransport==false && isgroundingline==false) continue;69 if(solution_enum==TransientSolutionEnum && analysis_ type==StressbalanceAnalysisEnum && isstressbalance==false) continue;70 if(solution_enum==TransientSolutionEnum && analysis_ type==StressbalanceVerticalAnalysisEnum && isstressbalance==false) continue;71 if(solution_enum==TransientSolutionEnum && analysis_ type==StressbalanceSIAAnalysisEnum && isstressbalance==false) continue;72 if(solution_enum==SteadystateSolutionEnum && analysis_ type==ThermalAnalysisEnum && isenthalpy==true) continue;73 if(solution_enum==SteadystateSolutionEnum && analysis_ type==MeltingAnalysisEnum && isenthalpy==true) continue;74 if(solution_enum==SteadystateSolutionEnum && analysis_ type==EnthalpyAnalysisEnum && isenthalpy==false) continue;59 if(solution_enum==TransientSolutionEnum && analysis_enum==ThermalAnalysisEnum && iomodel->meshtype==Mesh2DhorizontalEnum) continue; 60 if(solution_enum==TransientSolutionEnum && analysis_enum==MeltingAnalysisEnum && iomodel->meshtype==Mesh2DhorizontalEnum) continue; 61 if(solution_enum==TransientSolutionEnum && analysis_enum==EnthalpyAnalysisEnum && iomodel->meshtype==Mesh2DhorizontalEnum) continue; 62 if(solution_enum==TransientSolutionEnum && analysis_enum==ThermalAnalysisEnum && isthermal==false) continue; 63 if(solution_enum==TransientSolutionEnum && analysis_enum==MeltingAnalysisEnum && isthermal==false) continue; 64 if(solution_enum==TransientSolutionEnum && analysis_enum==EnthalpyAnalysisEnum && isthermal==false) continue; 65 if(solution_enum==TransientSolutionEnum && analysis_enum==ThermalAnalysisEnum && isenthalpy==true) continue; 66 if(solution_enum==TransientSolutionEnum && analysis_enum==MeltingAnalysisEnum && isenthalpy==true) continue; 67 if(solution_enum==TransientSolutionEnum && analysis_enum==EnthalpyAnalysisEnum && isenthalpy==false) continue; 68 if(solution_enum==TransientSolutionEnum && analysis_enum==MasstransportAnalysisEnum && ismasstransport==false && isgroundingline==false) continue; 69 if(solution_enum==TransientSolutionEnum && analysis_enum==StressbalanceAnalysisEnum && isstressbalance==false) continue; 70 if(solution_enum==TransientSolutionEnum && analysis_enum==StressbalanceVerticalAnalysisEnum && isstressbalance==false) continue; 71 if(solution_enum==TransientSolutionEnum && analysis_enum==StressbalanceSIAAnalysisEnum && isstressbalance==false) continue; 72 if(solution_enum==SteadystateSolutionEnum && analysis_enum==ThermalAnalysisEnum && isenthalpy==true) continue; 73 if(solution_enum==SteadystateSolutionEnum && analysis_enum==MeltingAnalysisEnum && isenthalpy==true) continue; 74 if(solution_enum==SteadystateSolutionEnum && analysis_enum==EnthalpyAnalysisEnum && isenthalpy==false) continue; 75 75 76 if(VerboseMProcessor()) _printf0_(" creating datasets for analysis " << EnumToStringx(analysis_type) << "\n"); 77 CreateDataSets(elements,nodes,vertices,materials,constraints,loads,parameters,iomodel,toolkitfile,rootpath,solution_enum,analysis_type,nummodels,i); 76 if(VerboseMProcessor()) _printf0_(" creating datasets for analysis " << EnumToStringx(analysis_enum) << "\n"); 77 Analysis* analysis = EnumToAnalysis(analysis_enum); 78 analysis->UpdateParameters(parameters,iomodel,solution_enum,analysis_enum); 79 analysis->CreateNodes(nodes,iomodel); 80 analysis->CreateConstraints(constraints,iomodel); 81 analysis->CreateLoads(loads,iomodel); 82 analysis->UpdateElements(elements,iomodel,i,analysis_enum); 83 delete analysis; 84 85 86 /* Update counters, because we have created more nodes, loads and 87 * constraints, and ids for objects created in next call to CreateDataSets 88 * will need to start at the end of the updated counters: */ 89 iomodel->nodecounter = nodes->MaximumId(); 90 iomodel->loadcounter = loads->NumberOfLoads(); 91 iomodel->constraintcounter = constraints->NumberOfConstraints(); 78 92 } 93 94 /*Solution specific updates*/ 95 #ifdef _HAVE_CONTROL_ 96 UpdateElementsAndMaterialsControl(elements,materials,iomodel); 97 #endif 98 #ifdef _HAVE_DAKOTA_ 99 UpdateElementsAndMaterialsDakota(elements,materials,iomodel); 100 #endif 101 #ifdef _HAVE_TRANSIENT_ 102 if(solution_enum==TransientSolutionEnum){ 103 UpdateElementsTransient(elements,parameters,iomodel,analysis_enum); 104 } 105 #endif 79 106 80 107 /* Sort datasets: -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.h
r16544 r16550 12 12 13 13 /*Creation of fem datasets: general drivers*/ 14 void CreateDataSets(Elements* elements,Nodes* nodes,Vertices* vertices, Materials* materials, Constraints* constraints, Loads* loads,Parameters* parameters,IoModel* iomodel,FILE* toolkitfile,char* rootpath,const int solution_type,int analysis_type,const int nummodels,int analysis_counter);15 14 void CreateElementsVerticesAndMaterials(Elements* elements,Vertices* vertices,Materials* materials, IoModel* iomodel,const int nummodels); 16 15 void CreateParameters(Parameters*parameters,IoModel* iomodel,char* rootpath,FILE* toolkitfile,const int solution_type); … … 21 20 void UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel); 22 21 void UpdateElementsAndMaterialsDakota(Elements* elements,Materials* materials, IoModel* iomodel); 23 void UpdateElementsTransient(Elements* elements,Parameters* parameters,IoModel* iomodel,int analysis_ counter,int analysis_type);22 void UpdateElementsTransient(Elements* elements,Parameters* parameters,IoModel* iomodel,int analysis_type); 24 23 void CreateNodes(Nodes*nodes, IoModel* iomodel,int analysis,int finite_element,int approximation=NoneApproximationEnum); 25 24 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Transient/UpdateElementsTransient.cpp
r16211 r16550 9 9 #include "../ModelProcessorx.h" 10 10 11 void UpdateElementsTransient(Elements* elements, Parameters* parameters,IoModel* iomodel,int analysis_ counter,int analysis_type){11 void UpdateElementsTransient(Elements* elements, Parameters* parameters,IoModel* iomodel,int analysis_type){ 12 12 13 13 bool isgroundingline;
Note:
See TracChangeset
for help on using the changeset viewer.