Changeset 9380


Ignore:
Timestamp:
08/23/11 10:17:30 (14 years ago)
Author:
Mathieu Morlighem
Message:

Changed iomodel->data from Parameters to double

Location:
issm/trunk/src/c
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r9356 r9380  
    551551        HydrologyWaterVxEnum,
    552552        HydrologyWaterVyEnum,
    553         SpcDynamicEnum
     553        SpcDynamicEnum,
     554        MaximumNumberOfEnums
    554555};
    555556
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r9356 r9380  
    494494                case HydrologyWaterVyEnum : return "HydrologyWaterVy";
    495495                case SpcDynamicEnum : return "SpcDynamic";
     496                case MaximumNumberOfEnums : return "MaximumNumberOfE";
    496497                default : return "unknown";
    497498
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r9356 r9380  
    492492        else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
    493493        else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
     494        else if (strcmp(name,"MaximumNumberOfE")==0) return MaximumNumberOfEnums;
    494495        else _error_("Enum %s not found",name);
    495496
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r9376 r9380  
    51845184
    51855185        /*Control Inputs*/
    5186         if (control_analysis && iomodel->IsLoaded(ControlTypeEnum)){
     5186        if (control_analysis && iomodel->f(ControlTypeEnum)){
    51875187                for(i=0;i<num_control_type;i++){
    51885188                        switch((int)iomodel->f(ControlTypeEnum)[i]){
    51895189                                case DhdtEnum:
    5190                                         if (iomodel->IsLoaded(DhdtEnum)){
     5190                                        if (iomodel->f(DhdtEnum)){
    51915191                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->f(DhdtEnum)[penta_vertex_ids[j]-1]/yts;
    51925192                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->f(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     
    51965196                                        break;
    51975197                                case VxEnum:
    5198                                         if (iomodel->IsLoaded(VxEnum)){
     5198                                        if (iomodel->f(VxEnum)){
    51995199                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->f(VxEnum)[penta_vertex_ids[j]-1]/yts;
    52005200                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->f(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     
    52045204                                        break;
    52055205                                case VyEnum:
    5206                                         if (iomodel->IsLoaded(VyEnum)){
     5206                                        if (iomodel->f(VyEnum)){
    52075207                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->f(VyEnum)[penta_vertex_ids[j]-1]/yts;
    52085208                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->f(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;
     
    52125212                                        break;
    52135213                                case DragCoefficientEnum:
    5214                                         if (iomodel->IsLoaded(DragCoefficientEnum)){
     5214                                        if (iomodel->f(DragCoefficientEnum)){
    52155215                                                for(j=0;j<6;j++)nodeinputs[j]=iomodel->f(DragCoefficientEnum)[penta_vertex_ids[j]-1];
    52165216                                                for(j=0;j<6;j++)cmmininputs[j]=iomodel->f(CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i];
     
    52285228
    52295229        //Need to know the type of approximation for this element
    5230         if(iomodel->IsLoaded(ElementsTypeEnum)){
     5230        if(iomodel->f(ElementsTypeEnum)){
    52315231                if (*(iomodel->f(ElementsTypeEnum)+index)==MacAyealApproximationEnum){
    52325232                        this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealApproximationEnum));
     
    52595259
    52605260        /*DatasetInputs*/
    5261         if (iomodel->IsLoaded(WeightsEnum)) {
     5261        if (iomodel->f(WeightsEnum)) {
    52625262
    52635263                /*Create inputs and add to DataSetInput*/
     
    75697569                        /*default vx,vy and vz: either observation or 0 */
    75707570                        if(!iomodel->f(VxEnum)){
    7571                                 if (iomodel->IsLoaded(VxObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->f(VxObsEnum)[penta_vertex_ids[i]-1]/yts;
     7571                                if (iomodel->f(VxObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->f(VxObsEnum)[penta_vertex_ids[i]-1]/yts;
    75727572                                else                 for(i=0;i<6;i++)nodeinputs[i]=0;
    75737573                                this->inputs->AddInput(new PentaVertexInput(VxEnum,nodeinputs));
     
    75767576                        }
    75777577                        if(!iomodel->f(VyEnum)){
    7578                                 if (iomodel->IsLoaded(VyObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->f(VyObsEnum)[penta_vertex_ids[i]-1]/yts;
     7578                                if (iomodel->f(VyObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->f(VyObsEnum)[penta_vertex_ids[i]-1]/yts;
    75797579                                else                 for(i=0;i<6;i++)nodeinputs[i]=0;
    75807580                                this->inputs->AddInput(new PentaVertexInput(VyEnum,nodeinputs));
     
    75837583                        }
    75847584                        if(!iomodel->f(VzEnum)){
    7585                                 if (iomodel->IsLoaded(VzObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->f(VzObsEnum)[penta_vertex_ids[i]-1]/yts;
     7585                                if (iomodel->f(VzObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->f(VzObsEnum)[penta_vertex_ids[i]-1]/yts;
    75867586                                else                 for(i=0;i<6;i++)nodeinputs[i]=0;
    75877587                                this->inputs->AddInput(new PentaVertexInput(VzEnum,nodeinputs));
     
    76027602                        if(*(iomodel->f(ElementsTypeEnum)+index)==PattynStokesApproximationEnum){
    76037603                                /*Create VzPattyn and VzStokes Enums*/
    7604                                 if(iomodel->IsLoaded(VzEnum) && iomodel->IsLoaded(NodeOnStokesEnum)){
     7604                                if(iomodel->f(VzEnum) && iomodel->f(NodeOnStokesEnum)){
    76057605                                        for(i=0;i<6;i++) nodeinputs[i]=iomodel->f(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->f(NodeOnStokesEnum)[penta_vertex_ids[i]-1];
    76067606                                        this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs));
     
    76167616                        if(*(iomodel->f(ElementsTypeEnum)+index)==MacAyealStokesApproximationEnum){
    76177617                                /*Create VzMacAyeal and VzStokes Enums*/
    7618                                 if(iomodel->IsLoaded(VzEnum) && iomodel->IsLoaded(NodeOnStokesEnum)){
     7618                                if(iomodel->f(VzEnum) && iomodel->f(NodeOnStokesEnum)){
    76197619                                        for(i=0;i<6;i++) nodeinputs[i]=iomodel->f(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->f(NodeOnStokesEnum)[penta_vertex_ids[i]-1];
    76207620                                        this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs));
     
    76447644                        this->inputs->AddInput(new PentaVertexInput(VyMeshEnum,nodeinputs));
    76457645                        this->inputs->AddInput(new PentaVertexInput(VzMeshEnum,nodeinputs));
    7646                         if (iomodel->IsLoaded(TemperatureEnum) && iomodel->IsLoaded(WaterfractionEnum)) {
     7646                        if (iomodel->f(TemperatureEnum) && iomodel->f(WaterfractionEnum)) {
    76477647                                for(i=0;i<6;i++){
    76487648                                        if(iomodel->f(TemperatureEnum)[penta_vertex_ids[i]-1] < meltingpoint-beta*iomodel->f(PressureEnum)[penta_vertex_ids[i]-1]){
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r9376 r9380  
    32883288
    32893289        /*Control Inputs*/
    3290         if (control_analysis && iomodel->IsLoaded(ControlTypeEnum)){
     3290        if (control_analysis && iomodel->f(ControlTypeEnum)){
    32913291                for(i=0;i<num_control_type;i++){
    32923292                        switch((int)iomodel->f(ControlTypeEnum)[i]){
    32933293                                case DhdtEnum:
    3294                                         if (iomodel->IsLoaded(DhdtEnum)){
     3294                                        if (iomodel->f(DhdtEnum)){
    32953295                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->f(DhdtEnum)[tria_vertex_ids[j]-1]/yts;
    32963296                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->f(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     
    33003300                                        break;
    33013301                                case VxEnum:
    3302                                         if (iomodel->IsLoaded(VxEnum)){
     3302                                        if (iomodel->f(VxEnum)){
    33033303                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->f(VxEnum)[tria_vertex_ids[j]-1]/yts;
    33043304                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->f(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     
    33083308                                        break;
    33093309                                case VyEnum:
    3310                                         if (iomodel->IsLoaded(VyEnum)){
     3310                                        if (iomodel->f(VyEnum)){
    33113311                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->f(VyEnum)[tria_vertex_ids[j]-1]/yts;
    33123312                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->f(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;
     
    33163316                                        break;
    33173317                                case DragCoefficientEnum:
    3318                                         if (iomodel->IsLoaded(DragCoefficientEnum)){
     3318                                        if (iomodel->f(DragCoefficientEnum)){
    33193319                                                for(j=0;j<3;j++)nodeinputs[j]=iomodel->f(DragCoefficientEnum)[tria_vertex_ids[j]-1];
    33203320                                                for(j=0;j<3;j++)cmmininputs[j]=iomodel->f(CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i];
     
    52725272                        /*default vx,vy and vz: either observation or 0 */
    52735273                        if(!iomodel->f(VxEnum)){
    5274                                 if (iomodel->IsLoaded(VxObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->f(VxObsEnum)[tria_vertex_ids[i]-1]/yts;
     5274                                if (iomodel->f(VxObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->f(VxObsEnum)[tria_vertex_ids[i]-1]/yts;
    52755275                                else                 for(i=0;i<3;i++)nodeinputs[i]=0;
    52765276                                this->inputs->AddInput(new TriaVertexInput(VxEnum,nodeinputs));
     
    52795279                        }
    52805280                        if(!iomodel->f(VyEnum)){
    5281                                 if (iomodel->IsLoaded(VyObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->f(VyObsEnum)[tria_vertex_ids[i]-1]/yts;
     5281                                if (iomodel->f(VyObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->f(VyObsEnum)[tria_vertex_ids[i]-1]/yts;
    52825282                                else                 for(i=0;i<3;i++)nodeinputs[i]=0;
    52835283                                this->inputs->AddInput(new TriaVertexInput(VyEnum,nodeinputs));
     
    52865286                        }
    52875287                        if(!iomodel->f(VzEnum)){
    5288                                 if (iomodel->IsLoaded(VzObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->f(VzObsEnum)[tria_vertex_ids[i]-1]/yts;
     5288                                if (iomodel->f(VzObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->f(VzObsEnum)[tria_vertex_ids[i]-1]/yts;
    52895289                                else                 for(i=0;i<3;i++)nodeinputs[i]=0;
    52905290                                this->inputs->AddInput(new TriaVertexInput(VzEnum,nodeinputs));
  • issm/trunk/src/c/objects/IoModel.cpp

    r9376 r9380  
    2424IoModel::IoModel(){
    2525        this->fid=NULL;
     26        this->data=NULL;
    2627        this->constants=NULL;
    2728       
     
    3536        this->loadcounter=0;
    3637        this->constraintcounter=0;
    37 
    3838}
    3939/*}}}*/
     
    4949
    5050        /*Initialize data: */
    51         this->data=new Parameters();
     51        this->data=(double**)xmalloc(MaximumNumberOfEnums*sizeof(double*));
     52        for(int i=0;i<MaximumNumberOfEnums;i++) this->data[i]=NULL;
    5253       
    5354        /*Initialize permanent data: */
     
    6970
    7071        delete this->constants;
    71         delete this->data;
     72
     73        for(int i=0;i<MaximumNumberOfEnums;i++) xfree((void**)&this->data[i]);
     74        xfree((void**)&this->data);
    7275
    7376        xfree((void**)&this->my_elements);
     
    485488        for(i=0; i<num; i++){
    486489               
    487                 dataenum=va_arg(ap, int); _assert_(this->data->Exist(dataenum)==false);
     490                dataenum=va_arg(ap, int);
     491                _assert_(dataenum<MaximumNumberOfEnums);
     492                _assert_(!this->data[dataenum]);
     493
    488494                this->FetchData(&matrix,&M,&N,dataenum);
    489495                if(M*N==0){
     
    491497                }
    492498
    493 
    494499                /*Add to this->data: */
    495                 this->data->AddObject(new DoubleMatParam(dataenum,matrix,M,N));
    496                
    497                 /*Free ressources:*/
    498                 xfree((void**)&matrix);
     500                this->data[dataenum]=matrix;
    499501        }
    500502        va_end(ap);
     
    504506/*FUNCTION IoModel::DeleteData(int num,...){{{1*/
    505507void  IoModel::DeleteData(int num,...){
    506 
    507508
    508509        va_list ap;
     
    516517        for(i = 0; i <num; i++){
    517518                dataenum=va_arg(ap, int);
    518                 parameter=(DoubleMatParam*)this->data->FindParamObject(dataenum);
    519                 if(parameter){
    520                         this->data->DeleteObject((Object*)parameter);
    521                 }
    522                 else{
    523                         /*do nothing, we did not find the data, but this is no reason to error out: */
    524                 }
     519                _assert_(dataenum<MaximumNumberOfEnums);
     520                xfree((void**)&this->data[dataenum]);
    525521        }
    526522        va_end(ap);
    527 
    528 }
    529 /*}}}*/
     523} /*}}}*/
    530524/*FUNCTION IoModel::f(int dataenum){{{1*/
    531525double* IoModel::f(int dataenum){
    532526
    533         DoubleMatParam* parameter=NULL;
    534                
    535         parameter=(DoubleMatParam*)this->data->FindParamObject(dataenum);
    536         if (parameter==NULL){
    537                 /*That might happen: initial velocity might be empty*/
    538                 return NULL;
    539         }
    540         return parameter->GetPointer();
    541 }
    542 /*}}}*/
    543 /*FUNCTION IoModel::IsLoaded(int dataenum){{{1*/
    544 bool IoModel::IsLoaded(int dataenum){
    545 
    546         return this->data->Exist(dataenum);
     527        _assert_(dataenum<MaximumNumberOfEnums);
     528        return this->data[dataenum];
    547529}
    548530/*}}}*/
  • issm/trunk/src/c/objects/IoModel.h

    r9376 r9380  
    1717
    1818        private:
    19                 FILE* fid; //pointer to input file
    20                 Parameters *data;        //this dataset holds temporary data, memory intensive.
     19                FILE    *fid; //pointer to input file
     20                double **data;//this dataset holds temporary data, memory intensive.
    2121
    2222        public:
     
    4141                /*}}}*/
    4242                /*Input/Output:{{{1*/
    43                 bool  IsLoaded(int dataenum);
    4443                void  FetchData(bool*     pboolean,int data_enum);
    4544                void  FetchData(int*      pinteger,int data_enum);
  • issm/trunk/src/c/objects/Materials/Matice.cpp

    r9376 r9380  
    674674
    675675                /*Get B*/
    676                 if (iomodel->IsLoaded(RheologyBEnum)) {
     676                if (iomodel->f(RheologyBEnum)) {
    677677                        for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->f(RheologyBEnum)[int(iomodel->f(ElementsEnum)[num_vertices*index+i]-1)];
    678678                        this->inputs->AddInput(new TriaVertexInput(RheologyBbarEnum,nodeinputs));
     
    680680
    681681                /*Get n*/
    682                 if (iomodel->IsLoaded(RheologyNEnum)) {
     682                if (iomodel->f(RheologyNEnum)) {
    683683                        for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->f(RheologyNEnum)[index];
    684684                        this->inputs->AddInput(new TriaVertexInput(RheologyNEnum,nodeinputs));
     
    686686
    687687                /*Control Inputs*/
    688                 if (control_analysis && iomodel->IsLoaded(ControlTypeEnum)){
     688                if (control_analysis && iomodel->f(ControlTypeEnum)){
    689689                        for(i=0;i<num_control_type;i++){
    690690                                switch((int)iomodel->f(ControlTypeEnum)[i]){
    691691                                        case RheologyBbarEnum:
    692                                                 if (iomodel->IsLoaded(RheologyBEnum)){
     692                                                if (iomodel->f(RheologyBEnum)){
    693693                                                        _assert_(iomodel->f(RheologyBEnum));_assert_(iomodel->f(CmMinEnum)); _assert_(iomodel->f(CmMaxEnum));
    694694                                                        for(j=0;j<num_vertices;j++)nodeinputs[j]=iomodel->f(RheologyBEnum)[int(iomodel->f(ElementsEnum)[num_vertices*index+j]-1)];
     
    713713
    714714                /*Get B*/
    715                 if (iomodel->IsLoaded(RheologyBEnum)) {
     715                if (iomodel->f(RheologyBEnum)) {
    716716                        for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->f(RheologyBEnum)[int(iomodel->f(ElementsEnum)[num_vertices*index+i]-1)];
    717717                        this->inputs->AddInput(new PentaVertexInput(RheologyBEnum,nodeinputs));
     
    719719
    720720                /*Get n*/
    721                 if (iomodel->IsLoaded(RheologyNEnum)) {
     721                if (iomodel->f(RheologyNEnum)) {
    722722                        for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->f(RheologyNEnum)[index];
    723723                        this->inputs->AddInput(new PentaVertexInput(RheologyNEnum,nodeinputs));
     
    725725
    726726                /*Control Inputs*/
    727                 if (control_analysis && iomodel->IsLoaded(ControlTypeEnum)){
     727                if (control_analysis && iomodel->f(ControlTypeEnum)){
    728728                        for(i=0;i<num_control_type;i++){
    729729                                switch((int)iomodel->f(ControlTypeEnum)[i]){
    730730                                        case RheologyBbarEnum:
    731                                                 if (iomodel->IsLoaded(RheologyBEnum)){
     731                                                if (iomodel->f(RheologyBEnum)){
    732732                                                        _assert_(iomodel->f(RheologyBEnum));_assert_(iomodel->f(CmMinEnum)); _assert_(iomodel->f(CmMaxEnum));
    733733                                                        for(j=0;j<num_vertices;j++)nodeinputs[j]=iomodel->f(RheologyBEnum)[int(iomodel->f(ElementsEnum)[num_vertices*index+j]-1)];
  • issm/trunk/src/c/objects/Node.cpp

    r9376 r9380  
    5454        //intialize inputs, and add as many inputs per element as requested:
    5555        this->inputs=new Inputs();
    56         if (iomodel->IsLoaded(NodeOnBedEnum))      this->inputs->AddInput(new BoolInput(NodeOnBedEnum,(IssmBool)iomodel->f(NodeOnBedEnum)[io_index]));
    57         if (iomodel->IsLoaded(NodeOnSurfaceEnum))  this->inputs->AddInput(new BoolInput(NodeOnSurfaceEnum,(IssmBool)iomodel->f(NodeOnSurfaceEnum)[io_index]));
    58         if (iomodel->IsLoaded(NodeOnIceShelfEnum)) this->inputs->AddInput(new BoolInput(NodeOnIceShelfEnum,(IssmBool)iomodel->f(NodeOnIceShelfEnum)[io_index]));
    59         if (iomodel->IsLoaded(NodeOnIceSheetEnum)) this->inputs->AddInput(new BoolInput(NodeOnIceSheetEnum,(IssmBool)iomodel->f(NodeOnIceSheetEnum)[io_index]));
     56        if (iomodel->f(NodeOnBedEnum))      this->inputs->AddInput(new BoolInput(NodeOnBedEnum,(IssmBool)iomodel->f(NodeOnBedEnum)[io_index]));
     57        if (iomodel->f(NodeOnSurfaceEnum))  this->inputs->AddInput(new BoolInput(NodeOnSurfaceEnum,(IssmBool)iomodel->f(NodeOnSurfaceEnum)[io_index]));
     58        if (iomodel->f(NodeOnIceShelfEnum)) this->inputs->AddInput(new BoolInput(NodeOnIceShelfEnum,(IssmBool)iomodel->f(NodeOnIceShelfEnum)[io_index]));
     59        if (iomodel->f(NodeOnIceSheetEnum)) this->inputs->AddInput(new BoolInput(NodeOnIceSheetEnum,(IssmBool)iomodel->f(NodeOnIceSheetEnum)[io_index]));
    6060        if (iomodel->numbernodetoelementconnectivity) this->inputs->AddInput(new IntInput(NumberNodeToElementConnectivityEnum,(IssmInt)iomodel->numbernodetoelementconnectivity[io_index]));
    6161        if (analysis_type==DiagnosticHorizAnalysisEnum) this->inputs->AddInput(new IntInput(ApproximationEnum,(IssmInt)iomodel->f(VerticesTypeEnum)[io_index]));
     
    6464
    6565        /*spc all nodes on water*/
    66         if (!iomodel->IsLoaded(NodeOnWaterEnum)) _error_("iomodel->nodeonwater is NULL");
     66        if (!iomodel->f(NodeOnWaterEnum)) _error_("iomodel->nodeonwater is NULL");
    6767        if (iomodel->f(NodeOnWaterEnum)[io_index]){
    6868                for(k=1;k<=gsize;k++){
     
    7575                if (dim==3){
    7676                        /*We have a  3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */
    77                         if (!iomodel->IsLoaded(NodeOnBedEnum)) _error_("iomodel->nodeonbed is NULL");
    78                         if (!iomodel->IsLoaded(VerticesTypeEnum)) _error_("iomodel->vertices_type is NULL");
     77                        if (!iomodel->f(NodeOnBedEnum)) _error_("iomodel->nodeonbed is NULL");
     78                        if (!iomodel->f(VerticesTypeEnum)) _error_("iomodel->vertices_type is NULL");
    7979                        if (iomodel->f(VerticesTypeEnum)[io_index]==MacAyealApproximationEnum && !iomodel->f(NodeOnBedEnum)[io_index]){
    8080                                for(k=1;k<=gsize;k++) this->FreezeDof(k);
     
    9292                }
    9393                /*spc all nodes on hutter*/
    94                 if (!iomodel->IsLoaded(NodeOnHutterEnum)) _error_("iomodel->nodeonhutter is NULL");
     94                if (!iomodel->f(NodeOnHutterEnum)) _error_("iomodel->nodeonhutter is NULL");
    9595                if (iomodel->f(NodeOnHutterEnum)[io_index]){
    9696                        for(k=1;k<=gsize;k++){
     
    104104        if (analysis_type==DiagnosticHutterAnalysisEnum){
    105105                /*Constrain all nodes that are not Hutter*/
    106                 if (!iomodel->IsLoaded(NodeOnHutterEnum)) _error_("iomodel->nodeonhutter is NULL");
     106                if (!iomodel->f(NodeOnHutterEnum)) _error_("iomodel->nodeonhutter is NULL");
    107107                if (!iomodel->f(NodeOnHutterEnum)[io_index]){
    108108                        for(k=1;k<=gsize;k++){
Note: See TracChangeset for help on using the changeset viewer.