Changeset 24578


Ignore:
Timestamp:
02/25/20 10:48:50 (5 years ago)
Author:
Mathieu Morlighem
Message:

CHG: fixing DatasetInputCreate

Location:
issm/trunk-jpl/src/c/classes/Elements
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r24487 r24578  
    228228void       Penta::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs2* inputs2,IoModel* iomodel,int input_enum){/*{{{*/
    229229
    230         _error_("not implemeted");
    231         IssmDouble nodeinputs[NUMVERTICES];
    232         if(num_inputs<1) _error_("Cannot create a DatasetInput of size <1");
    233         if(M!=iomodel->numberofvertices) _error_("not supported yet");
    234         if(N!=num_inputs) _error_("sizes are not consistent");
    235 
    236         int penta_vertex_ids[NUMVERTICES];
    237 
    238         for(int k=0;k<6;k++){
    239                 penta_vertex_ids[k]=reCast<int>(iomodel->elements[6*this->Sid()+k]); //ids for vertices are in the elements array from Matlab
    240         }
    241         /*Create inputs and add to DataSetInput*/
    242 //      DatasetInput* datasetinput=new DatasetInput(input_enum);
    243 //      for(int i=0;i<num_inputs;i++){
    244 //              for(int j=0;j<NUMVERTICES;j++)nodeinputs[j]=array[(penta_vertex_ids[j]-1)*N+i];
    245 //              _error_("not supported");
    246 //              //datasetinput->AddInput(new PentaInput(input_enum,nodeinputs,P1Enum),individual_enums[i]);
    247 //      }
    248 
    249         /*Add datasetinput to element inputs*/
    250         //this->inputs->AddInput(datasetinput);
     230        _error_("Look at Tria :)");
    251231}
    252232/*}}}*/
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r24565 r24578  
    232232void       Tria::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs2* inputs2,IoModel* iomodel,int input_enum){/*{{{*/
    233233
     234        /*Intermediaries*/
    234235        IssmDouble nodeinputs[NUMVERTICES];
    235         if(num_inputs<1) _error_("Cannot create a DatasetInput of size <1");
    236         if(M!=iomodel->numberofvertices) _error_("not supported yet");
    237         if(N!=num_inputs) _error_("sizes are not consistent");
    238 
    239         int  tria_vertex_ids[3];
    240 
    241         for(int k=0;k<3;k++){
    242                 tria_vertex_ids[k]=reCast<int>(iomodel->elements[3*this->Sid()+k]); //ids for vertices are in the elements array from Matlab
    243         }
     236        int        vertexlids[NUMVERTICES];
     237
     238        /*Some sanity checks*/
     239        if(num_inputs<1)                 _error_("Cannot create a DatasetInput of size <1");
     240        if(M!=iomodel->numberofvertices) _error_("Input size not supported yet");
     241        if(N!=num_inputs)                _error_("Sizes are not consistent");
     242
     243        /*Get indices*/
     244        _assert_(iomodel->elements);
     245        for(int i=0;i<NUMVERTICES;i++){
     246                int vertexid =reCast<int>(iomodel->elements[NUMVERTICES*this->Sid()+i]); //ids for vertices are in the elements array from Matlab
     247
     248                vertexlids[i]=iomodel->my_vertices_lids[vertexid-1];
     249                nodeinputs[i]=array[vertexid*N+i];
     250        }
     251
    244252        /*Create inputs and add to DataSetInput*/
    245         //DatasetInput* datasetinput=new DatasetInput(input_enum);
    246253        for(int i=0;i<num_inputs;i++){
    247                 for(int j=0;j<NUMVERTICES;j++)nodeinputs[j]=array[(tria_vertex_ids[j]-1)*N+i];
    248                 _error_("not supported");
    249                 //datasetinput->AddInput(new TriaInput(input_enum,nodeinputs,P1Enum),individual_enums[i]);
    250         }
    251 
    252         /*Add datasetinput to element inputs*/
    253         //this->inputs->AddInput(datasetinput);
     254                this->inputs2->SetTriaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs); break;
     255        }
    254256}
    255257/*}}}*/
Note: See TracChangeset for help on using the changeset viewer.