Ignore:
Timestamp:
06/08/20 22:58:53 (5 years ago)
Author:
Eric.Larour
Message:

CHG: more integration of partition vectors into variables. Slowly stepping
away from the qmu.vpartition vector paradigm, not yet fully though.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp

    r24450 r24988  
    1313        /*variable declarations*/
    1414        int          i;
    15         double      *vpart                  = NULL;
    16         double      *epart                  = NULL;
    17         int          npart;
    1815        char       **responsedescriptors    = NULL;
    1916        int          numresponsedescriptors;
     
    3532        int   numberofresponses;
    3633        int   nrows,ncols;
     34
     35        //variable partitions:
     36        IssmDouble **array                      = NULL;
     37        int         *mdims_array                = NULL;
     38        int         *ndims_array                = NULL;
     39        int          num_partitions;
    3740
    3841        /*recover parameters: */
     
    7073                /*Load partitioning vectors (both vertex and element based: */
    7174                parameters->AddObject(iomodel->CopyConstantObject("md.qmu.numberofpartitions",QmuNumberofpartitionsEnum));
    72                 iomodel->FetchData(&vpart,&npart,NULL,"md.qmu.vpartition"); if(!vpart) _error_("md.qmu.vpartition is empty");
    73                 parameters->AddObject(new DoubleVecParam(QmuVpartitionEnum,vpart,npart));
    7475               
    75                 iomodel->FetchData(&epart,&npart,NULL,"md.qmu.epartition"); if(!epart) _error_("md.qmu.epartition is empty");
    76                 parameters->AddObject(new DoubleVecParam(QmuEpartitionEnum,epart,npart));
     76                /*Load partitioning vectors specific to variables:*/
     77                iomodel->FetchData(&array,&mdims_array,&ndims_array,&num_partitions,"md.qmu.variablepartitions");
     78                parameters->AddObject(new DoubleMatArrayParam(QmuVariablePartitionsEnum,array,num_partitions,mdims_array,ndims_array));
     79
    7780
    7881                /*Deal with data needed because of qmu variables*/
     
    114117                }
    115118                xDelete<char*>(variabledescriptors);
    116                 xDelete<double>(vpart);
    117                 xDelete<double>(epart);
    118119                xDelete<char>(qmuinname);
    119120                xDelete<char>(qmuerrname);
    120121                xDelete<char>(qmuoutname);
     122
     123                for(i=0;i<num_partitions;i++){
     124                        IssmDouble* matrix=array[i];
     125                        xDelete<IssmDouble>(matrix);
     126                }
     127                xDelete<int>(mdims_array);
     128                xDelete<int>(ndims_array);
     129                xDelete<IssmDouble*>(array);
     130
    121131        }
    122132
Note: See TracChangeset for help on using the changeset viewer.