Ignore:
Timestamp:
07/07/10 17:35:32 (15 years ago)
Author:
Eric.Larour
Message:

Fixed some bugs in DakotaResponses and InputUpdateFromDakota modules.
Took out noerr variable in many of the modules.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/mex/InputUpdateFromVector/InputUpdateFromVector.cpp

    r4218 r4453  
    77void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
    88
    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;
    1120
    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();
    2323
    24 /*Boot module: */
    25 MODULEBOOT();
     24        /*checks on arguments on the matlab side: */
     25        CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&InputUpdateFromVectorUsage);
    2626
    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(&parameters,PARAMETERSIN);
     34        FetchData(&vector,&dummy,VECTOR);
     35        FetchData(&NameEnum,NAME);
     36        FetchData(&TypeEnum,TYPE);
    2937
    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(&parameters,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        }
    4042
    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);
    4545
    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);
    4853
    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);
    5662
    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();
    6865}
    6966
Note: See TracChangeset for help on using the changeset viewer.