Changeset 25080
- Timestamp:
- 06/19/20 17:51:42 (5 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/GiaAnalysis.cpp
r25066 r25080 44 44 } 45 45 else if(giamodel==3){ 46 int nummodels=0; 47 iomodel->FetchData(&nummodels,"md.gia.nummodels"); 48 if(nummodels){ 49 /*take Ngia and Ugia from the offline models and plug into the element inputs:*/ 50 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.gia.Ngia",GiaMmeNgiaEnum); 51 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.gia.Ugia",GiaMmeUgiaEnum); 52 } 53 else{ 54 /*we have been provided no models, just an zero array, use it to fill NGiaRate and UGiaRate:*/ 55 iomodel->FetchDataToInput(inputs2,elements,"md.gia.Ngia",NGiaRateEnum); 56 iomodel->FetchDataToInput(inputs2,elements,"md.gia.Ugia",UGiaRateEnum); 57 } 46 /*take Ngia and Ugia from the offline models and plug into the element inputs:*/ 47 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.gia.Ngia",GiaMmeNgiaEnum); 48 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.gia.Ugia",GiaMmeUgiaEnum); 58 49 } 59 50 }/*}}}*/ … … 82 73 parameters->FindParam(&nummodels,GiaNummodelsEnum); 83 74 84 if(nummodels){ 85 iomodel->FetchData(&modelid,"md.gia.modelid"); 86 /*create double param, not int param, because Dakota will be updating it as 87 * a double potentially: */ 88 parameters->AddObject(new DoubleParam(GiaModelidEnum,modelid)); 75 /*create double param, not int param, because Dakota will be updating it as 76 * a double potentially: */ 77 iomodel->FetchData(&modelid,"md.gia.modelid"); 78 parameters->AddObject(new DoubleParam(GiaModelidEnum,modelid)); 89 79 90 /*quick checks: */ 91 if(nummodels<=0)_error_("giamme object in md.gia field should contain at least 1 ensemble model!"); 92 if(modelid<=0 || modelid>nummodels)_error_("modelid field in giamme object of md.gia field should be between 1 and the number of ensemble runs!"); 93 } 80 /*quick checks: */ 81 if(nummodels<=0)_error_("giamme object in md.gia field should contain at least 1 ensemble model!"); 82 if(modelid<=0 || modelid>nummodels)_error_("modelid field in giamme object of md.gia field should be between 1 and the number of ensemble runs!"); 94 83 } 95 84 -
issm/trunk-jpl/src/c/cores/gia_core.cpp
r25066 r25080 71 71 else if(giamodel==3){ //GiaMme 72 72 73 /*Go grab the values for Ngia and Ugia in the offline GiaMme class:*/ 74 femmodel->parameters->FindParam(&modelid,GiaModelidEnum); 75 modelid--; //from matlab 73 76 74 /*Go grab the values for Ngia and Ugia in the offline GiaMme class:*/ 75 femmodel->parameters->FindParam(&nummodels,GiaNummodelsEnum); 76 if(nummodels){ 77 femmodel->parameters->FindParam(&modelid,GiaModelidEnum); 78 modelid--; //from matlab 77 /*find the Ngia and Ugia dataset:*/ 78 DatasetInput2* dataset_input_ngia=femmodel->inputs2->GetDatasetInput2(GiaMmeNgiaEnum); 79 DatasetInput2* dataset_input_ugia=femmodel->inputs2->GetDatasetInput2(GiaMmeUgiaEnum); 80 /*Go find the modelid'th input:*/ 81 TriaInput2* tria_input_ngia=dataset_input_ngia->GetTriaInputByOffset(modelid); 82 TriaInput2* tria_input_ugia=dataset_input_ugia->GetTriaInputByOffset(modelid); 79 83 80 /*find the Ngia and Ugia dataset:*/ 81 DatasetInput2* dataset_input_ngia=femmodel->inputs2->GetDatasetInput2(GiaMmeNgiaEnum); 82 DatasetInput2* dataset_input_ugia=femmodel->inputs2->GetDatasetInput2(GiaMmeUgiaEnum); 83 /*Go find the modelid'th input:*/ 84 TriaInput2* tria_input_ngia=dataset_input_ngia->GetTriaInputByOffset(modelid); 85 TriaInput2* tria_input_ugia=dataset_input_ugia->GetTriaInputByOffset(modelid); 86 87 /*Plug into SealevelUGiaRate and SealevelNGiaRate inputs:*/ 88 Input2* tria_input_copy_ngia=tria_input_ngia->copy(); 89 Input2* tria_input_copy_ugia=tria_input_ugia->copy(); 90 tria_input_copy_ngia->ChangeEnum(NGiaRateEnum); 91 tria_input_copy_ugia->ChangeEnum(UGiaRateEnum); 92 femmodel->inputs2->AddInput(tria_input_copy_ngia); 93 femmodel->inputs2->AddInput(tria_input_copy_ugia); 94 } 84 /*Plug into SealevelUGiaRate and SealevelNGiaRate inputs:*/ 85 Input2* tria_input_copy_ngia=tria_input_ngia->copy(); 86 Input2* tria_input_copy_ugia=tria_input_ugia->copy(); 87 tria_input_copy_ngia->ChangeEnum(NGiaRateEnum); 88 tria_input_copy_ugia->ChangeEnum(UGiaRateEnum); 89 femmodel->inputs2->AddInput(tria_input_copy_ngia); 90 femmodel->inputs2->AddInput(tria_input_copy_ugia); 95 91 } 96 92 -
issm/trunk-jpl/src/m/classes/giamme.m
r25066 r25080 50 50 disp(sprintf(' gia mme parameters:')); 51 51 fielddisplay(self,'modelid','index into the multi-model ensemble, determines which field will be used.'); 52 fielddisplay(self,'Ngia','geoid (m /yr).');53 fielddisplay(self,'Ugia','uplift (m /yr).');52 fielddisplay(self,'Ngia','geoid (mm/yr).'); 53 fielddisplay(self,'Ugia','uplift (mm/yr).'); 54 54 end % }}} 55 55 function marshall(self,prefix,md,fid) % {{{ 56 57 56 WriteData(fid,prefix,'name','md.gia.model','data',3,'format','Integer'); 58 WriteData(fid,prefix,'name','md.gia.nummodels','data',size(self.Ngia,2),'format','Integer');59 WriteData(fid,prefix,'object',self,'fieldname','modelid','format','Double');60 57 if size(self.Ngia,2)==0, 61 58 WriteData(fid,prefix,'data',zeros(md.mesh.numberofvertices,1),'format','DoubleMat','mattype',1,'name','md.gia.Ngia'); 62 59 WriteData(fid,prefix,'data',zeros(md.mesh.numberofvertices,1),'format','DoubleMat','mattype',1,'name','md.gia.Ugia'); 60 WriteData(fid,prefix,'data',1,'name','modelid','format','Double'); 61 WriteData(fid,prefix,'name','md.gia.nummodels','data',1,'format','Integer'); 63 62 else 64 WriteData(fid,prefix,'object',self,'fieldname','Ngia','format','DoubleMat'); 65 WriteData(fid,prefix,'object',self,'fieldname','Ugia','format','DoubleMat'); 63 WriteData(fid,prefix,'object',self,'fieldname','Ngia','format','DoubleMat','scale',1/1000); 64 WriteData(fid,prefix,'object',self,'fieldname','Ugia','format','DoubleMat','scale',1/1000); 65 WriteData(fid,prefix,'object',self,'fieldname','modelid','format','Double'); 66 WriteData(fid,prefix,'name','md.gia.nummodels','data',size(self.Ngia,2),'format','Integer'); 66 67 end 67 68 end % }}}
Note:
See TracChangeset
for help on using the changeset viewer.