Changeset 4111
- Timestamp:
- 06/21/10 17:05:50 (15 years ago)
- Location:
- issm/trunk/src/mex
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/mex/UpdateGeometry/UpdateGeometry.cpp
r3712 r4111 1 1 /*\file UpdateGeometry.c 2 *\brief: update geometry from new thickness computed by prognostic_core. 3 2 *\brief: update geometry after prognostic computation of new thickness 3 */ 4 4 5 5 #include "./UpdateGeometry.h" … … 7 7 void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){ 8 8 9 10 int noerr=1;9 /*diverse: */ 10 int noerr = 1; 11 11 12 /*input datasets: */ 13 DataSet* elements=NULL; 14 DataSet* nodes=NULL; 15 DataSet* vertices=NULL; 16 DataSet* loads=NULL; 17 DataSet* materials=NULL; 18 Parameters* parameters=NULL; 19 Vec newthickness=NULL; 20 Vec bed=NULL; 21 Vec surface=NULL; 12 /*input datasets: */ 13 DataSet *elements = NULL; 14 DataSet *nodes = NULL; 15 DataSet *vertices = NULL; 16 DataSet *loads = NULL; 17 DataSet *materials = NULL; 18 Parameters *parameters = NULL; 22 19 23 /* output datasets: */ 24 Vec outbed=NULL; 25 Vec outsurface=NULL; 26 Vec outthickness=NULL; 20 /*Boot module: */ 21 MODULEBOOT(); 27 22 28 /*Boot module: */29 MODULEBOOT();23 /*checks on arguments on the matlab side: */ 24 CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&UpdateGeometryUsage); 30 25 31 /*checks on arguments on the matlab side: */ 32 CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&UpdateGeometryUsage); 33 34 /*Input datasets: */ 35 FetchData(&elements,ELEMENTS); 36 FetchData(&nodes,NODES); 37 FetchData(&vertices,VERTICES); 38 FetchData(&loads,LOADS); 39 FetchData(&materials,MATERIALS); 40 FetchParams(¶meters,PARAMETERS); 41 42 FetchData(&newthickness,NEWTHICKNESS); 43 FetchData(&bed,BED); 44 FetchData(&surface,SURFACE); 26 /*Input datasets: */ 27 FetchData(&elements,ELEMENTSIN); 28 FetchData(&nodes,NODESIN); 29 FetchData(&vertices,VERTICESIN); 30 FetchData(&loads,LOADSIN); 31 FetchData(&materials,MATERIALSIN); 32 FetchParams(¶meters,PARAMETERSIN); 45 33 46 /*!Generate internal degree of freedom numbers:*/47 UpdateGeometryx(&outthickness,&outbed,&outsurface, elements, nodes,vertices,loads, materials, parameters,newthickness,bed,surface);34 /*call "x" code layer*/ 35 UpdateGeometryx(elements,nodes,vertices,loads, materials,parameters); 48 36 49 /*write output data: */ 50 WriteData(OUTTHICKNESS,outthickness); 51 WriteData(OUTBED,outbed); 52 WriteData(OUTSURFACE,outsurface); 37 /*write output datasets: */ 38 WriteData(ELEMENTS,elements); 39 WriteData(NODES,nodes); 40 WriteData(VERTICES,vertices); 41 WriteData(LOADS,loads); 42 WriteData(MATERIALS,materials); 43 WriteParams(PARAMETERS,parameters); 53 44 54 /*Free ressources: */ 55 delete elements; 56 delete nodes; 57 delete vertices; 58 delete loads; 59 delete materials; 60 delete parameters; 61 VecFree(&newthickness); 62 VecFree(&bed); 63 VecFree(&surface); 64 VecFree(&outbed); 65 VecFree(&outthickness); 66 VecFree(&outsurface); 45 /*Free ressources: */ 46 delete elements; 47 delete nodes; 48 delete vertices; 49 delete loads; 50 delete materials; 51 delete parameters; 67 52 68 69 53 /*end module: */ 54 MODULEEND(); 70 55 } 71 56 72 void UpdateGeometryUsage(void) { 57 void UpdateGeometryUsage(void) 58 { 73 59 _printf_("\n"); 74 _printf_(" usage: [ outthickness,outbed,outsrface] = %s(elements, nodes, materials, parameters,newthickness,bed,surface);\n",__FUNCT__);60 _printf_(" usage: [elements,nodes,vertices,loads,materials,parameters] = %s(elements,nodes,vertices,loads,materials,parameters);\n",__FUNCT__); 75 61 _printf_("\n"); 76 62 } -
issm/trunk/src/mex/UpdateGeometry/UpdateGeometry.h
r3913 r4111 1 2 1 /* 3 2 UpdateGeometry.h 4 3 */ 5 6 4 7 5 #ifndef _UPDATEGEOMETRY_H … … 14 12 #include "../../c/DataSet/DataSet.h" 15 13 #include "../../c/shared/shared.h" 14 #include "../../c/EnumDefinitions/EnumDefinitions.h" 16 15 17 16 #undef __FUNCT__ … … 19 18 20 19 /* serial input macros: */ 21 #define ELEMENTS (mxArray*)prhs[0] 22 #define NODES (mxArray*)prhs[1] 23 #define VERTICES (mxArray*)prhs[2] 24 #define LOADS (mxArray*)prhs[3] 25 #define MATERIALS (mxArray*)prhs[4] 26 #define PARAMETERS (mxArray*)prhs[5] 27 #define NEWTHICKNESS (mxArray*)prhs[6] 28 #define BED (mxArray*)prhs[7] 29 #define SURFACE (mxArray*)prhs[8] 20 #define ELEMENTSIN (mxArray*)prhs[0] 21 #define NODESIN (mxArray*)prhs[1] 22 #define VERTICESIN (mxArray*)prhs[2] 23 #define LOADSIN (mxArray*)prhs[3] 24 #define MATERIALSIN (mxArray*)prhs[4] 25 #define PARAMETERSIN (mxArray*)prhs[5] 30 26 31 27 /* serial output macros: */ 32 #define OUTTHICKNESS (mxArray**)&plhs[0] 33 #define OUTBED (mxArray**)&plhs[1] 34 #define OUTSURFACE (mxArray**)&plhs[2] 28 #define ELEMENTS (mxArray**)&plhs[0] 29 #define NODES (mxArray**)&plhs[1] 30 #define VERTICES (mxArray**)&plhs[2] 31 #define LOADS (mxArray**)&plhs[3] 32 #define MATERIALS (mxArray**)&plhs[4] 33 #define PARAMETERS (mxArray**)&plhs[5] 35 34 36 35 /* serial arg counts: */ 37 36 #undef NLHS 38 #define NLHS 337 #define NLHS 6 39 38 #undef NRHS 40 #define NRHS 9 41 39 #define NRHS 6 42 40 43 41 #endif /* _UPDATEGEOMETRY_H */ -
issm/trunk/src/mex/UpdateVertexPositions/UpdateVertexPositions.cpp
r3445 r4111 1 1 /*\file UpdateVertexPositions.c 2 *\brief: update vertex positions using new geometry defined by new bed and new thickness 3 2 *\brief: update elements properties using an input vector 3 */ 4 4 5 5 #include "./UpdateVertexPositions.h" … … 7 7 void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){ 8 8 9 10 int noerr=1;9 /*diverse: */ 10 int noerr = 1; 11 11 12 /*input datasets: */ 13 DataSet* vertices=NULL; 14 Vec thickness=NULL; 15 Vec bed=NULL; 12 /*input datasets: */ 13 DataSet *elements = NULL; 14 DataSet *nodes = NULL; 15 DataSet *vertices = NULL; 16 DataSet *loads = NULL; 17 DataSet *materials = NULL; 18 Parameters *parameters = NULL; 16 19 17 18 20 /*Boot module: */ 21 MODULEBOOT(); 19 22 20 21 23 /*checks on arguments on the matlab side: */ 24 CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&UpdateVertexPositionsUsage); 22 25 23 24 FetchData(&vertices,VERTICES);25 FetchData(&thickness,THICKNESS);26 FetchData(&bed,BED);27 28 /*!Generate internal degree of freedom numbers: */ 29 UpdateVertexPositionsx(vertices,thickness,bed);26 /*Input datasets: */ 27 FetchData(&elements,ELEMENTSIN); 28 FetchData(&nodes,NODESIN); 29 FetchData(&vertices,VERTICESIN); 30 FetchData(&loads,LOADSIN); 31 FetchData(&materials,MATERIALSIN); 32 FetchParams(¶meters,PARAMETERSIN); 30 33 31 /*write output datasets:*/32 WriteData(VERTICESOUT,vertices);34 /*call "x" code layer*/ 35 UpdateVertexPositionsx(elements,nodes,vertices,loads, materials,parameters); 33 36 34 /*Free ressources: */ 35 delete vertices; 36 VecFree(&thickness); 37 VecFree(&bed); 37 /*write output datasets: */ 38 WriteData(ELEMENTS,elements); 39 WriteData(NODES,nodes); 40 WriteData(VERTICES,vertices); 41 WriteData(LOADS,loads); 42 WriteData(MATERIALS,materials); 43 WriteParams(PARAMETERS,parameters); 38 44 39 /*end module: */ 40 MODULEEND(); 45 /*Free ressources: */ 46 delete elements; 47 delete nodes; 48 delete vertices; 49 delete loads; 50 delete materials; 51 delete parameters; 52 53 /*end module: */ 54 MODULEEND(); 41 55 } 42 56 … … 44 58 { 45 59 _printf_("\n"); 46 _printf_(" usage: [ vertices] = %s(vertices, thickness, bed);\n",__FUNCT__);60 _printf_(" usage: [elements,nodes,vertices,loads,materials,parameters] = %s(elements,nodes,vertices,loads,materials,parameters);\n",__FUNCT__); 47 61 _printf_("\n"); 48 62 } -
issm/trunk/src/mex/UpdateVertexPositions/UpdateVertexPositions.h
r3913 r4111 1 2 1 /* 3 2 UpdateVertexPositions.h 4 3 */ 5 6 4 7 5 #ifndef _UPDATEVERTEXPOSITIONS_H … … 14 12 #include "../../c/DataSet/DataSet.h" 15 13 #include "../../c/shared/shared.h" 14 #include "../../c/EnumDefinitions/EnumDefinitions.h" 16 15 17 16 #undef __FUNCT__ … … 19 18 20 19 /* serial input macros: */ 21 #define VERTICES (mxArray*)prhs[0] 22 #define BED (mxArray*)prhs[1] 23 #define THICKNESS (mxArray*)prhs[2] 24 20 #define ELEMENTSIN (mxArray*)prhs[0] 21 #define NODESIN (mxArray*)prhs[1] 22 #define VERTICESIN (mxArray*)prhs[2] 23 #define LOADSIN (mxArray*)prhs[3] 24 #define MATERIALSIN (mxArray*)prhs[4] 25 #define PARAMETERSIN (mxArray*)prhs[5] 26 25 27 /* serial output macros: */ 26 #define VERTICESOUT (mxArray**)&plhs[0] 28 #define ELEMENTS (mxArray**)&plhs[0] 29 #define NODES (mxArray**)&plhs[1] 30 #define VERTICES (mxArray**)&plhs[2] 31 #define LOADS (mxArray**)&plhs[3] 32 #define MATERIALS (mxArray**)&plhs[4] 33 #define PARAMETERS (mxArray**)&plhs[5] 27 34 28 35 /* serial arg counts: */ 29 36 #undef NLHS 30 #define NLHS 137 #define NLHS 6 31 38 #undef NRHS 32 #define NRHS 3 33 39 #define NRHS 6 34 40 35 41 #endif /* _UPDATEVERTEXPOSITIONS_H */
Note:
See TracChangeset
for help on using the changeset viewer.