Changeset 4055 for issm/trunk/src/c/solutions/balancedvelocities_core.cpp
- Timestamp:
- 06/18/10 19:24:59 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/solutions/balancedvelocities_core.cpp
r4043 r4055 11 11 #include "../solvers/solvers.h" 12 12 13 Results* balancedvelocities_core(Model* model){ 14 15 extern int my_rank; 16 17 /*output: */ 18 Results* results=NULL; 19 Result* result=NULL; 20 21 /*intermediary: */ 22 Vec u_g=NULL; 23 24 /*solutions: */ 25 Vec v_g=NULL; 13 void balancedvelocities_core(FemModel* femmodel){ 26 14 27 15 /*flags: */ 28 16 int verbose=0; 29 int numberofdofspernode; 30 int numberofnodes; 31 int dofs[2]={1,1}; 17 int dim; 32 18 33 /*fem balancedvelocities model: */ 34 FemModel* fem_p=NULL; 35 36 //initialize results: 37 results=new Results(); 38 39 /*recover fem model: */ 40 fem_p=model->GetFormulation(BalancedvelocitiesAnalysisEnum); 41 42 //first recover parameters common to all solutions 43 model->FindParam(&verbose,VerboseEnum); 44 model->FindParam(&numberofnodes,NumberOfNodesEnum); 45 model->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum); 19 /*activate formulation: */ 20 femmodel->SetCurrentAnalysis(BalancedvelocitiesAnalysisEnum); 21 22 /*recover parameters: */ 23 femmodel->parameters->FindParam(&verbose,VerboseEnum); 24 femmodel->parameters->FindParam(&dim,DimEnum); 46 25 47 26 _printf_("depth averaging velocity...\n"); 48 //u_g=inputs->Get("velocity",&dofs[0],2); //take (vx,vy) from inputs velocity 49 //FieldDepthAveragex( u_g, fem_p->elements,fem_p->nodes, fem_p->vertices,fem_p->loads, fem_p->materials,fem_p->parameters,"velocity"); 50 //inputs->Add("velocity_average",u_g,2,numberofnodes); 51 ISSMERROR(" not supported yet!"); 52 27 DepthAverageInputx(femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,VxEnum); 28 DepthAverageInputx(femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,VyEnum); 29 if(dim==3) DepthAverageInputx(femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,VzEnum); 30 53 31 _printf_("call computational core:\n"); 54 diagnostic_core_linear(&v_g,fem_p,BalancedvelocitiesAnalysisEnum,NoneAnalysisEnum);32 solver_linear(NULL,femmodel); 55 33 56 _printf_("extrude computed thickness on all layers:\n"); 57 FieldExtrudex( v_g, fem_p->elements,fem_p->nodes, fem_p->vertices,fem_p->loads, fem_p->materials,fem_p->parameters,"thickness",0); 34 _printf_("extrude computed velocity on all layers:\n"); 35 ExtrudeInputx(femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,VxEnum); 36 ExtrudeInputx(femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,VyEnum); 58 37 59 /*Plug results into output dataset: */ 60 InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,VxEnum,results->Size()+1,0,1); results->AddObject(result); 61 InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,VyEnum,results->Size()+1,0,1); results->AddObject(result); 62 results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(BalancedvelocitiesAnalysisEnum))); 38 if(verbose)_printf_("saving results:\n"); 39 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum); 40 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum); 63 41 64 /*Free ressources:*/65 VecFree(&u_g);66 VecFree(&v_g);67 68 /*return: */69 return results;70 42 }
Note:
See TracChangeset
for help on using the changeset viewer.