Changeset 4592
- Timestamp:
- 07/14/10 11:37:14 (15 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/Gradjx/Gradjx.cpp
r4573 r4592 12 12 void Gradjx( Vec* pgradient, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,int control_type){ 13 13 14 int i; 15 int dim; 16 int numberofvertices; 17 Vec gradient=NULL; 14 int i; 15 int dim; 16 int numberofvertices; 17 bool extrude; 18 Vec gradient = NULL; 18 19 19 20 /*retrieve some parameters: */ 20 21 parameters->FindParam(&dim,DimEnum); 22 parameters->FindParam(&extrude,ExtrudeParamEnum); 21 23 numberofvertices=vertices->NumberOfVertices(); 22 24 … … 35 37 36 38 /*Extrude if needed: */ 37 if(dim==3 ) VecExtrudex(gradient, elements,nodes, vertices, loads, materials, parameters,0);39 if(dim==3 && extrude) VecExtrudex(gradient, elements,nodes, vertices, loads, materials, parameters,0); 38 40 39 41 /*Assign output pointers: */ -
issm/trunk/src/c/modules/InputExtrudex/InputExtrudex.cpp
r4573 r4592 9 9 #include "../../EnumDefinitions/EnumDefinitions.h" 10 10 11 void InputExtrudex( Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,int enum_type ){11 void InputExtrudex( Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,int enum_type,bool only_if_collapsed){ 12 12 13 13 int i; … … 18 18 if (element->Enum()==PentaEnum){ 19 19 Penta* penta=(Penta*)element; 20 penta->InputExtrude(enum_type );20 penta->InputExtrude(enum_type,only_if_collapsed); 21 21 } 22 22 } -
issm/trunk/src/c/modules/InputExtrudex/InputExtrudex.h
r4236 r4592 9 9 10 10 /* local prototypes: */ 11 void InputExtrudex( Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,int enum_type );11 void InputExtrudex( Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,int enum_type,bool only_if_collapsed=false); 12 12 13 13 #endif /* _INPUTEXTRUDEX_H */ -
issm/trunk/src/c/objects/Elements/Penta.cpp
r4578 r4592 4767 4767 /*}}}*/ 4768 4768 /*FUNCTION Penta::InputExtrude {{{1*/ 4769 void Penta::InputExtrude(int enum_type){ 4770 4771 bool onbed; 4772 bool onsurface; 4773 4774 Penta* penta=NULL; 4775 Input* original_input=NULL; 4769 void Penta::InputExtrude(int enum_type,bool only_if_collapsed){ 4770 4771 bool onbed,onsurface,collapse; 4772 Penta *penta = NULL; 4773 Input *original_input = NULL; 4776 4774 4777 4775 /*recover parameters: */ 4776 inputs->GetParameterValue(&collapse,CollapseEnum); 4778 4777 inputs->GetParameterValue(&onbed,ElementOnBedEnum); 4779 4778 inputs->GetParameterValue(&onsurface,ElementOnSurfaceEnum); 4779 4780 /*First: if only_if_collapsed, check wether this penta is collapsed*/ 4781 if (only_if_collapsed && !collapse) return; 4780 4782 4781 4783 /*Are we on the base, not on the surface?:*/ -
issm/trunk/src/c/objects/Elements/Penta.h
r4575 r4592 168 168 void GetStrainRateStokes(double* epsilon, double* velocity, double* xyz_list, double* gauss_coord); 169 169 Penta* GetUpperElement(void); 170 void InputExtrude(int enum_type );170 void InputExtrude(int enum_type,bool only_if_collapsed); 171 171 void InputUpdateFromSolutionAdjointHoriz( double* solutiong); 172 172 void InputUpdateFromSolutionAdjointStokes( double* solutiong); -
issm/trunk/src/c/solvers/solver_diagnostic_nonlinear.cpp
r4557 r4592 131 131 /*extrude if we are in 3D: */ 132 132 if (dim==3){ 133 if(verbose)_printf_("%s\n","extruding velocity and pressure in 3d...");134 InputExtrudex( femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum );135 InputExtrudex( femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum );133 if(verbose)_printf_("%s\n","extruding velocity of collapsed elements..."); 134 InputExtrudex( femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum,true); //true means that the velocity is only extruded if collapsed 135 InputExtrudex( femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum,true); 136 136 } 137 137 -
issm/trunk/src/m/solvers/solver_diagnostic_nonlinear.m
r4558 r4592 85 85 if dim==3, 86 86 displaystring(femmodel.parameters.Verbose,'%s',' extruding horizontal velocity in 3d...'); 87 femmodel.elements=InputExtrude( femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum );88 femmodel.elements=InputExtrude( femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum );87 femmodel.elements=InputExtrude( femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum,true);%true means only if collapsed 88 femmodel.elements=InputExtrude( femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum,true); 89 89 end 90 90 -
issm/trunk/src/mex/InputExtrude/InputExtrude.cpp
r4573 r4592 8 8 9 9 /*input datasets: */ 10 Elements* elements=NULL; 11 Nodes* nodes=NULL; 12 Vertices* vertices=NULL; 13 Loads* loads=NULL; 14 Materials* materials=NULL; 15 Parameters* parameters=NULL; 16 int NameEnum; 10 Elements *elements = NULL; 11 Nodes *nodes = NULL; 12 Vertices *vertices = NULL; 13 Loads *loads = NULL; 14 Materials *materials = NULL; 15 Parameters *parameters = NULL; 16 int NameEnum; 17 bool ifcollapsed=false; 17 18 18 19 /*Boot module: */ … … 20 21 21 22 /*checks on arguments on the matlab side: */ 22 CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&InputExtrudeUsage); 23 //CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&InputExtrudeUsage); Cant' use it here, as we have variable inputs. 24 if((nlhs!=NLHS) || (nrhs!=7 && nrhs!=8)){ 25 InputExtrudeUsage(); 26 ISSMERROR(" usage. See above"); 27 } 23 28 24 29 /*Input datasets: */ … … 30 35 FetchParams(¶meters,PARAMETERS); 31 36 FetchData(&NameEnum,NAME); 37 if (nrhs==8){ 38 FetchData(&ifcollapsed,IFCOLLAPSED); 39 } 32 40 33 41 /*configure: */ … … 37 45 38 46 /*!Call core code: */ 39 InputExtrudex(elements,nodes,vertices,loads,materials,parameters,NameEnum); 47 if (nrhs==7) 48 InputExtrudex(elements,nodes,vertices,loads,materials,parameters,NameEnum); 49 else 50 InputExtrudex(elements,nodes,vertices,loads,materials,parameters,NameEnum,ifcollapsed); 40 51 41 52 /*write output : */ … … 59 70 _printf_("\n"); 60 71 _printf_(" usage: [elements] = %s(elements, nodes, vertices, loads, materials, parameters, name_enum);\n",__FUNCT__); 72 _printf_(" usage: [elements] = %s(elements, nodes, vertices, loads, materials, parameters, name_enum,true);\n",__FUNCT__); 61 73 _printf_("\n"); 62 74 } -
issm/trunk/src/mex/InputExtrude/InputExtrude.h
r4236 r4592 24 24 #define PARAMETERS (mxArray*)prhs[5] 25 25 #define NAME (mxArray*)prhs[6] 26 #define IFCOLLAPSED (mxArray*)prhs[7] 26 27 27 28 /* serial output macros: */ … … 32 33 #define NLHS 1 33 34 #undef NRHS 34 #define NRHS 735 #define NRHS 8 35 36 36 37 #endif /* _EXTRUDEINPUT_H */
Note:
See TracChangeset
for help on using the changeset viewer.