Changeset 8592
- Timestamp:
- 06/09/11 15:22:09 (14 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 3 added
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Container/DataSet.cpp
r8378 r8592 252 252 dataset->AddObject(controlinputinput);} 253 253 break; 254 case DatasetInputEnum:{ 255 DatasetInput* datasetinputinput=NULL; 256 datasetinputinput=new DatasetInput(); 257 datasetinputinput->Demarshall(&marshalled_dataset); 258 dataset->AddObject(datasetinputinput);} 259 break; 254 260 case TriaVertexElementResultEnum:{ 255 261 TriaVertexElementResult* triavertexelementresult=NULL; -
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r8582 r8592 455 455 ReferenceTemperatureEnum, 456 456 ThicknessAbsGradientEnum, 457 VelAbsGradientEnum 457 VelAbsGradientEnum, 458 DatasetInputEnum 458 459 }; 459 460 -
issm/trunk/src/c/Makefile.am
r8483 r8592 220 220 ./objects/Inputs/ControlInput.h\ 221 221 ./objects/Inputs/ControlInput.cpp\ 222 ./objects/Inputs/DatasetInput.h\ 223 ./objects/Inputs/DatasetInput.cpp\ 222 224 ./objects/Elements/Penta.h\ 223 225 ./objects/Elements/Penta.cpp\ … … 887 889 ./objects/Inputs/ControlInput.h\ 888 890 ./objects/Inputs/ControlInput.cpp\ 891 ./objects/Inputs/DatasetInput.h\ 892 ./objects/Inputs/DatasetInput.cpp\ 889 893 ./objects/Elements/Penta.h\ 890 894 ./objects/Elements/Penta.cpp\ -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r8582 r8592 399 399 case ThicknessAbsGradientEnum : return "ThicknessAbsGradient"; 400 400 case VelAbsGradientEnum : return "VelAbsGradient"; 401 case DatasetInputEnum : return "DatasetInput"; 401 402 default : return "unknown"; 402 403 -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r8582 r8592 397 397 else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum; 398 398 else if (strcmp(name,"VelAbsGradient")==0) return VelAbsGradientEnum; 399 else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum; 399 400 else _error_("Enum %s not found",name); 400 401 -
issm/trunk/src/c/objects/Elements/Penta.cpp
r8500 r8592 4599 4599 4600 4600 if(control_type[i]==RheologyBbarEnum){ 4601 if (!IsOnBed()) return;4601 if (!IsOnBed()) goto cleanup_and_return; 4602 4602 input=(Input*)matice->inputs->GetInput(RheologyBEnum); _assert_(input); 4603 4603 } … … 4618 4618 4619 4619 /*Clean up and return*/ 4620 cleanup_and_return: 4620 4621 xfree((void**)&control_type); 4621 4622 } … … 4946 4947 for(i=0;i<6;i++)nodeinputs[i]=iomodel->vz_obs[penta_vertex_ids[i]-1]/iomodel->yts; 4947 4948 this->inputs->AddInput(new PentaVertexInput(VzObsEnum,nodeinputs)); 4948 }4949 if (iomodel->weights) {4950 for(i=0;i<6;i++)nodeinputs[i]=iomodel->weights[penta_vertex_ids[i]-1];4951 this->inputs->AddInput(new PentaVertexInput(WeightsEnum,nodeinputs));4952 4949 } 4953 4950 if (iomodel->elementoniceshelf) this->inputs->AddInput(new BoolInput(ElementOnIceShelfEnum,(IssmBool)iomodel->elementoniceshelf[index])); … … 5031 5028 } 5032 5029 5030 /*DatasetInputs*/ 5031 if (iomodel->weights) { 5032 5033 /*Create inputs and add to DataSetInput*/ 5034 DatasetInput* datasetinput=new DatasetInput(WeightsEnum); 5035 for(j=0;j<iomodel->num_cm_responses;j++){ 5036 for(i=0;i<6;i++)nodeinputs[i]=iomodel->weights[penta_vertex_ids[i]-1]; 5037 datasetinput->inputs->AddObject(new PentaVertexInput(WeightsEnum,nodeinputs)); 5038 } 5039 5040 /*Add datasetinput to element inputs*/ 5041 this->inputs->AddInput(datasetinput); 5042 } 5033 5043 } 5034 5044 /*}}}*/ -
issm/trunk/src/c/objects/Elements/Tria.cpp
r8567 r8592 1630 1630 thickness_input->GetParameterDerivativeValue(&dH[0],&xyz_list[0][0],gauss); 1631 1631 thicknessobs_input->GetParameterValue(&thicknessobs, gauss); 1632 weights_input->GetParameterValue(&weight, gauss );1632 weights_input->GetParameterValue(&weight, gauss,0); 1633 1633 1634 1634 for(i=0;i<numdof;i++) pe->values[i]+=(thicknessobs-thickness)*weight*Jdet*gauss->weight*l1l2l3[i]; … … 1677 1677 GetParameterListOnVertices(&vx_list[0],VxEnum); 1678 1678 GetParameterListOnVertices(&vy_list[0],VyEnum); 1679 GetParameterListOnVertices(&weights_list[0],WeightsEnum );1679 GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0); 1680 1680 inputs->GetParameterValue(&response,CmResponseEnum); 1681 1681 if(response==SurfaceAverageVelMisfitEnum){ … … 1857 1857 GetParameterListOnVertices(&vx_list[0],VxEnum); 1858 1858 GetParameterListOnVertices(&vy_list[0],VyEnum); 1859 GetParameterListOnVertices(&weights_list[0],WeightsEnum );1859 GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0); 1860 1860 inputs->GetParameterValue(&response,CmResponseEnum); 1861 1861 if(response==SurfaceAverageVelMisfitEnum){ … … 2184 2184 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 2185 2185 Input* surface_mass_balance_input=inputs->GetInput(SurfaceMassBalanceEnum); _assert_(surface_mass_balance_input); 2186 Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum); 2187 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input);2186 Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum); _assert_(basal_melting_input); 2187 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 2188 2188 2189 2189 /* Start looping on the number of gaussian points: */ … … 2558 2558 gauss->GaussVertex(iv); 2559 2559 input->GetParameterValue(&pvalue[iv],gauss); 2560 } 2561 } 2562 else{ 2563 for (int iv=0;iv<NUMVERTICES;iv++) pvalue[iv]=defaultvalue; 2564 } 2565 2566 /*clean-up*/ 2567 delete gauss; 2568 } 2569 /*}}}*/ 2570 /*FUNCTION Tria::GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue,int index) TO BE REMOVED{{{1*/ 2571 void Tria::GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue,int index){ 2572 2573 double value[NUMVERTICES]; 2574 GaussTria *gauss = NULL; 2575 Input *input = inputs->GetInput(enumtype); 2576 2577 /*Checks in debugging mode*/ 2578 _assert_(pvalue); 2579 2580 /* Start looping on the number of vertices: */ 2581 if (input){ 2582 gauss=new GaussTria(); 2583 for (int iv=0;iv<NUMVERTICES;iv++){ 2584 gauss->GaussVertex(iv); 2585 input->GetParameterValue(&pvalue[iv],gauss,index); 2560 2586 } 2561 2587 } … … 3518 3544 this->inputs->AddInput(new TriaVertexInput(VzObsEnum,nodeinputs)); 3519 3545 } 3520 if (iomodel->weights) { 3521 for(i=0;i<3;i++)nodeinputs[i]=iomodel->weights[tria_vertex_ids[i]-1]; 3522 this->inputs->AddInput(new TriaVertexInput(WeightsEnum,nodeinputs)); 3523 } 3546 3524 3547 if (iomodel->elementoniceshelf) this->inputs->AddInput(new BoolInput(ElementOnIceShelfEnum,(IssmBool)iomodel->elementoniceshelf[index])); 3525 3548 if (iomodel->elementonbed) this->inputs->AddInput(new BoolInput(ElementOnBedEnum,(IssmBool)iomodel->elementonbed[index])); … … 3570 3593 } 3571 3594 } 3595 3596 /*DatasetInputs*/ 3597 if (iomodel->weights) { 3598 3599 /*Create inputs and add to DataSetInput*/ 3600 DatasetInput* datasetinput=new DatasetInput(WeightsEnum); 3601 for(j=0;j<iomodel->num_cm_responses;j++){ 3602 for(i=0;i<3;i++)nodeinputs[i]=iomodel->weights[tria_vertex_ids[i]-1]; 3603 datasetinput->inputs->AddObject(new TriaVertexInput(WeightsEnum,nodeinputs)); 3604 } 3605 3606 /*Add datasetinput to element inputs*/ 3607 this->inputs->AddInput(datasetinput); 3608 } 3572 3609 } 3573 3610 /*}}}*/ … … 4831 4868 GetParameterListOnVertices(&vx_list[0],VxEnum); 4832 4869 GetParameterListOnVertices(&vy_list[0],VyEnum); 4833 GetParameterListOnVertices(&weights_list[0],WeightsEnum );4870 GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0); 4834 4871 4835 4872 /*retrieve some parameters: */ … … 4941 4978 GetParameterListOnVertices(&vx_list[0],VxEnum); 4942 4979 GetParameterListOnVertices(&vy_list[0],VyEnum); 4943 GetParameterListOnVertices(&weights_list[0],WeightsEnum );4980 GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0); 4944 4981 4945 4982 /*retrieve some parameters: */ … … 5021 5058 GetParameterListOnVertices(&vx_list[0],VxEnum); 5022 5059 GetParameterListOnVertices(&vy_list[0],VyEnum); 5023 GetParameterListOnVertices(&weights_list[0],WeightsEnum );5060 GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0); 5024 5061 5025 5062 /*retrieve some parameters: */ … … 5104 5141 GetParameterListOnVertices(&vx_list[0],VxEnum); 5105 5142 GetParameterListOnVertices(&vy_list[0],VyEnum); 5106 GetParameterListOnVertices(&weights_list[0],WeightsEnum );5143 GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0); 5107 5144 5108 5145 /*retrieve some parameters: */ … … 5206 5243 5207 5244 /* Recover input data: */ 5245 GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0); 5208 5246 GetParameterListOnVertices(&obs_vx_list[0],VxObsEnum); 5209 5247 GetParameterListOnVertices(&obs_vy_list[0],VyObsEnum); 5210 5248 GetParameterListOnVertices(&vx_list[0],VxEnum); 5211 5249 GetParameterListOnVertices(&vy_list[0],VyEnum); 5212 GetParameterListOnVertices(&weights_list[0],WeightsEnum);5213 5250 5214 5251 /*retrieve some parameters: */ … … 5304 5341 thickness_input->GetParameterDerivativeValue(&dH[0],&xyz_list[0][0],gauss); 5305 5342 thicknessobs_input->GetParameterValue(&thicknessobs,gauss); 5306 weights_input->GetParameterValue(&weight,gauss );5343 weights_input->GetParameterValue(&weight,gauss,0); 5307 5344 5308 5345 /*compute ThicknessAbsMisfit*/ -
issm/trunk/src/c/objects/Elements/Tria.h
r8418 r8592 178 178 void GetParameterListOnVertices(double* pvalue,int enumtype); 179 179 void GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue); 180 void GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue,int index); //TO BE REMOVED 180 181 void GetParameterValue(double* pvalue,Node* node,int enumtype); 181 182 void GetSolutionFromInputsDiagnosticHoriz(Vec solution); -
issm/trunk/src/c/objects/Inputs/BoolInput.h
r8363 r8592 53 53 void GetParameterValue(double* pvalue,GaussTria* gauss); 54 54 void GetParameterValue(double* pvalue,GaussPenta* gauss); 55 void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");}; 56 void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");}; 55 57 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss); 56 58 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss); -
issm/trunk/src/c/objects/Inputs/ControlInput.h
r8386 r8592 57 57 void GetParameterValue(double* pvalue,GaussTria* gauss); 58 58 void GetParameterValue(double* pvalue,GaussPenta* gauss); 59 void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");}; 60 void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");}; 59 61 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss); 60 62 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss); -
issm/trunk/src/c/objects/Inputs/DoubleInput.h
r8363 r8592 52 52 void GetParameterValue(double* pvalue,GaussTria* gauss); 53 53 void GetParameterValue(double* pvalue,GaussPenta* gauss); 54 void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");}; 55 void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");}; 54 56 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss); 55 57 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss); -
issm/trunk/src/c/objects/Inputs/Input.h
r8363 r8592 28 28 virtual void GetParameterValue(double* pvalue,GaussTria* gauss)=0; 29 29 virtual void GetParameterValue(double* pvalue,GaussPenta* gauss)=0; 30 virtual void GetParameterValue(double* pvalue,GaussTria* gauss ,int index)=0; 31 virtual void GetParameterValue(double* pvalue,GaussPenta* gauss,int index)=0; 30 32 virtual void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss)=0; 31 33 virtual void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss)=0; -
issm/trunk/src/c/objects/Inputs/IntInput.h
r8363 r8592 53 53 void GetParameterValue(double* pvalue,GaussTria* gauss); 54 54 void GetParameterValue(double* pvalue,GaussPenta* gauss); 55 void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");}; 56 void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");}; 55 57 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss); 56 58 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss); -
issm/trunk/src/c/objects/Inputs/PentaVertexForcing.h
r8376 r8592 58 58 void GetParameterValue(double* pvalue,GaussTria* gauss); 59 59 void GetParameterValue(double* pvalue,GaussPenta* gauss){_error_("not implemented yet");}; 60 void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");}; 61 void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");}; 60 62 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss); 61 63 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");}; -
issm/trunk/src/c/objects/Inputs/PentaVertexInput.h
r8363 r8592 53 53 void GetParameterValue(double* pvalue,GaussTria* gauss){_error_("not implemented yet");}; 54 54 void GetParameterValue(double* pvalue,GaussPenta* gauss); 55 void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");}; 56 void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");}; 55 57 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; 56 58 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss); -
issm/trunk/src/c/objects/Inputs/TriaVertexForcing.h
r8363 r8592 58 58 void GetParameterValue(double* pvalue,GaussTria* gauss); 59 59 void GetParameterValue(double* pvalue,GaussPenta* gauss){_error_("not implemented yet");}; 60 void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");}; 61 void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");}; 60 62 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss); 61 63 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");}; -
issm/trunk/src/c/objects/Inputs/TriaVertexInput.h
r8363 r8592 53 53 void GetParameterValue(double* pvalue,GaussTria* gauss); 54 54 void GetParameterValue(double* pvalue,GaussPenta* gauss){_error_("not implemented yet");}; 55 void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");}; 56 void GetParameterValue(double* pvalue,GaussPenta* gauss,int index){_error_("not implemented yet");}; 55 57 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss); 56 58 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");}; -
issm/trunk/src/c/objects/IoModel.cpp
r8561 r8592 169 169 /*Get control parameters: */ 170 170 IoModelFetchData(&this->num_control_type,iomodel_handle,"num_control_type"); 171 IoModelFetchData(&this->num_cm_responses,iomodel_handle,"num_cm_responses"); 171 172 172 173 /*!Get solution parameters: */ -
issm/trunk/src/c/objects/IoModel.h
r8561 r8592 133 133 134 134 /*control methods: */ 135 int num_cm_responses; 135 136 int num_control_type; 136 137 double* control_type; -
issm/trunk/src/c/objects/objects.h
r8468 r8592 89 89 #include "./Inputs/TriaVertexForcing.h" 90 90 #include "./Inputs/ControlInput.h" 91 #include "./Inputs/DatasetInput.h" 91 92 92 93 /*ElementResults: */ -
issm/trunk/src/m/classes/version/7.6/model.m
r8587 r8592 223 223 control_analysis=0; 224 224 control_type=0; 225 num_control_type=0;226 225 weights=[]; 227 226 nsteps=0; … … 252 251 %debugging 253 252 verbose=0; 254 verbose_binary=0;255 253 element_debug=0; 256 254 element_debugid=NaN; … … 399 397 accumulation_rate; 400 398 hydro_gamma; 399 num_control_type; 400 verbose_binary; 401 401 % }}} 402 402 end -
issm/trunk/src/m/classes/version/7.7/model.m
r8587 r8592 223 223 control_analysis=0; 224 224 control_type=0; 225 num_control_type=0;226 225 weights=[]; 227 226 nsteps=0; … … 252 251 %debugging 253 252 verbose=0; 254 verbose_binary=0;255 253 element_debug=0; 256 254 element_debugid=NaN; … … 399 397 accumulation_rate; 400 398 hydro_gamma; 399 num_control_type; 400 verbose_binary; 401 401 % }}} 402 402 end -
issm/trunk/src/m/model/marshall.m
r8562 r8592 34 34 WriteData(fid,md.nodeonhutter,'Mat','nodeonhutter'); 35 35 WriteData(fid,md.nodeonmacayeal,'Mat','nodeonmacayeal'); 36 37 36 if md.dim==3, 38 37 WriteData(fid,md.numberofelements2d,'Integer','numberofelements2d'); … … 51 50 WriteData(fid,md.borderstokes,'Mat','borderstokes'); 52 51 53 54 52 WriteData(fid,md.thickness,'Mat','thickness'); 55 53 WriteData(fid,md.thickness_coeff,'Mat','thickness_coeff'); … … 67 65 WriteData(fid,md.temperature,'Mat','temperature'); 68 66 WriteData(fid,md.waterfraction,'Mat','waterfraction'); 69 70 67 71 68 WriteData(fid,md.drag_type,'Integer','drag_type'); … … 154 151 %Control methods 155 152 WriteData(fid,md.control_analysis,'Integer','control_analysis'); 156 WriteData(fid,md.num_control_type,'Integer','num_control_type'); 153 WriteData(fid,numel(md.control_type),'Integer','num_control_type'); 154 WriteData(fid,size(md.cm_responses,2),'Integer','num_cm_responses'); 157 155 WriteData(fid,md.control_type,'Mat','control_type'); 158 156 … … 164 162 WriteData(fid,md.meanvel,'Scalar','meanvel'); 165 163 WriteData(fid,md.epsvel,'Scalar','epsvel'); 166 WriteData(fid, md.verbose_binary,'Integer','verbose_binary');164 WriteData(fid,VerboseToBinary(md.verbose),'Integer','verbose_binary'); 167 165 WriteData(fid,md.output_frequency,'Integer','output_frequency'); 168 166 WriteData(fid,md.artificial_diffusivity,'Integer','artificial_diffusivity'); -
issm/trunk/src/m/model/presolve.m
r8330 r8592 8 8 md.inputfilename=[md.name '.bin']; 9 9 md.outputfilename=[md.name '.outbin']; 10 11 %verbose;12 md.verbose_binary=VerboseToBinary(md.verbose);13 14 %deal with control methods15 if ~md.control_analysis16 md.num_control_type=0;17 else18 md.num_control_type=numel(md.control_type);19 end20 10 21 11 %deal with rifts. -
issm/trunk/src/m/solutions/NewFemModel.m
r8330 r8592 10 10 11 11 %Set verbosity 12 SetVerbosityLevel( md.verbose_binary);12 SetVerbosityLevel(VerboseToBinary(md.verbose)); 13 13 14 14 %Dynamically allocate whatever is a list of length nummodels: */ -
issm/trunk/src/mex/Makefile.am
r8468 r8592 28 28 InputControlUpdate \ 29 29 InputConvergence\ 30 GetPId\31 30 GetSolutionFromInputs\ 32 31 GetVectorFromInputs\ … … 177 176 StringToEnum/StringToEnum.h 178 177 179 GetPId_SOURCES = GetPId/GetPId.cpp\180 GetPId/GetPId.h181 182 178 GetSolutionFromInputs_SOURCES = GetSolutionFromInputs/GetSolutionFromInputs.cpp\ 183 179 GetSolutionFromInputs/GetSolutionFromInputs.h
Note:
See TracChangeset
for help on using the changeset viewer.