- Timestamp:
- 07/07/10 17:35:32 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/mex/InputUpdateFromVector/InputUpdateFromVector.cpp
r4218 r4453 7 7 void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){ 8 8 9 /*diverse: */ 10 int noerr=1; 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 double* vector=NULL; 17 int dummy; 18 int NameEnum; 19 int TypeEnum; 11 20 12 /*input datasets: */ 13 Elements* elements=NULL; 14 Nodes* nodes=NULL; 15 Vertices* vertices=NULL; 16 Loads* loads=NULL; 17 Materials* materials=NULL; 18 Parameters* parameters=NULL; 19 double* vector=NULL; 20 int dummy; 21 int NameEnum; 22 int TypeEnum; 21 /*Boot module: */ 22 MODULEBOOT(); 23 23 24 /*Boot module: */25 MODULEBOOT();24 /*checks on arguments on the matlab side: */ 25 CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&InputUpdateFromVectorUsage); 26 26 27 /*checks on arguments on the matlab side: */ 28 CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&InputUpdateFromVectorUsage); 27 /*Input datasets: */ 28 FetchData((DataSet**)&elements,ELEMENTSIN); 29 FetchData((DataSet**)&nodes,NODESIN); 30 FetchData((DataSet**)&vertices,VERTICESIN); 31 FetchData((DataSet**)&loads,LOADSIN); 32 FetchData((DataSet**)&materials,MATERIALSIN); 33 FetchParams(¶meters,PARAMETERSIN); 34 FetchData(&vector,&dummy,VECTOR); 35 FetchData(&NameEnum,NAME); 36 FetchData(&TypeEnum,TYPE); 29 37 30 /*Input datasets: */ 31 FetchData((DataSet**)&elements,ELEMENTSIN); 32 FetchData((DataSet**)&nodes,NODESIN); 33 FetchData((DataSet**)&vertices,VERTICESIN); 34 FetchData((DataSet**)&loads,LOADSIN); 35 FetchData((DataSet**)&materials,MATERIALSIN); 36 FetchParams(¶meters,PARAMETERSIN); 37 FetchData(&vector,&dummy,VECTOR); 38 FetchData(&NameEnum,NAME); 39 FetchData(&TypeEnum,TYPE); 38 /*Check that type is one of Constant, Vertex or Element: */ 39 if ((TypeEnum!=ConstantEnum) && (TypeEnum!=VertexEnum) && (TypeEnum!=ElementEnum)){ 40 ISSMERROR("%s%s%s\n","Type of input can only be a constant, a vertex or an element vector. Right now, you input a ",EnumAsString(TypeEnum)," type data for input update"); 41 } 40 42 41 /*Check that type is one of Constant, Vertex or Element: */ 42 if ((TypeEnum!=ConstantEnum) && (TypeEnum!=VertexEnum) && (TypeEnum!=ElementEnum)){ 43 ISSMERROR("%s%s%s\n","Type of input can only be a constant, a vertex or an element vector. Right now, you input a ",EnumAsString(TypeEnum)," type data for input update"); 44 } 43 /*!Generate internal degree of freedom numbers: */ 44 InputUpdateFromVectorx(elements,nodes,vertices,loads, materials,parameters,vector,NameEnum,TypeEnum); 45 45 46 /*!Generate internal degree of freedom numbers: */ 47 InputUpdateFromVectorx(elements,nodes,vertices,loads, materials,parameters,vector,NameEnum,TypeEnum); 46 /*write output datasets: */ 47 WriteData(ELEMENTS,elements); 48 WriteData(NODES,nodes); 49 WriteData(VERTICES,vertices); 50 WriteData(LOADS,loads); 51 WriteData(MATERIALS,materials); 52 WriteParams(PARAMETERS,parameters); 48 53 49 /*write output datasets: */ 50 WriteData(ELEMENTS,elements); 51 WriteData(NODES,nodes); 52 WriteData(VERTICES,vertices); 53 WriteData(LOADS,loads); 54 WriteData(MATERIALS,materials); 55 WriteParams(PARAMETERS,parameters); 54 /*Free ressources: */ 55 delete elements; 56 delete nodes; 57 delete vertices; 58 delete loads; 59 delete materials; 60 delete parameters; 61 xfree((void**)&vector); 56 62 57 /*Free ressources: */ 58 delete elements; 59 delete nodes; 60 delete vertices; 61 delete loads; 62 delete materials; 63 delete parameters; 64 xfree((void**)&vector); 65 66 /*end module: */ 67 MODULEEND(); 63 /*end module: */ 64 MODULEEND(); 68 65 } 69 66
Note:
See TracChangeset
for help on using the changeset viewer.