source: issm/trunk/src/mex/InputControlConstrain/InputControlConstrain.cpp@ 4573

Last change on this file since 4573 was 4573, checked in by Eric.Larour, 15 years ago

Optimized configuration. Only needed in series, or in parallel when resetting
configuration in SetConfiguration in FemModel.
Still more to optimize, but this takes a lot of code away.

File size: 2.0 KB
Line 
1/*\file InputControlConstrain.c
2*\brief: update elements properties using an input vector
3*/
4
5#include "./InputControlConstrain.h"
6
7void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
8
9/*input datasets: */
10Elements* elements = NULL;
11Nodes *nodes = NULL;
12Vertices *vertices = NULL;
13Loads *loads = NULL;
14Materials *materials = NULL;
15Parameters *parameters = NULL;
16int control_type;
17double cm_min;
18double cm_max;
19
20/*Boot module: */
21MODULEBOOT();
22
23/*checks on arguments on the matlab side: */
24CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&InputControlConstrainUsage);
25
26/*Input datasets: */
27FetchData((DataSet**)&elements,ELEMENTSIN);
28FetchData((DataSet**)&nodes,NODESIN);
29FetchData((DataSet**)&vertices,VERTICESIN);
30FetchData((DataSet**)&loads,LOADSIN);
31FetchData((DataSet**)&materials,MATERIALSIN);
32FetchParams(&parameters,PARAMETERSIN);
33FetchData(&control_type,CONTROLTYPE);
34FetchData(&cm_min,CMMIN);
35FetchData(&cm_max,CMMAX);
36
37/*configure: */
38elements-> Configure(elements,loads, nodes,vertices, materials,parameters);
39nodes-> Configure(elements,loads, nodes,vertices, materials,parameters);
40loads-> Configure(elements, loads, nodes,vertices, materials,parameters);
41
42/*call "x" code layer*/
43InputControlConstrainx(elements,nodes,vertices,loads, materials,parameters,control_type,cm_min,cm_max);
44
45/*write output datasets: */
46WriteData(ELEMENTS,elements);
47WriteData(NODES,nodes);
48WriteData(VERTICES,vertices);
49WriteData(LOADS,loads);
50WriteData(MATERIALS,materials);
51WriteParams(PARAMETERS,parameters);
52
53/*Free ressources: */
54delete elements;
55delete nodes;
56delete vertices;
57delete loads;
58delete materials;
59delete parameters;
60
61/*end module: */
62MODULEEND();
63}
64
65void InputControlConstrainUsage(void)
66{
67 _printf_("\n");
68 _printf_(" usage: [elements,nodes,vertices,loads,materials,parameters] = %s(elements,nodes,vertices,loads,materials,parameters,control_type,cm_min,cm_max);\n",__FUNCT__);
69 _printf_("\n");
70}
Note: See TracBrowser for help on using the repository browser.