Changeset 25257


Ignore:
Timestamp:
07/10/20 17:08:57 (5 years ago)
Author:
Eric.Larour
Message:

CHG: if code 8 comes in, ignore it, don't error out. So we can do UQ based on mme
classes.

File:
1 edited

Legend:

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

    r25019 r25257  
    114114                for(i=0;i<numvariabledescriptors;i++){
    115115                        if (strncmp(variabledescriptors[i],"scaled_",7)==0){
    116                                 /*Ok, we are dealing with a variable that is distributed over nodes. Recover the name of the variable (ex: scaled_Thickness): */
     116                                int code;
     117
     118                                /*Ok, we are dealing with a variable that is distributed over nodes or elements. Recover the name of the variable (ex: scaled_Thickness): */
    117119                                sscanf(variabledescriptors[i],"scaled_%s",tag);
    118120
     
    122124                                FieldAndEnumFromCode(&param_enum,&fieldname,tag);
    123125
    124                                 /*Recover data: */
    125                                 iomodel->FetchData(&dakota_parameter,&nrows,&ncols,fieldname);
    126                                 if(nrows==iomodel->numberofvertices){
    127                                         dataset_variable_descriptors->AddObject(new DoubleMatParam(param_enum,dakota_parameter,nrows,ncols));
     126                                iomodel->SetFilePointerToData(&code,NULL,fieldname);
     127                                if(code==8) dataset_variable_descriptors->AddObject(new DoubleParam(param_enum,8)); //skip MatArray inputs, as we don't know which input will be scaled yet!
     128                                else{
     129                                        /*recover more classic data, arrays and scalar mainly:*/
     130                                        iomodel->FetchData(&dakota_parameter,&nrows,&ncols,fieldname);
     131                                        if(nrows==iomodel->numberofvertices || nrows==iomodel->numberofelements){
     132                                                dataset_variable_descriptors->AddObject(new DoubleMatParam(param_enum,dakota_parameter,nrows,ncols));
     133                                        }
     134                                        else{
     135                                                dataset_variable_descriptors->AddObject(new DoubleTransientMatParam(param_enum,dakota_parameter,nrows,ncols));
     136                                        }
     137                                        xDelete<double>(dakota_parameter);
    128138                                }
    129                                 else{
    130                                         dataset_variable_descriptors->AddObject(new DoubleTransientMatParam(param_enum,dakota_parameter,nrows,ncols));
    131                                 }
    132                                 xDelete<double>(dakota_parameter);
    133139                                xDelete<char>(fieldname);
    134140                        }
Note: See TracChangeset for help on using the changeset viewer.