Changeset 4055 for issm/trunk/src/c/solutions/prognostic_core.cpp
- Timestamp:
- 06/18/10 19:24:59 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/solutions/prognostic_core.cpp
r4043 r4055 11 11 #include "../solvers/solvers.h" 12 12 13 Results* prognostic_core(Model*model){13 void prognostic_core(FemModel* femmodel){ 14 14 15 extern int my_rank; 16 17 /*output: */ 18 Results* results=NULL; 19 Result* result=NULL; 20 21 /*solutions: */ 22 Vec h_g=NULL; 23 24 /*flags: */ 15 /*parameters: */ 25 16 int verbose=0; 26 17 27 /*fem prognostic model: */ 28 FemModel* fem_p=NULL; 29 30 //initialize results 31 results=new Results(); 32 33 /*recover fem model: */ 34 fem_p=model->GetFormulation(PrognosticAnalysisEnum); ISSMASSERT(fem_p); 35 36 //first recover parameters common to all solutions 37 model->FindParam(&verbose,VerboseEnum); 18 /*activate formulation: */ 19 femmodel->SetCurrentAnalysis(PrognosticAnalysisEnum); 20 21 /*recover parameters: */ 22 femmodel->parameters->FindParam(&verbose,VerboseEnum); 38 23 39 24 _printf_("depth averaging velocity...\n"); 40 DepthAverageInputx(fem _p->elements,fem_p->nodes, fem_p->vertices,fem_p->loads, fem_p->materials,fem_p->parameters,VxEnum);41 DepthAverageInputx(fem _p->elements,fem_p->nodes, fem_p->vertices,fem_p->loads, fem_p->materials,fem_p->parameters,VyEnum);25 DepthAverageInputx(femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,VxEnum,VxAverageEnum); 26 DepthAverageInputx(femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,VyEnum,VyAverageEnum); 42 27 43 28 _printf_("call computational core:\n"); 44 diagnostic_core_linear(&h_g,fem_p,PrognosticAnalysisEnum,NoneAnalysisEnum);29 solver_linear(NULL,femmodel); 45 30 46 _printf_(" update inputs:\n");47 UpdateInputsFromSolutionx( fem_p->elements,fem_p->nodes, fem_p->vertices, fem_p->loads, fem_p->materials, fem_p->parameters,h_g,PrognosticAnalysisEnum,NoneAnalysisEnum);31 _printf_("extrude computed thickness on all layers:\n"); 32 ExtrudeInputx(femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,ThicknessEnum); 48 33 49 _printf_("extrude computed thickness on all layers:\n");50 ExtrudeInputx(fem_p->elements,fem_p->nodes, fem_p->vertices,fem_p->loads, fem_p->materials,fem_p->parameters,ThicknessEnum);34 if(verbose)_printf_("saving results:\n"); 35 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ThicknessEnum); 51 36 52 _printf_("extract result from extruded inputs: \n"); 53 InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,ThicknessEnum,results->Size()+1,0,1); results->AddObject(result); 54 results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(PrognosticAnalysisEnum))); 37 } 55 38 56 /*Free ressources:*/57 VecFree(&h_g);58 59 //return:60 return results;61 62 }
Note:
See TracChangeset
for help on using the changeset viewer.