Changeset 25379
- Timestamp:
- 08/11/20 19:43:31 (5 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 25 deleted
- 148 edited
- 25 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r25066 r25379 318 318 ./modules/OutputDefinitionsResponsex/OutputDefinitionsResponsex.cpp \ 319 319 ./modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp \ 320 ./classes/Inputs 2/Inputs2.cpp \321 ./classes/Inputs 2/BoolInput2.cpp \322 ./classes/Inputs 2/DoubleInput2.cpp \323 ./classes/Inputs 2/IntInput2.cpp \324 ./classes/Inputs 2/ElementInput2.cpp \325 ./classes/Inputs 2/SegInput2.cpp \326 ./classes/Inputs 2/TriaInput2.cpp \327 ./classes/Inputs 2/PentaInput2.cpp \328 ./classes/Inputs 2/DatasetInput2.cpp \329 ./classes/Inputs 2/ControlInput2.cpp \330 ./classes/Inputs 2/TransientInput2.cpp \331 ./classes/Inputs 2/ArrayInput2.cpp320 ./classes/Inputs/Inputs.cpp \ 321 ./classes/Inputs/BoolInput.cpp \ 322 ./classes/Inputs/DoubleInput.cpp \ 323 ./classes/Inputs/IntInput.cpp \ 324 ./classes/Inputs/ElementInput.cpp \ 325 ./classes/Inputs/SegInput.cpp \ 326 ./classes/Inputs/TriaInput.cpp \ 327 ./classes/Inputs/PentaInput.cpp \ 328 ./classes/Inputs/DatasetInput.cpp \ 329 ./classes/Inputs/ControlInput.cpp \ 330 ./classes/Inputs/TransientInput.cpp \ 331 ./classes/Inputs/ArrayInput.cpp 332 332 #}}} 333 333 #ADJOINTMPI/MeDiPack sources {{{ -
issm/trunk-jpl/src/c/analyses/AdjointBalancethickness2Analysis.cpp
r25317 r25379 4 4 #include "../shared/shared.h" 5 5 #include "../modules/modules.h" 6 #include "../classes/Inputs 2/DatasetInput2.h"6 #include "../classes/Inputs/DatasetInput.h" 7 7 8 8 /*Model processor*/ … … 19 19 return 1; 20 20 }/*}}}*/ 21 void AdjointBalancethickness2Analysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/21 void AdjointBalancethickness2Analysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 22 22 _error_("not implemented yet"); 23 23 }/*}}}*/ … … 66 66 element->FindParam(&num_responses,InversionNumCostFunctionsEnum); 67 67 element->FindParam(&responses,NULL,InversionCostFunctionsEnum); 68 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);69 Input 2* surfaceobs_input = element->GetInput2(InversionSurfaceObsEnum); _assert_(surfaceobs_input);70 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);71 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);72 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);68 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 69 Input* surfaceobs_input = element->GetInput(InversionSurfaceObsEnum); _assert_(surfaceobs_input); 70 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 71 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 72 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 73 73 74 74 /* Start looping on the number of gaussian points: */ … … 172 172 element->GetVerticesCoordinates(&xyz_list); 173 173 element->GradientIndexing(&vertexpidlist[0],control_index); 174 Input 2* adjoint_input = element->GetInput2(AdjointEnum); _assert_(adjoint_input);174 Input* adjoint_input = element->GetInput(AdjointEnum); _assert_(adjoint_input); 175 175 176 176 Gauss* gauss=element->NewGauss(2); … … 216 216 element->GetVerticesCoordinates(&xyz_list); 217 217 element->GradientIndexing(&vertexpidlist[0],control_index); 218 Input 2* adjoint_input = element->GetInput2(AdjointEnum); _assert_(adjoint_input);219 Input 2* omega_input = element->GetInput2(BalancethicknessOmegaEnum); _assert_(omega_input);220 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);221 Input 2* surfaceslopex_input = element->GetInput2(SurfaceSlopeXEnum); _assert_(surfaceslopex_input);222 Input 2* surfaceslopey_input = element->GetInput2(SurfaceSlopeYEnum); _assert_(surfaceslopey_input);223 Input 2* velobs_input = element->GetInput2(InversionVelObsEnum); _assert_(velobs_input);218 Input* adjoint_input = element->GetInput(AdjointEnum); _assert_(adjoint_input); 219 Input* omega_input = element->GetInput(BalancethicknessOmegaEnum); _assert_(omega_input); 220 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 221 Input* surfaceslopex_input = element->GetInput(SurfaceSlopeXEnum); _assert_(surfaceslopex_input); 222 Input* surfaceslopey_input = element->GetInput(SurfaceSlopeYEnum); _assert_(surfaceslopey_input); 223 Input* velobs_input = element->GetInput(InversionVelObsEnum); _assert_(velobs_input); 224 224 225 225 Gauss* gauss=element->NewGauss(2); … … 273 273 element->GetVerticesCoordinates(&xyz_list); 274 274 element->GradientIndexing(&vertexpidlist[0],control_index); 275 Input 2* omega_input = element->GetInput2(BalancethicknessOmegaEnum); _assert_(omega_input);276 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);275 Input* omega_input = element->GetInput(BalancethicknessOmegaEnum); _assert_(omega_input); 276 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 277 277 278 278 /* Start looping on the number of gaussian points: */ … … 322 322 element->GetVerticesCoordinates(&xyz_list); 323 323 element->GradientIndexing(&vertexpidlist[0],control_index); 324 Input 2* omega_input = element->GetInput2(BalancethicknessOmegaEnum); _assert_(omega_input);325 Input 2* omega0_input = element->GetInput2(BalancethicknessOmega0Enum); _assert_(omega0_input);326 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);324 Input* omega_input = element->GetInput(BalancethicknessOmegaEnum); _assert_(omega_input); 325 Input* omega0_input = element->GetInput(BalancethicknessOmega0Enum); _assert_(omega0_input); 326 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 327 327 328 328 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/analyses/AdjointBalancethickness2Analysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp
r25317 r25379 4 4 #include "../shared/shared.h" 5 5 #include "../modules/modules.h" 6 #include "../classes/Inputs 2/DatasetInput2.h"6 #include "../classes/Inputs/DatasetInput.h" 7 7 8 8 /*Model processor*/ … … 19 19 return 1; 20 20 }/*}}}*/ 21 void AdjointBalancethicknessAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/21 void AdjointBalancethicknessAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 22 22 _error_("not implemented yet"); 23 23 }/*}}}*/ … … 86 86 basalelement->FindParam(&num_responses,InversionNumCostFunctionsEnum); 87 87 basalelement->FindParam(&responses,NULL,InversionCostFunctionsEnum); 88 Input 2* thickness_input = basalelement->GetInput2(ThicknessEnum); _assert_(thickness_input);89 Input 2* thicknessobs_input = basalelement->GetInput2(InversionThicknessObsEnum); _assert_(thicknessobs_input);90 DatasetInput 2* weights_input = basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);91 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);92 Input 2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input);88 Input* thickness_input = basalelement->GetInput(ThicknessEnum); _assert_(thickness_input); 89 Input* thicknessobs_input = basalelement->GetInput(InversionThicknessObsEnum); _assert_(thicknessobs_input); 90 DatasetInput* weights_input = basalelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 91 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 92 Input* vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 93 93 94 94 /* Start looping on the number of gaussian points: */ … … 283 283 element->GetVerticesCoordinates(&xyz_list); 284 284 element->GradientIndexing(&vertexpidlist[0],control_index); 285 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);286 Input 2* adjoint_input = element->GetInput2(AdjointEnum); _assert_(adjoint_input);285 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 286 Input* adjoint_input = element->GetInput(AdjointEnum); _assert_(adjoint_input); 287 287 288 288 /* Start looping on the number of gaussian points: */ … … 330 330 element->GetVerticesCoordinates(&xyz_list); 331 331 element->GradientIndexing(&vertexpidlist[0],control_index); 332 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);333 Input 2* adjoint_input = element->GetInput2(AdjointEnum); _assert_(adjoint_input);332 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 333 Input* adjoint_input = element->GetInput(AdjointEnum); _assert_(adjoint_input); 334 334 335 335 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp
r25366 r25379 4 4 #include "../shared/shared.h" 5 5 #include "../modules/modules.h" 6 #include "../classes/Inputs 2/DatasetInput2.h"6 #include "../classes/Inputs/DatasetInput.h" 7 7 8 8 /*Model processing*/ … … 19 19 _error_("not implemented"); 20 20 }/*}}}*/ 21 void AdjointHorizAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/21 void AdjointHorizAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 22 22 _error_("not implemented yet"); 23 23 }/*}}}*/ … … 87 87 /*Retrieve all inputs and parameters*/ 88 88 element->GetVerticesCoordinates(&xyz_list); 89 Input 2* vx_input = element->GetInput2(VxEnum);_assert_(vx_input);90 Input 2* vy_input = element->GetInput2(VyEnum);_assert_(vy_input);91 Input 2* vz_input = NULL;89 Input* vx_input = element->GetInput(VxEnum);_assert_(vx_input); 90 Input* vy_input = element->GetInput(VyEnum);_assert_(vy_input); 91 Input* vz_input = NULL; 92 92 if(dim==3){ 93 vz_input = element->GetInput 2(VzEnum);93 vz_input = element->GetInput(VzEnum); 94 94 } 95 95 else{ … … 171 171 /*Retrieve all inputs and parameters*/ 172 172 element->GetVerticesCoordinates(&xyz_list); 173 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);174 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);173 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 174 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 175 175 176 176 /*Allocate dbasis*/ … … 276 276 /*Retrieve all inputs and parameters*/ 277 277 basalelement->GetVerticesCoordinates(&xyz_list); 278 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);279 Input 2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input);280 Input 2* thickness_input = basalelement->GetInput2(ThicknessEnum); _assert_(thickness_input);278 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 279 Input* vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 280 Input* thickness_input = basalelement->GetInput(ThicknessEnum); _assert_(thickness_input); 281 281 282 282 /*Allocate dbasis*/ … … 375 375 element->FindParam(&num_responses,InversionNumCostFunctionsEnum); 376 376 element->FindParam(&responses,NULL,InversionCostFunctionsEnum); 377 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);378 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);379 Input 2* vxobs_input = element->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);380 Input 2* vy_input = NULL;381 Input 2* vyobs_input = NULL;377 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 378 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 379 Input* vxobs_input = element->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 380 Input* vy_input = NULL; 381 Input* vyobs_input = NULL; 382 382 if(domaintype!=Domain2DverticalEnum){ 383 vy_input = element->GetInput 2(VyEnum); _assert_(vy_input);384 vyobs_input = element->GetInput 2(InversionVyObsEnum); _assert_(vyobs_input);383 vy_input = element->GetInput(VyEnum); _assert_(vy_input); 384 vyobs_input = element->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 385 385 } 386 386 IssmDouble epsvel = 2.220446049250313e-16; … … 388 388 389 389 /*Get Surface if required by one response*/ 390 Input 2* S_input = NULL;390 Input* S_input = NULL; 391 391 for(int resp=0;resp<num_responses;resp++){ 392 392 if(responses[resp]==SurfaceAverageVelMisfitEnum){ 393 S_input = element->GetInput 2(SurfaceAreaEnum); _assert_(S_input); break;393 S_input = element->GetInput(SurfaceAreaEnum); _assert_(S_input); break; 394 394 } 395 395 } … … 614 614 element->FindParam(&num_responses,InversionNumCostFunctionsEnum); 615 615 element->FindParam(&responses,NULL,InversionCostFunctionsEnum); 616 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);617 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);618 Input 2* vxobs_input = element->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);619 Input 2* vy_input=NULL;620 Input 2* vyobs_input=NULL;616 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 617 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 618 Input* vxobs_input = element->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 619 Input* vy_input=NULL; 620 Input* vyobs_input=NULL; 621 621 if(domaintype!=Domain2DverticalEnum){ 622 vy_input = element->GetInput 2(VyEnum); _assert_(vy_input);623 vyobs_input = element->GetInput 2(InversionVyObsEnum); _assert_(vyobs_input);622 vy_input = element->GetInput(VyEnum); _assert_(vy_input); 623 vyobs_input = element->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 624 624 } 625 625 IssmDouble epsvel = 2.220446049250313e-16; … … 627 627 628 628 /*Get Surface if required by one response*/ 629 Input 2* S_input = NULL;629 Input* S_input = NULL; 630 630 for(int resp=0;resp<num_responses;resp++){ 631 631 if(responses[resp]==SurfaceAverageVelMisfitEnum){ 632 S_input = element->GetInput 2(SurfaceAreaEnum); _assert_(S_input); break;632 S_input = element->GetInput(SurfaceAreaEnum); _assert_(S_input); break; 633 633 } 634 634 } … … 867 867 basalelement->FindParam(&num_responses,InversionNumCostFunctionsEnum); 868 868 basalelement->FindParam(&responses,NULL,InversionCostFunctionsEnum); 869 DatasetInput 2* weights_input = basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);870 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);871 Input 2* vxobs_input = basalelement->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);872 Input 2* vy_input=NULL;873 Input 2* vyobs_input=NULL;869 DatasetInput* weights_input = basalelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 870 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 871 Input* vxobs_input = basalelement->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 872 Input* vy_input=NULL; 873 Input* vyobs_input=NULL; 874 874 if(domaintype!=Domain2DverticalEnum){ 875 vy_input = basalelement->GetInput 2(VyEnum); _assert_(vy_input);876 vyobs_input = basalelement->GetInput 2(InversionVyObsEnum); _assert_(vyobs_input);875 vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 876 vyobs_input = basalelement->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 877 877 } 878 878 IssmDouble epsvel = 2.220446049250313e-16; … … 880 880 881 881 /*Get Surface if required by one response*/ 882 Input 2* S_input = NULL;882 Input* S_input = NULL; 883 883 for(int resp=0;resp<num_responses;resp++){ 884 884 if(responses[resp]==SurfaceAverageVelMisfitEnum){ 885 S_input = element->GetInput 2(SurfaceAreaEnum); _assert_(S_input); break;885 S_input = element->GetInput(SurfaceAreaEnum); _assert_(S_input); break; 886 886 } 887 887 } … … 1223 1223 basalelement->GetVerticesCoordinates(&xyz_list); 1224 1224 basalelement->GradientIndexing(&vertexpidlist[0],control_index); 1225 Input 2* rheologyb_input = basalelement->GetInput2(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);1226 DatasetInput 2* weights_input = basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);1225 Input* rheologyb_input = basalelement->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input); 1226 DatasetInput* weights_input = basalelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 1227 1227 1228 1228 /* Start looping on the number of gaussian points: */ … … 1312 1312 basalelement->GetVerticesCoordinates(&xyz_list); 1313 1313 basalelement->GradientIndexing(&vertexpidlist[0],control_index); 1314 Input 2* thickness_input = basalelement->GetInput2(ThicknessEnum); _assert_(thickness_input);1315 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);1316 Input 2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input);1317 Input 2* adjointx_input = basalelement->GetInput2(AdjointxEnum); _assert_(adjointx_input);1318 Input 2* adjointy_input = basalelement->GetInput2(AdjointyEnum); _assert_(adjointy_input);1319 Input 2* rheologyb_input = basalelement->GetInput2(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);1314 Input* thickness_input = basalelement->GetInput(ThicknessEnum); _assert_(thickness_input); 1315 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 1316 Input* vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 1317 Input* adjointx_input = basalelement->GetInput(AdjointxEnum); _assert_(adjointx_input); 1318 Input* adjointy_input = basalelement->GetInput(AdjointyEnum); _assert_(adjointy_input); 1319 Input* rheologyb_input = basalelement->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input); 1320 1320 1321 1321 /* Start looping on the number of gaussian points: */ … … 1409 1409 element->GetVerticesCoordinates(&xyz_list); 1410 1410 element->GradientIndexing(&vertexpidlist[0],control_index); 1411 Input 2* rheology_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(rheology_input);1412 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);1411 Input* rheology_input = element->GetInput(MaterialsRheologyBEnum); _assert_(rheology_input); 1412 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 1413 1413 /* Start looping on the number of gaussian points: */ 1414 1414 Gauss* gauss=element->NewGauss(2); … … 1475 1475 element->GetVerticesCoordinates(&xyz_list); 1476 1476 element->GradientIndexing(&vertexpidlist[0],control_index); 1477 Input 2* rheology_input = element->GetInput2(MaterialsRheologyBbarEnum); _assert_(rheology_input);1478 Input 2* rheology0_input = element->GetInput2(RheologyBInitialguessEnum); _assert_(rheology0_input);1479 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);1477 Input* rheology_input = element->GetInput(MaterialsRheologyBbarEnum); _assert_(rheology_input); 1478 Input* rheology0_input = element->GetInput(RheologyBInitialguessEnum); _assert_(rheology0_input); 1479 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 1480 1480 1481 1481 /* Start looping on the number of gaussian points: */ … … 1530 1530 element->GetVerticesCoordinates(&xyz_list); 1531 1531 element->GradientIndexing(&vertexpidlist[0],control_index); 1532 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);1533 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);1534 Input 2* vy_input = NULL;1535 Input 2* adjointx_input = element->GetInput2(AdjointxEnum); _assert_(adjointx_input);1536 Input 2* adjointy_input = NULL;1537 Input 2* rheologyb_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(rheologyb_input);1532 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 1533 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 1534 Input* vy_input = NULL; 1535 Input* adjointx_input = element->GetInput(AdjointxEnum); _assert_(adjointx_input); 1536 Input* adjointy_input = NULL; 1537 Input* rheologyb_input = element->GetInput(MaterialsRheologyBEnum); _assert_(rheologyb_input); 1538 1538 if(domaintype!=Domain2DverticalEnum){ 1539 vy_input = element->GetInput 2(VyEnum); _assert_(vy_input);1540 adjointy_input = element->GetInput 2(AdjointyEnum); _assert_(adjointy_input);1539 vy_input = element->GetInput(VyEnum); _assert_(vy_input); 1540 adjointy_input = element->GetInput(AdjointyEnum); _assert_(adjointy_input); 1541 1541 } 1542 1542 /* Start looping on the number of gaussian points: */ … … 1625 1625 basalelement->GetVerticesCoordinates(&xyz_list); 1626 1626 basalelement->GradientIndexing(&vertexpidlist[0],control_index); 1627 Input 2* thickness_input = basalelement->GetInput2(ThicknessEnum); _assert_(thickness_input);1628 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);1629 Input 2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input);1630 Input 2* adjointx_input = basalelement->GetInput2(AdjointxEnum); _assert_(adjointx_input);1631 Input 2* adjointy_input = basalelement->GetInput2(AdjointyEnum); _assert_(adjointy_input);1632 Input 2* rheologyb_input = basalelement->GetInput2(MaterialsRheologyBEnum); _assert_(rheologyb_input);1627 Input* thickness_input = basalelement->GetInput(ThicknessEnum); _assert_(thickness_input); 1628 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 1629 Input* vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 1630 Input* adjointx_input = basalelement->GetInput(AdjointxEnum); _assert_(adjointx_input); 1631 Input* adjointy_input = basalelement->GetInput(AdjointyEnum); _assert_(adjointy_input); 1632 Input* rheologyb_input = basalelement->GetInput(MaterialsRheologyBEnum); _assert_(rheologyb_input); 1633 1633 1634 1634 /* Start looping on the number of gaussian points: */ … … 1715 1715 /* get the friction law: if 2-Weertman, 11-Schoof, use a special name for the coefficient*/ 1716 1716 element->FindParam(&frictionlaw, FrictionLawEnum); 1717 Input 2* dragcoefficient_input;1717 Input* dragcoefficient_input; 1718 1718 switch(frictionlaw) { 1719 1719 case 2: 1720 1720 case 11: 1721 dragcoefficient_input = basalelement->GetInput 2(FrictionCEnum); _assert_(dragcoefficient_input);1721 dragcoefficient_input = basalelement->GetInput(FrictionCEnum); _assert_(dragcoefficient_input); 1722 1722 break; 1723 1723 default: 1724 dragcoefficient_input = basalelement->GetInput 2(FrictionCoefficientEnum); _assert_(dragcoefficient_input);1725 } 1726 1727 DatasetInput 2* weights_input = basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);1724 dragcoefficient_input = basalelement->GetInput(FrictionCoefficientEnum); _assert_(dragcoefficient_input); 1725 } 1726 1727 DatasetInput* weights_input = basalelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 1728 1728 1729 1729 /* Start looping on the number of gaussian points: */ … … 1793 1793 element->GetVerticesCoordinatesBase(&xyz_list_base); 1794 1794 element->GradientIndexing(&vertexpidlist[0],control_index); 1795 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);1796 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);1797 Input 2* adjointx_input = element->GetInput2(AdjointxEnum); _assert_(adjointx_input);1798 Input 2* adjointy_input = element->GetInput2(AdjointyEnum); _assert_(adjointy_input);1799 Input 2* vz_input = NULL;1800 Input 2* adjointz_input = NULL;1795 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 1796 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 1797 Input* adjointx_input = element->GetInput(AdjointxEnum); _assert_(adjointx_input); 1798 Input* adjointy_input = element->GetInput(AdjointyEnum); _assert_(adjointy_input); 1799 Input* vz_input = NULL; 1800 Input* adjointz_input = NULL; 1801 1801 if(domaintype!=Domain2DverticalEnum){ 1802 vz_input = element->GetInput 2(VzEnum); _assert_(vy_input);1803 adjointz_input = element->GetInput 2(AdjointzEnum); _assert_(adjointz_input);1804 } 1805 Input 2* dragcoeff_input = element->GetInput2(FrictionCoefficientEnum); _assert_(dragcoeff_input);1802 vz_input = element->GetInput(VzEnum); _assert_(vy_input); 1803 adjointz_input = element->GetInput(AdjointzEnum); _assert_(adjointz_input); 1804 } 1805 Input* dragcoeff_input = element->GetInput(FrictionCoefficientEnum); _assert_(dragcoeff_input); 1806 1806 1807 1807 /* Start looping on the number of gaussian points: */ … … 1892 1892 element->GetVerticesCoordinatesBase(&xyz_list_base); 1893 1893 element->GradientIndexing(&vertexpidlist[0],control_index); 1894 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);1895 Input 2* vy_input = NULL;1896 Input 2* adjointx_input = element->GetInput2(AdjointxEnum); _assert_(adjointx_input);1897 Input 2* adjointy_input = NULL;1898 Input 2* dragcoeff_input = element->GetInput2(FrictionCoefficientEnum); _assert_(dragcoeff_input);1894 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 1895 Input* vy_input = NULL; 1896 Input* adjointx_input = element->GetInput(AdjointxEnum); _assert_(adjointx_input); 1897 Input* adjointy_input = NULL; 1898 Input* dragcoeff_input = element->GetInput(FrictionCoefficientEnum); _assert_(dragcoeff_input); 1899 1899 if(domaintype!=Domain2DverticalEnum){ 1900 vy_input = element->GetInput 2(VyEnum); _assert_(vy_input);1901 adjointy_input = element->GetInput 2(AdjointyEnum); _assert_(adjointy_input);1900 vy_input = element->GetInput(VyEnum); _assert_(vy_input); 1901 adjointy_input = element->GetInput(AdjointyEnum); _assert_(adjointy_input); 1902 1902 } 1903 1903 /* Start looping on the number of gaussian points: */ … … 1986 1986 basalelement->GetVerticesCoordinates(&xyz_list); 1987 1987 basalelement->GradientIndexing(&vertexpidlist[0],control_index); 1988 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);1989 Input 2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input);1990 Input 2* adjointx_input = basalelement->GetInput2(AdjointxEnum); _assert_(adjointx_input);1991 Input 2* adjointy_input = basalelement->GetInput2(AdjointyEnum); _assert_(adjointy_input);1988 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 1989 Input* vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 1990 Input* adjointx_input = basalelement->GetInput(AdjointxEnum); _assert_(adjointx_input); 1991 Input* adjointy_input = basalelement->GetInput(AdjointyEnum); _assert_(adjointy_input); 1992 1992 1993 1993 /* get the friction law: 1- Budd, 11-Schoof*/ 1994 1994 element->FindParam(&frictionlaw, FrictionLawEnum); 1995 Input 2* dragcoeff_input;1995 Input* dragcoeff_input; 1996 1996 switch(frictionlaw) { 1997 1997 case 1: 1998 dragcoeff_input = basalelement->GetInput 2(FrictionCoefficientEnum); _assert_(dragcoeff_input);1998 dragcoeff_input = basalelement->GetInput(FrictionCoefficientEnum); _assert_(dragcoeff_input); 1999 1999 break; 2000 2000 case 2: 2001 2001 case 11: 2002 dragcoeff_input = basalelement->GetInput 2(FrictionCEnum); _assert_(dragcoeff_input);2002 dragcoeff_input = basalelement->GetInput(FrictionCEnum); _assert_(dragcoeff_input); 2003 2003 break; 2004 2004 default: … … 2071 2071 element->GetVerticesCoordinatesBase(&xyz_list_base); 2072 2072 element->GradientIndexing(&vertexpidlist[0],control_index); 2073 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);2074 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);2075 Input 2* adjointx_input = element->GetInput2(AdjointxEnum); _assert_(adjointx_input);2076 Input 2* adjointy_input = element->GetInput2(AdjointyEnum); _assert_(adjointy_input);2077 Input 2* vz_input = NULL;2078 Input 2* adjointz_input = NULL;2073 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 2074 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 2075 Input* adjointx_input = element->GetInput(AdjointxEnum); _assert_(adjointx_input); 2076 Input* adjointy_input = element->GetInput(AdjointyEnum); _assert_(adjointy_input); 2077 Input* vz_input = NULL; 2078 Input* adjointz_input = NULL; 2079 2079 if(domaintype!=Domain2DverticalEnum){ 2080 vz_input = element->GetInput 2(VzEnum); _assert_(vy_input);2081 adjointz_input = element->GetInput 2(AdjointzEnum); _assert_(adjointz_input);2080 vz_input = element->GetInput(VzEnum); _assert_(vy_input); 2081 adjointz_input = element->GetInput(AdjointzEnum); _assert_(adjointz_input); 2082 2082 } 2083 2083 … … 2168 2168 element->GetVerticesCoordinatesBase(&xyz_list_base); 2169 2169 element->GradientIndexing(&vertexpidlist[0],control_index); 2170 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);2171 Input 2* vy_input = NULL;2172 Input 2* adjointx_input = element->GetInput2(AdjointxEnum); _assert_(adjointx_input);2173 Input 2* adjointy_input = NULL;2170 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 2171 Input* vy_input = NULL; 2172 Input* adjointx_input = element->GetInput(AdjointxEnum); _assert_(adjointx_input); 2173 Input* adjointy_input = NULL; 2174 2174 if(domaintype!=Domain2DverticalEnum){ 2175 vy_input = element->GetInput 2(VyEnum); _assert_(vy_input);2176 adjointy_input = element->GetInput 2(AdjointyEnum); _assert_(adjointy_input);2175 vy_input = element->GetInput(VyEnum); _assert_(vy_input); 2176 adjointy_input = element->GetInput(AdjointyEnum); _assert_(adjointy_input); 2177 2177 } 2178 2178 /* Start looping on the number of gaussian points: */ … … 2260 2260 basalelement->GetVerticesCoordinates(&xyz_list); 2261 2261 basalelement->GradientIndexing(&vertexpidlist[0],control_index); 2262 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);2263 Input 2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input);2264 Input 2* adjointx_input = basalelement->GetInput2(AdjointxEnum); _assert_(adjointx_input);2265 Input 2* adjointy_input = basalelement->GetInput2(AdjointyEnum); _assert_(adjointy_input);2262 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 2263 Input* vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 2264 Input* adjointx_input = basalelement->GetInput(AdjointxEnum); _assert_(adjointx_input); 2265 Input* adjointy_input = basalelement->GetInput(AdjointyEnum); _assert_(adjointy_input); 2266 2266 2267 2267 IssmDouble q_exp; … … 2276 2276 2277 2277 /*Recover parameters: */ 2278 Input 2* qinput = basalelement->GetInput2(FrictionQEnum);2279 Input 2* cinput = basalelement->GetInput2(FrictionCEnum);2280 Input 2* Asinput = basalelement->GetInput2(FrictionAsEnum);2281 Input 2* nInput =basalelement->GetInput2(MaterialsRheologyNEnum);2282 Input 2* Ninput = basalelement->GetInput2(FrictionEffectivePressureEnum);2278 Input* qinput = basalelement->GetInput(FrictionQEnum); 2279 Input* cinput = basalelement->GetInput(FrictionCEnum); 2280 Input* Asinput = basalelement->GetInput(FrictionAsEnum); 2281 Input* nInput =basalelement->GetInput(MaterialsRheologyNEnum); 2282 Input* Ninput = basalelement->GetInput(FrictionEffectivePressureEnum); 2283 2283 /* Start looping on the number of gaussian points: */ 2284 2284 Gauss* gauss=basalelement->NewGauss(4); … … 2378 2378 basalelement->GetVerticesCoordinates(&xyz_list); 2379 2379 basalelement->GradientIndexing(&vertexpidlist[0],control_index); 2380 Input 2* thickness_input = basalelement->GetInput2(ThicknessEnum); _assert_(thickness_input);2381 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);2382 Input 2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input);2383 Input 2* adjointx_input = basalelement->GetInput2(AdjointxEnum); _assert_(adjointx_input);2384 Input 2* adjointy_input = basalelement->GetInput2(AdjointyEnum); _assert_(adjointy_input);2385 Input 2* rheologyb_input = basalelement->GetInput2(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);2380 Input* thickness_input = basalelement->GetInput(ThicknessEnum); _assert_(thickness_input); 2381 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 2382 Input* vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 2383 Input* adjointx_input = basalelement->GetInput(AdjointxEnum); _assert_(adjointx_input); 2384 Input* adjointy_input = basalelement->GetInput(AdjointyEnum); _assert_(adjointy_input); 2385 Input* rheologyb_input = basalelement->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input); 2386 2386 2387 2387 /* Start looping on the number of gaussian points: */ … … 2503 2503 2504 2504 /*Add vx and vy as inputs to the tria element: */ 2505 element->AddInput 2(AdjointxEnum,lambdax,element->VelocityInterpolation());2506 element->AddInput 2(AdjointyEnum,lambday,element->VelocityInterpolation());2507 if(domaintype!=Domain2DverticalEnum) element->AddInput 2(AdjointzEnum,lambdaz,element->VelocityInterpolation());2505 element->AddInput(AdjointxEnum,lambdax,element->VelocityInterpolation()); 2506 element->AddInput(AdjointyEnum,lambday,element->VelocityInterpolation()); 2507 if(domaintype!=Domain2DverticalEnum) element->AddInput(AdjointzEnum,lambdaz,element->VelocityInterpolation()); 2508 2508 2509 2509 element->FindParam(&fe_FS,FlowequationFeFSEnum); 2510 2510 if(fe_FS!=LATaylorHoodEnum && fe_FS!=LACrouzeixRaviartEnum) 2511 element->AddInput 2(AdjointpEnum,lambdap,element->PressureInterpolation());2511 element->AddInput(AdjointpEnum,lambdap,element->PressureInterpolation()); 2512 2512 2513 2513 /*Free ressources:*/ … … 2560 2560 2561 2561 /*Add vx and vy as inputs to the tria element: */ 2562 element->AddInput 2(AdjointxEnum,lambdax,element->GetElementType());2563 element->AddInput 2(AdjointyEnum,lambday,element->GetElementType());2562 element->AddInput(AdjointxEnum,lambdax,element->GetElementType()); 2563 element->AddInput(AdjointyEnum,lambday,element->GetElementType()); 2564 2564 2565 2565 /*Free ressources:*/ -
issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/Analysis.h
r25317 r25379 16 16 17 17 class Parameters; 18 class Inputs 2;18 class Inputs; 19 19 class IoModel; 20 20 class Elements; … … 39 39 virtual void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false)=0; 40 40 virtual int DofsPerNode(int** doflist,int domaintype,int approximation)=0; 41 virtual void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type)=0;41 virtual void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type)=0; 42 42 virtual void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum)=0; 43 43 -
issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp
r25317 r25379 23 23 return 1; 24 24 }/*}}}*/ 25 void Balancethickness2Analysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/25 void Balancethickness2Analysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 26 26 27 27 /*Finite element type*/ … … 29 29 30 30 /*Load variables in element*/ 31 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);32 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);33 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);34 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);35 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);36 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);37 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);38 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);39 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);40 iomodel->FetchDataToInput(inputs 2,elements,"md.balancethickness.thickening_rate",BalancethicknessThickeningRateEnum);31 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 32 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 33 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 34 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 35 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 36 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 37 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 38 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 39 iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum); 40 iomodel->FetchDataToInput(inputs,elements,"md.balancethickness.thickening_rate",BalancethicknessThickeningRateEnum); 41 41 42 42 /*Update elements: */ … … 45 45 if(iomodel->my_elements[i]){ 46 46 Element* element=(Element*)elements->GetObjectByOffset(counter); 47 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);47 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 48 48 49 49 counter++; … … 82 82 /*Retrieve all inputs and parameters*/ 83 83 element->GetVerticesCoordinates(&xyz_list); 84 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);85 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);84 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 85 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 86 86 87 87 /*Get element characteristic length*/ … … 142 142 /*Retrieve all inputs and parameters*/ 143 143 element->GetVerticesCoordinates(&xyz_list); 144 Input 2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input);145 Input 2* mb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);146 Input 2* dhdt_input = element->GetInput2(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);144 Input* ms_input = element->GetInput(SmbMassBalanceEnum); _assert_(ms_input); 145 Input* mb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input); 146 Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input); 147 147 148 148 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp
r25317 r25379 4 4 #include "../shared/shared.h" 5 5 #include "../modules/modules.h" 6 #include "../classes/Inputs 2/DatasetInput2.h"6 #include "../classes/Inputs/DatasetInput.h" 7 7 8 8 /*Model processing*/ … … 73 73 return 1; 74 74 }/*}}}*/ 75 void BalancethicknessAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/75 void BalancethicknessAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 76 76 77 77 int stabilization,finiteelement; … … 91 91 if(iomodel->my_elements[i]){ 92 92 Element* element=(Element*)elements->GetObjectByOffset(counter); 93 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);93 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 94 94 counter++; 95 95 } 96 96 } 97 97 98 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);99 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);100 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);101 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);102 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);103 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);104 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);105 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);106 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);107 iomodel->FetchDataToInput(inputs 2,elements,"md.balancethickness.thickening_rate",BalancethicknessThickeningRateEnum);98 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 99 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 100 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 101 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 102 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 103 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 104 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 105 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 106 iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum); 107 iomodel->FetchDataToInput(inputs,elements,"md.balancethickness.thickening_rate",BalancethicknessThickeningRateEnum); 108 108 109 109 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 110 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);111 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);110 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 111 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 112 112 } 113 113 }/*}}}*/ … … 172 172 element->FindParam(&domaintype,DomainTypeEnum); 173 173 element->FindParam(&stabilization,BalancethicknessStabilizationEnum); 174 Input 2* vxaverage_input=NULL;175 Input 2* vyaverage_input=NULL;174 Input* vxaverage_input=NULL; 175 Input* vyaverage_input=NULL; 176 176 if(domaintype==Domain2DhorizontalEnum){ 177 vxaverage_input=element->GetInput 2(VxEnum); _assert_(vxaverage_input);178 vyaverage_input=element->GetInput 2(VyEnum); _assert_(vyaverage_input);177 vxaverage_input=element->GetInput(VxEnum); _assert_(vxaverage_input); 178 vyaverage_input=element->GetInput(VyEnum); _assert_(vyaverage_input); 179 179 } 180 180 else{ 181 vxaverage_input=element->GetInput 2(VxAverageEnum); _assert_(vxaverage_input);182 vyaverage_input=element->GetInput 2(VyAverageEnum); _assert_(vyaverage_input);181 vxaverage_input=element->GetInput(VxAverageEnum); _assert_(vxaverage_input); 182 vyaverage_input=element->GetInput(VyAverageEnum); _assert_(vyaverage_input); 183 183 } 184 184 h = element->CharacteristicLength(); … … 271 271 element->GetVerticesCoordinates(&xyz_list); 272 272 element->FindParam(&domaintype,DomainTypeEnum); 273 Input 2* vxaverage_input=NULL;274 Input 2* vyaverage_input=NULL;273 Input* vxaverage_input=NULL; 274 Input* vyaverage_input=NULL; 275 275 if(domaintype==Domain2DhorizontalEnum){ 276 vxaverage_input=element->GetInput 2(VxEnum); _assert_(vxaverage_input);277 vyaverage_input=element->GetInput 2(VyEnum); _assert_(vyaverage_input);276 vxaverage_input=element->GetInput(VxEnum); _assert_(vxaverage_input); 277 vyaverage_input=element->GetInput(VyEnum); _assert_(vyaverage_input); 278 278 } 279 279 else{ 280 vxaverage_input=element->GetInput 2(VxAverageEnum); _assert_(vxaverage_input);281 vyaverage_input=element->GetInput 2(VyAverageEnum); _assert_(vyaverage_input);280 vxaverage_input=element->GetInput(VxAverageEnum); _assert_(vxaverage_input); 281 vyaverage_input=element->GetInput(VyAverageEnum); _assert_(vyaverage_input); 282 282 } 283 283 … … 354 354 /*Retrieve all inputs and parameters*/ 355 355 element->GetVerticesCoordinates(&xyz_list); 356 Input 2* mb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);357 Input 2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input);358 Input 2* dhdt_input = element->GetInput2(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);356 Input* mb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input); 357 Input* ms_input = element->GetInput(SmbMassBalanceEnum); _assert_(ms_input); 358 Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input); 359 359 360 360 /*Initialize mb_correction to 0, do not forget!:*/ … … 395 395 /*Retrieve all inputs and parameters*/ 396 396 element->GetVerticesCoordinates(&xyz_list); 397 Input 2* mb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);398 Input 2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input);399 Input 2* dhdt_input = element->GetInput2(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);397 Input* mb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input); 398 Input* ms_input = element->GetInput(SmbMassBalanceEnum); _assert_(ms_input); 399 Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input); 400 400 401 401 /*Initialize mb_correction to 0, do not forget!:*/ … … 457 457 element->GetVerticesCoordinates(&xyz_list); 458 458 element->GradientIndexing(&vertexpidlist[0],control_index); 459 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);460 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);461 Input 2* thicknessobs_input = element->GetInput2(InversionThicknessObsEnum); _assert_(thicknessobs_input);462 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);463 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);464 Input 2* surface_mass_balance_input = element->GetInput2(SmbMassBalanceEnum); _assert_(surface_mass_balance_input);465 Input 2* basal_melting_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melting_input);466 Input 2* dhdt_input = element->GetInput2(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);459 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 460 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 461 Input* thicknessobs_input = element->GetInput(InversionThicknessObsEnum); _assert_(thicknessobs_input); 462 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 463 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 464 Input* surface_mass_balance_input = element->GetInput(SmbMassBalanceEnum); _assert_(surface_mass_balance_input); 465 Input* basal_melting_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melting_input); 466 Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input); 467 467 468 468 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/BalancethicknessSoftAnalysis.cpp
r25317 r25379 12 12 _error_("not implemented yet"); 13 13 }/*}}}*/ 14 void BalancethicknessSoftAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/14 void BalancethicknessSoftAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 15 15 _error_("not implemented yet"); 16 16 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/BalancethicknessSoftAnalysis.h
r25317 r25379 15 15 int DofsPerNode(int** doflist,int domaintype,int approximation); 16 16 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 17 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);17 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 18 18 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 19 19 void CreateConstraints(Constraints* constraints,IoModel* iomodel); -
issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp
r25317 r25379 26 26 return 1; 27 27 }/*}}}*/ 28 void BalancevelocityAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/28 void BalancevelocityAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 29 29 30 30 /*Update elements: */ … … 33 33 if(iomodel->my_elements[i]){ 34 34 Element* element=(Element*)elements->GetObjectByOffset(counter); 35 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);35 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 36 36 counter++; 37 37 } 38 38 } 39 39 40 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);41 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);42 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);43 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);44 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);45 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);46 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);47 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);48 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);49 iomodel->FetchDataToInput(inputs 2,elements,"md.balancethickness.thickening_rate",BalancethicknessThickeningRateEnum);40 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 41 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 42 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 43 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 44 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 45 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 46 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 47 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 48 iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum); 49 iomodel->FetchDataToInput(inputs,elements,"md.balancethickness.thickening_rate",BalancethicknessThickeningRateEnum); 50 50 51 51 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 52 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);53 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);52 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 53 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 54 54 } 55 55 }/*}}}*/ … … 91 91 /*Retrieve all Inputs and parameters: */ 92 92 element->GetVerticesCoordinates(&xyz_list); 93 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);93 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 94 94 h = element->CharacteristicLength(); 95 95 … … 182 182 /*Retrieve all inputs and parameters*/ 183 183 basalelement->GetVerticesCoordinates(&xyz_list); 184 Input 2* ms_input = basalelement->GetInput2(SmbMassBalanceEnum); _assert_(ms_input);185 Input 2* mb_input = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);186 Input 2* dhdt_input = basalelement->GetInput2(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);187 Input 2* H_input = basalelement->GetInput2(ThicknessEnum); _assert_(H_input);184 Input* ms_input = basalelement->GetInput(SmbMassBalanceEnum); _assert_(ms_input); 185 Input* mb_input = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input); 186 Input* dhdt_input = basalelement->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input); 187 Input* H_input = basalelement->GetInput(ThicknessEnum); _assert_(H_input); 188 188 IssmDouble h = basalelement->CharacteristicLength(); 189 189 -
issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
r25317 r25379 40 40 return 1; 41 41 }/*}}}*/ 42 void DamageEvolutionAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/42 void DamageEvolutionAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 43 43 44 44 int finiteelement; … … 54 54 if(iomodel->my_elements[i]){ 55 55 Element* element=(Element*)elements->GetObjectByOffset(counter); 56 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);56 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 57 57 58 58 /*Need to know the type of approximation for this element*/ 59 59 if(iomodel->Data("md.flowequation.element_equation")){ 60 inputs 2->SetInput(ApproximationEnum,counter,IoCodeToEnumElementEquation(reCast<int>(iomodel->Data("md.flowequation.element_equation")[i])));60 inputs->SetInput(ApproximationEnum,counter,IoCodeToEnumElementEquation(reCast<int>(iomodel->Data("md.flowequation.element_equation")[i]))); 61 61 } 62 62 counter++; … … 68 68 for(int i=0;i<elements->Size();i++){ 69 69 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 70 element->SetElementInput(inputs 2,DamageFEnum,0.);70 element->SetElementInput(inputs,DamageFEnum,0.); 71 71 } 72 72 73 73 74 74 /*What input do I need to run my damage evolution model?*/ 75 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);76 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);77 if(iomodel->domaintype==Domain3DEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vz",VzEnum);78 iomodel->FetchDataToInput(inputs 2,elements,"md.damage.D",DamageDEnum);79 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);80 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);75 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 76 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 77 if(iomodel->domaintype==Domain3DEnum) iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum); 78 iomodel->FetchDataToInput(inputs,elements,"md.damage.D",DamageDEnum); 79 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 80 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 81 81 82 82 }/*}}}*/ … … 139 139 140 140 /*Add input*/ 141 element->AddInput 2(DamageFEnum,f,element->GetElementType());141 element->AddInput(DamageFEnum,f,element->GetElementType()); 142 142 143 143 /*Clean up and return*/ … … 174 174 element->ComputeDeviatoricStressTensor(); 175 175 176 Input 2* principalDevStress1_input = element->GetInput2(DeviatoricStress1Enum); _assert_(principalDevStress1_input);177 Input 2* principalDevStress2_input = element->GetInput2(DeviatoricStress2Enum); _assert_(principalDevStress2_input);178 179 Input 2* damage_input = NULL;176 Input* principalDevStress1_input = element->GetInput(DeviatoricStress1Enum); _assert_(principalDevStress1_input); 177 Input* principalDevStress2_input = element->GetInput(DeviatoricStress2Enum); _assert_(principalDevStress2_input); 178 179 Input* damage_input = NULL; 180 180 if(domaintype==Domain2DhorizontalEnum){ 181 damage_input = element->GetInput 2(DamageDbarEnum); _assert_(damage_input);181 damage_input = element->GetInput(DamageDbarEnum); _assert_(damage_input); 182 182 } 183 183 else{ 184 damage_input = element->GetInput 2(DamageDEnum); _assert_(damage_input);184 damage_input = element->GetInput(DamageDEnum); _assert_(damage_input); 185 185 } 186 186 … … 222 222 223 223 /*Add input*/ 224 element->AddInput 2(DamageFEnum,f,element->GetElementType());224 element->AddInput(DamageFEnum,f,element->GetElementType()); 225 225 226 226 /*Clean up and return*/ … … 250 250 251 251 /*retrieve what we need: */ 252 Input 2* eps_xx_input = element->GetInput2(StrainRatexxEnum); _assert_(eps_xx_input);253 Input 2* eps_xy_input = element->GetInput2(StrainRatexyEnum); _assert_(eps_xy_input);254 Input 2* eps_yy_input = element->GetInput2(StrainRateyyEnum); _assert_(eps_yy_input);255 Input 2* n_input=element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);256 Input 2* damage_input = NULL;257 Input 2* B_input = NULL;252 Input* eps_xx_input = element->GetInput(StrainRatexxEnum); _assert_(eps_xx_input); 253 Input* eps_xy_input = element->GetInput(StrainRatexyEnum); _assert_(eps_xy_input); 254 Input* eps_yy_input = element->GetInput(StrainRateyyEnum); _assert_(eps_yy_input); 255 Input* n_input=element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 256 Input* damage_input = NULL; 257 Input* B_input = NULL; 258 258 if(domaintype==Domain2DhorizontalEnum){ 259 damage_input = element->GetInput 2(DamageDbarEnum); _assert_(damage_input);260 B_input=element->GetInput 2(MaterialsRheologyBbarEnum); _assert_(B_input);259 damage_input = element->GetInput(DamageDbarEnum); _assert_(damage_input); 260 B_input=element->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 261 261 } 262 262 else{ 263 damage_input = element->GetInput 2(DamageDEnum); _assert_(damage_input);264 B_input=element->GetInput 2(MaterialsRheologyBEnum); _assert_(B_input);263 damage_input = element->GetInput(DamageDEnum); _assert_(damage_input); 264 B_input=element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 265 265 } 266 266 … … 297 297 298 298 /*Add input*/ 299 element->AddInput 2(DamageFEnum,f,P1DGEnum);299 element->AddInput(DamageFEnum,f,P1DGEnum); 300 300 301 301 /*Clean up and return*/ … … 337 337 } 338 338 /*retrieve what we need: */ 339 Input 2* tau_xx_input = element->GetInput2(DeviatoricStressxxEnum); _assert_(tau_xx_input);340 Input 2* tau_xy_input = element->GetInput2(DeviatoricStressxyEnum); _assert_(tau_xy_input);341 Input 2* tau_yy_input = element->GetInput2(DeviatoricStressyyEnum); _assert_(tau_yy_input);342 Input 2* tau_xz_input = NULL;343 Input 2* tau_yz_input = NULL;344 Input 2* tau_zz_input = NULL;345 Input 2* stressMaxPrincipal_input = NULL;339 Input* tau_xx_input = element->GetInput(DeviatoricStressxxEnum); _assert_(tau_xx_input); 340 Input* tau_xy_input = element->GetInput(DeviatoricStressxyEnum); _assert_(tau_xy_input); 341 Input* tau_yy_input = element->GetInput(DeviatoricStressyyEnum); _assert_(tau_yy_input); 342 Input* tau_xz_input = NULL; 343 Input* tau_yz_input = NULL; 344 Input* tau_zz_input = NULL; 345 Input* stressMaxPrincipal_input = NULL; 346 346 if(dim==3){ 347 tau_xz_input = element->GetInput 2(DeviatoricStressxzEnum); _assert_(tau_xz_input);348 tau_yz_input = element->GetInput 2(DeviatoricStressyzEnum); _assert_(tau_yz_input);349 tau_zz_input = element->GetInput 2(DeviatoricStresszzEnum); _assert_(tau_zz_input);350 stressMaxPrincipal_input = element->GetInput 2(StressMaxPrincipalEnum); _assert_(stressMaxPrincipal_input);351 } 352 Input 2* damage_input = NULL;347 tau_xz_input = element->GetInput(DeviatoricStressxzEnum); _assert_(tau_xz_input); 348 tau_yz_input = element->GetInput(DeviatoricStressyzEnum); _assert_(tau_yz_input); 349 tau_zz_input = element->GetInput(DeviatoricStresszzEnum); _assert_(tau_zz_input); 350 stressMaxPrincipal_input = element->GetInput(StressMaxPrincipalEnum); _assert_(stressMaxPrincipal_input); 351 } 352 Input* damage_input = NULL; 353 353 if(domaintype==Domain2DhorizontalEnum){ 354 damage_input = element->GetInput 2(DamageDbarEnum); _assert_(damage_input);354 damage_input = element->GetInput(DamageDbarEnum); _assert_(damage_input); 355 355 } 356 356 else{ 357 damage_input = element->GetInput 2(DamageDEnum); _assert_(damage_input);357 damage_input = element->GetInput(DamageDEnum); _assert_(damage_input); 358 358 } 359 359 … … 416 416 } 417 417 /*Add input*/ 418 element->AddInput 2(DamageFEnum,f,P1DGEnum);418 element->AddInput(DamageFEnum,f,P1DGEnum); 419 419 420 420 /*Clean up and return*/ … … 461 461 element->FindParam(&dt,TimesteppingTimeStepEnum); 462 462 element->FindParam(&stabilization,DamageStabilizationEnum); 463 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);464 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);465 Input 2* vz_input = NULL;463 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 464 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 465 Input* vz_input = NULL; 466 466 if(dim==3){ 467 vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);467 vz_input=element->GetInput(VzEnum); _assert_(vz_input); 468 468 } 469 469 … … 644 644 } 645 645 646 Input 2* damaged_input = NULL;647 Input 2* damagef_input = element->GetInput2(DamageFEnum); _assert_(damagef_input);646 Input* damaged_input = NULL; 647 Input* damagef_input = element->GetInput(DamageFEnum); _assert_(damagef_input); 648 648 if(domaintype==Domain2DhorizontalEnum){ 649 damaged_input = element->GetInput 2(DamageDbarEnum); _assert_(damaged_input);649 damaged_input = element->GetInput(DamageDbarEnum); _assert_(damaged_input); 650 650 } 651 651 else{ 652 damaged_input = element->GetInput 2(DamageDEnum); _assert_(damaged_input);652 damaged_input = element->GetInput(DamageDEnum); _assert_(damaged_input); 653 653 } 654 654 … … 708 708 element->FindParam(&domaintype,DomainTypeEnum); 709 709 if(domaintype==Domain2DhorizontalEnum){ 710 element->AddInput 2(DamageDbarEnum,newdamage,element->GetElementType());710 element->AddInput(DamageDbarEnum,newdamage,element->GetElementType()); 711 711 } 712 712 else{ 713 element->AddInput 2(DamageDEnum,newdamage,element->GetElementType());713 element->AddInput(DamageDEnum,newdamage,element->GetElementType()); 714 714 } 715 715 … … 744 744 /*Retrieve all inputs and parameters*/ 745 745 element->GetVerticesCoordinates(&xyz_list); 746 Input 2* vxaverage_input=element->GetInput2(VxEnum); _assert_(vxaverage_input);747 Input 2* vyaverage_input=element->GetInput2(VyEnum); _assert_(vyaverage_input);746 Input* vxaverage_input=element->GetInput(VxEnum); _assert_(vxaverage_input); 747 Input* vyaverage_input=element->GetInput(VyEnum); _assert_(vyaverage_input); 748 748 749 749 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/DepthAverageAnalysis.cpp
r25317 r25379 18 18 return 1; 19 19 }/*}}}*/ 20 void DepthAverageAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/20 void DepthAverageAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 21 21 22 22 int counter=0; … … 24 24 if(iomodel->my_elements[i]){ 25 25 Element* element=(Element*)elements->GetObjectByOffset(counter); 26 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);26 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 27 27 counter++; 28 28 } … … 30 30 31 31 if(iomodel->domaintype==Domain2DverticalEnum){ 32 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);32 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 33 33 } 34 34 }/*}}}*/ … … 114 114 element->GetVerticesCoordinates(&xyz_list); 115 115 element->FindParam(&input_enum,InputToDepthaverageInEnum); 116 Input 2* input = element->GetInput2(input_enum); _assert_(input);116 Input* input = element->GetInput(input_enum); _assert_(input); 117 117 118 118 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/analyses/DepthAverageAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r25317 r25379 99 99 return 1; 100 100 }/*}}}*/ 101 void EnthalpyAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/101 void EnthalpyAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 102 102 103 103 bool dakota_analysis,ismovingfront,isenthalpy; … … 124 124 if(iomodel->my_elements[i]){ 125 125 Element* element=(Element*)elements->GetObjectByOffset(counter); 126 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);126 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 127 127 counter++; 128 128 } … … 134 134 iomodel->FindConstant(&materialstype,"md.materials.type"); 135 135 136 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);137 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);138 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);139 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);140 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);141 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);136 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 137 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 138 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 139 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 140 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 141 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 142 142 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 143 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);144 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);145 } 146 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);147 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);148 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.waterfraction",WaterfractionEnum);149 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.enthalpy",EnthalpyEnum);150 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.watercolumn",WatercolumnEnum);151 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);152 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);153 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);154 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vz",VzEnum);155 InputUpdateFromConstantx(inputs 2,elements,0.,VxMeshEnum);156 InputUpdateFromConstantx(inputs 2,elements,0.,VyMeshEnum);157 InputUpdateFromConstantx(inputs 2,elements,0.,VzMeshEnum);143 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 144 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 145 } 146 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 147 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 148 iomodel->FetchDataToInput(inputs,elements,"md.initialization.waterfraction",WaterfractionEnum); 149 iomodel->FetchDataToInput(inputs,elements,"md.initialization.enthalpy",EnthalpyEnum); 150 iomodel->FetchDataToInput(inputs,elements,"md.initialization.watercolumn",WatercolumnEnum); 151 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 152 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 153 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 154 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum); 155 InputUpdateFromConstantx(inputs,elements,0.,VxMeshEnum); 156 InputUpdateFromConstantx(inputs,elements,0.,VyMeshEnum); 157 InputUpdateFromConstantx(inputs,elements,0.,VzMeshEnum); 158 158 if(ismovingfront){ 159 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes159 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes 160 160 } 161 161 … … 166 166 break; 167 167 default: 168 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);168 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum); 169 169 break; 170 170 } 171 171 172 172 /*Rheology type*/ 173 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);173 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 174 174 switch(materialstype){ 175 175 case MatenhancediceEnum: 176 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);177 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_E",MaterialsRheologyEEnum);176 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 177 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_E",MaterialsRheologyEEnum); 178 178 break; 179 179 case MatdamageiceEnum: 180 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);180 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 181 181 break; 182 182 case MatestarEnum: 183 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum);184 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_Es",MaterialsRheologyEsEnum);183 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum); 184 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_Es",MaterialsRheologyEsEnum); 185 185 break; 186 186 case MaticeEnum: 187 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);187 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 188 188 break; 189 189 default: … … 195 195 case 1: 196 196 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 197 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);198 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);199 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);197 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 198 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 199 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 200 200 if (FrictionCoupling==3){ 201 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}201 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 202 202 else if(FrictionCoupling==4){ 203 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);203 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 204 204 } 205 205 break; 206 206 case 2: 207 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);208 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);207 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 208 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 209 209 break; 210 210 case 3: 211 211 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 212 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);213 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.As",FrictionAsEnum);214 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);212 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 213 iomodel->FetchDataToInput(inputs,elements,"md.friction.As",FrictionAsEnum); 214 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 215 215 if (FrictionCoupling==3){ 216 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}216 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 217 217 else if(FrictionCoupling==4){ 218 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);218 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 219 219 } 220 220 break; 221 221 case 4: 222 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);223 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);224 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);225 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);226 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);222 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 223 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 224 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 225 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 226 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 227 227 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 228 228 break; 229 229 case 5: 230 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);231 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);232 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);233 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.water_layer",FrictionWaterLayerEnum);230 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 231 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 232 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 233 iomodel->FetchDataToInput(inputs,elements,"md.friction.water_layer",FrictionWaterLayerEnum); 234 234 break; 235 235 case 6: 236 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);237 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);238 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);239 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);236 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 237 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 238 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 239 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 240 240 break; 241 241 case 7: 242 242 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 243 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);244 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum);245 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);246 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);243 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 244 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum); 245 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 246 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 247 247 if (FrictionCoupling==3){ 248 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}248 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 249 249 else if(FrictionCoupling==4){ 250 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);250 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 251 251 } 252 252 break; 253 253 case 9: 254 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);255 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum);256 InputUpdateFromConstantx(inputs 2,elements,1.,FrictionPEnum);257 InputUpdateFromConstantx(inputs 2,elements,1.,FrictionQEnum);254 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 255 iomodel->FetchDataToInput(inputs,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum); 256 InputUpdateFromConstantx(inputs,elements,1.,FrictionPEnum); 257 InputUpdateFromConstantx(inputs,elements,1.,FrictionQEnum); 258 258 break; 259 259 default: … … 325 325 326 326 /*Get parameters and inputs: */ 327 Input 2* pressure_input = element->GetInput2(PressureEnum); _assert_(pressure_input);327 Input* pressure_input = element->GetInput(PressureEnum); _assert_(pressure_input); 328 328 329 329 /*Fetch indices of basal & surface nodes for this finite element*/ … … 407 407 408 408 /*retrieve inputs*/ 409 Input 2* enthalpy_input = element->GetInput2(enthalpy_enum); _assert_(enthalpy_input);410 Input 2* pressure_input = element->GetInput2(PressureEnum); _assert_(pressure_input);411 Input 2* geothermalflux_input = element->GetInput2(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input);412 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);413 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);414 Input 2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input);409 Input* enthalpy_input = element->GetInput(enthalpy_enum); _assert_(enthalpy_input); 410 Input* pressure_input = element->GetInput(PressureEnum); _assert_(pressure_input); 411 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input); 412 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 413 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 414 Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input); 415 415 416 416 /*Build friction element, needed later: */ … … 511 511 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 512 512 if(dt!=0.){ 513 element->AddInput 2(enthalpy_enum,enthalpies,finite_element);514 element->AddInput 2(WatercolumnEnum,watercolumns,finite_element);515 } 516 element->AddInput 2(BasalforcingsGroundediceMeltingRateEnum,basalmeltingrates,P1DGEnum);513 element->AddInput(enthalpy_enum,enthalpies,finite_element); 514 element->AddInput(WatercolumnEnum,watercolumns,finite_element); 515 } 516 element->AddInput(BasalforcingsGroundediceMeltingRateEnum,basalmeltingrates,P1DGEnum); 517 517 518 518 /*Clean up and return*/ … … 602 602 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); 603 603 IssmDouble thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum); 604 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);605 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);606 Input 2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input);607 Input 2* vxm_input = element->GetInput2(VxMeshEnum); _assert_(vxm_input);608 Input 2* vym_input = element->GetInput2(VyMeshEnum); _assert_(vym_input);609 Input 2* vzm_input = element->GetInput2(VzMeshEnum); _assert_(vzm_input);604 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 605 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 606 Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input); 607 Input* vxm_input = element->GetInput(VxMeshEnum); _assert_(vxm_input); 608 Input* vym_input = element->GetInput(VyMeshEnum); _assert_(vym_input); 609 Input* vzm_input = element->GetInput(VzMeshEnum); _assert_(vzm_input); 610 610 611 611 /*Enthalpy diffusion parameter*/ … … 824 824 element->FindParam(&dt,TimesteppingTimeStepEnum); 825 825 element->FindParam(&stabilization,ThermalStabilizationEnum); 826 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);827 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);828 Input 2* vz_input=element->GetInput2(VzEnum); _assert_(vz_input);829 Input 2* enthalpypicard_input=element->GetInput2(EnthalpyPicardEnum); _assert_(enthalpypicard_input);830 Input 2* pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input);831 Input 2* enthalpy_input=NULL;826 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 827 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 828 Input* vz_input=element->GetInput(VzEnum); _assert_(vz_input); 829 Input* enthalpypicard_input=element->GetInput(EnthalpyPicardEnum); _assert_(enthalpypicard_input); 830 Input* pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input); 831 Input* enthalpy_input=NULL; 832 832 if(dt>0.){ 833 enthalpy_input = element->GetInput 2(EnthalpyEnum); _assert_(enthalpy_input);833 enthalpy_input = element->GetInput(EnthalpyEnum); _assert_(enthalpy_input); 834 834 } 835 835 … … 948 948 if(dt==0. && !converged) enthalpy_enum=EnthalpyPicardEnum; // use enthalpy from last iteration 949 949 else enthalpy_enum=EnthalpyEnum; // use enthalpy from last time step 950 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);951 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);952 Input 2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input);953 Input 2* enthalpy_input = element->GetInput2(enthalpy_enum); _assert_(enthalpy_input);954 Input 2* pressure_input = element->GetInput2(PressureEnum); _assert_(pressure_input);955 Input 2* watercolumn_input = element->GetInput2(WatercolumnEnum); _assert_(watercolumn_input);956 Input 2* meltingrate_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(meltingrate_input);957 Input 2* geothermalflux_input = element->GetInput2(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input);950 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 951 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 952 Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input); 953 Input* enthalpy_input = element->GetInput(enthalpy_enum); _assert_(enthalpy_input); 954 Input* pressure_input = element->GetInput(PressureEnum); _assert_(pressure_input); 955 Input* watercolumn_input = element->GetInput(WatercolumnEnum); _assert_(watercolumn_input); 956 Input* meltingrate_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(meltingrate_input); 957 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input); 958 958 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 959 959 … … 1041 1041 element->GetVerticesCoordinatesBase(&xyz_list_base); 1042 1042 element->FindParam(&dt,TimesteppingTimeStepEnum); 1043 Input 2* pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input);1043 Input* pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input); 1044 1044 IssmDouble gravity = element->FindParam(ConstantsGEnum); 1045 1045 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); … … 1097 1097 } 1098 1098 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1099 element->AddInput 2(WaterfractionDrainageEnum,drainage,finite_element);1099 element->AddInput(WaterfractionDrainageEnum,drainage,finite_element); 1100 1100 1101 1101 xDelete<IssmDouble>(waterfractions); … … 1131 1131 } 1132 1132 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1133 element->AddInput 2(WaterfractionDrainageIntegratedEnum, drainage_int,finite_element);1133 element->AddInput(WaterfractionDrainageIntegratedEnum, drainage_int,finite_element); 1134 1134 1135 1135 xDelete<IssmDouble>(drainage_int); … … 1155 1155 } 1156 1156 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1157 element->AddInput 2(WatercolumnEnum, watercolumn,finite_element);1157 element->AddInput(WatercolumnEnum, watercolumn,finite_element); 1158 1158 1159 1159 xDelete<IssmDouble>(watercolumn); … … 1192 1192 } 1193 1193 int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum; 1194 element->AddInput 2(WaterfractionEnum,waterfractions,finite_element);1195 element->AddInput 2(EnthalpyEnum,enthalpies,finite_element);1194 element->AddInput(WaterfractionEnum,waterfractions,finite_element); 1195 element->AddInput(EnthalpyEnum,enthalpies,finite_element); 1196 1196 1197 1197 xDelete<IssmDouble>(enthalpies); … … 1320 1320 1321 1321 /*Get parameters and inputs: */ 1322 Input 2* enthalpy_input = element->GetInput2(EnthalpyPicardEnum); _assert_(enthalpy_input);1323 Input 2* pressure_input = element->GetInput2(PressureEnum); _assert_(pressure_input);1324 Input 2* watercolumn_input = element->GetInput2(WatercolumnEnum); _assert_(watercolumn_input);1325 Input 2* meltingrate_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(meltingrate_input);1322 Input* enthalpy_input = element->GetInput(EnthalpyPicardEnum); _assert_(enthalpy_input); 1323 Input* pressure_input = element->GetInput(PressureEnum); _assert_(pressure_input); 1324 Input* watercolumn_input = element->GetInput(WatercolumnEnum); _assert_(watercolumn_input); 1325 Input* meltingrate_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(meltingrate_input); 1326 1326 1327 1327 /*Fetch indices of basal & surface nodes for this finite element*/ … … 1391 1391 1392 1392 /*Get parameters and inputs: */ 1393 Input 2* enthalpy_input = element->GetInput2(EnthalpyEnum); _assert_(enthalpy_input); //TODO: check EnthalpyPicard?1394 Input 2* pressure_input = element->GetInput2(PressureEnum); _assert_(pressure_input);1395 Input 2* watercolumn_input = element->GetInput2(WatercolumnEnum); _assert_(watercolumn_input);1396 Input 2* meltingrate_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(meltingrate_input);1393 Input* enthalpy_input = element->GetInput(EnthalpyEnum); _assert_(enthalpy_input); //TODO: check EnthalpyPicard? 1394 Input* pressure_input = element->GetInput(PressureEnum); _assert_(pressure_input); 1395 Input* watercolumn_input = element->GetInput(WatercolumnEnum); _assert_(watercolumn_input); 1396 Input* meltingrate_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(meltingrate_input); 1397 1397 1398 1398 /*Fetch indices of basal & surface nodes for this finite element*/ … … 1563 1563 //if(waterfraction[i]>1.) _error_("Water fraction >1 found in solution vector"); 1564 1564 } 1565 element->AddInput 2(EnthalpyEnum,values,finite_element);1566 element->AddInput 2(WaterfractionEnum,waterfraction,finite_element);1567 element->AddInput 2(TemperatureEnum,temperature,finite_element);1565 element->AddInput(EnthalpyEnum,values,finite_element); 1566 element->AddInput(WaterfractionEnum,waterfraction,finite_element); 1567 element->AddInput(TemperatureEnum,temperature,finite_element); 1568 1568 1569 1569 IssmDouble* n = xNew<IssmDouble>(numnodes); … … 1585 1585 case BuddJackaEnum: 1586 1586 for(i=0;i<numnodes;i++) B[i]=BuddJacka(temperature[i]); 1587 element->AddInput 2(MaterialsRheologyBEnum,&B[0],finite_element);1587 element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element); 1588 1588 break; 1589 1589 case CuffeyEnum: 1590 1590 for(i=0;i<numnodes;i++) B[i]=Cuffey(temperature[i]); 1591 element->AddInput 2(MaterialsRheologyBEnum,&B[0],finite_element);1591 element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element); 1592 1592 break; 1593 1593 case CuffeyTemperateEnum: 1594 1594 for(i=0;i<numnodes;i++) B[i]=CuffeyTemperate(temperature[i], waterfraction[i],n[i]); 1595 element->AddInput 2(MaterialsRheologyBEnum,&B[0],finite_element);1595 element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element); 1596 1596 break; 1597 1597 case PatersonEnum: 1598 1598 for(i=0;i<numnodes;i++) B[i]=Paterson(temperature[i]); 1599 element->AddInput 2(MaterialsRheologyBEnum,&B[0],finite_element);1599 element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element); 1600 1600 break; 1601 1601 case NyeH2OEnum: 1602 1602 for(i=0;i<numnodes;i++) B[i]=NyeH2O(values[i]); 1603 element->AddInput 2(MaterialsRheologyBEnum,&B[0],finite_element);1603 element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element); 1604 1604 break; 1605 1605 case NyeCO2Enum: 1606 1606 for(i=0;i<numnodes;i++) B[i]=NyeCO2(values[i]); 1607 element->AddInput 2(MaterialsRheologyBEnum,&B[0],finite_element);1607 element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element); 1608 1608 break; 1609 1609 case ArrheniusEnum:{ 1610 1610 element->GetVerticesCoordinates(&xyz_list); 1611 1611 for(i=0;i<numnodes;i++) B[i]=Arrhenius(temperature[i],surface[i]-xyz_list[i*3+2],n[i]); 1612 element->AddInput 2(MaterialsRheologyBEnum,&B[0],finite_element);1612 element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element); 1613 1613 break; 1614 1614 } 1615 1615 case LliboutryDuvalEnum:{ 1616 1616 for(i=0;i<numnodes;i++) B[i]=LliboutryDuval(values[i],pressure[i],n[i],element->FindParam(MaterialsBetaEnum),element->FindParam(ConstantsReferencetemperatureEnum),element->FindParam(MaterialsHeatcapacityEnum),element->FindParam(MaterialsLatentheatEnum)); 1617 element->AddInput 2(MaterialsRheologyBEnum,&B[0],finite_element);1617 element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element); 1618 1618 break; 1619 1619 } … … 1623 1623 } 1624 1624 else{ 1625 element->AddInput 2(EnthalpyPicardEnum,values,finite_element);1625 element->AddInput(EnthalpyPicardEnum,values,finite_element); 1626 1626 } 1627 1627 -
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.h
r25317 r25379 18 18 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 19 19 int DofsPerNode(int** doflist,int domaintype,int approximation); 20 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);20 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 21 21 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 22 22 -
issm/trunk-jpl/src/c/analyses/EnumToAnalysis.h
r25317 r25379 10 10 int DofsPerNode(int** doflist,int domaintype,int approximation); 11 11 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 12 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);12 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 13 13 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 14 14 void CreateConstraints(Constraints* constraints,IoModel* iomodel); -
issm/trunk-jpl/src/c/analyses/EsaAnalysis.cpp
r25317 r25379 18 18 return 1; 19 19 }/*}}}*/ 20 void EsaAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/20 void EsaAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 21 21 22 22 /*Update elements: */ … … 25 25 if(iomodel->my_elements[i]){ 26 26 Element* element=(Element*)elements->GetObjectByOffset(counter); 27 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);27 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 28 28 counter++; 29 29 } … … 31 31 32 32 /*Create inputs: */ 33 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);34 iomodel->FetchDataToInput(inputs 2,elements,"md.esa.deltathickness",EsaDeltathicknessEnum);33 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 34 iomodel->FetchDataToInput(inputs,elements,"md.esa.deltathickness",EsaDeltathicknessEnum); 35 35 36 36 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/EsaAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp
r25317 r25379 26 26 } 27 27 /*}}}*/ 28 void ExtrapolationAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/28 void ExtrapolationAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 29 29 int finiteelement; 30 30 … … 37 37 if(iomodel->my_elements[i]){ 38 38 Element* element=(Element*)elements->GetObjectByOffset(counter); 39 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);39 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 40 40 counter++; 41 41 } 42 42 } 43 43 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 44 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);45 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);44 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 45 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 46 46 } 47 47 } … … 123 123 124 124 /*Retrieve all inputs and parameters*/ 125 Input 2* lsf_slopex_input=workelement->GetInput2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);126 Input 2* lsf_slopey_input=workelement->GetInput2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);125 Input* lsf_slopex_input=workelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input); 126 Input* lsf_slopey_input=workelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input); 127 127 workelement->GetVerticesCoordinates(&xyz_list); 128 128 … … 268 268 element->FindParam(&extvar_enum, ExtrapolationVariableEnum); 269 269 270 Input 2* active_input=element->GetInput2(IceMaskNodeActivationEnum); _assert_(active_input);271 Input 2* extvar_input=element->GetInput2(extvar_enum); _assert_(extvar_input);270 Input* active_input=element->GetInput(IceMaskNodeActivationEnum); _assert_(active_input); 271 Input* extvar_input=element->GetInput(extvar_enum); _assert_(extvar_input); 272 272 273 273 Gauss* gauss=element->NewGauss(); -
issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/ExtrudeFromBaseAnalysis.cpp
r25317 r25379 18 18 return 1; 19 19 }/*}}}*/ 20 void ExtrudeFromBaseAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/20 void ExtrudeFromBaseAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 21 21 22 22 int counter=0; … … 24 24 if(iomodel->my_elements[i]){ 25 25 Element* element=(Element*)elements->GetObjectByOffset(counter); 26 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);26 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 27 27 counter++; 28 28 } … … 30 30 31 31 if(iomodel->domaintype==Domain2DverticalEnum){ 32 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);32 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 33 33 } 34 34 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/ExtrudeFromBaseAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/ExtrudeFromTopAnalysis.cpp
r25317 r25379 18 18 return 1; 19 19 }/*}}}*/ 20 void ExtrudeFromTopAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/20 void ExtrudeFromTopAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 21 21 22 22 int counter=0; … … 24 24 if(iomodel->my_elements[i]){ 25 25 Element* element=(Element*)elements->GetObjectByOffset(counter); 26 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);26 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 27 27 counter++; 28 28 } … … 30 30 31 31 if(iomodel->domaintype==Domain2DverticalEnum){ 32 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);32 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 33 33 } 34 34 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/ExtrudeFromTopAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
r25317 r25379 55 55 return 1; 56 56 }/*}}}*/ 57 void FreeSurfaceBaseAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/57 void FreeSurfaceBaseAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 58 58 59 59 /*Now, is the model 3d? otherwise, do nothing: */ … … 68 68 if(iomodel->my_elements[i]){ 69 69 Element* element=(Element*)elements->GetObjectByOffset(counter); 70 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);70 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 71 71 counter++; 72 72 } 73 73 } 74 74 75 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);76 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);77 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);78 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum,0.);79 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);80 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);75 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 76 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 77 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 78 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum,0.); 79 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 80 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 81 81 if(iomodel->domaindim==3){ 82 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vz",VzEnum);82 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum); 83 83 } 84 84 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 85 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);86 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);85 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 86 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 87 87 } 88 88 … … 92 92 switch(basalforcing_model){ 93 93 case FloatingMeltRateEnum: 94 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);94 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum); 95 95 break; 96 96 case LinearFloatingMeltRateEnum: … … 101 101 break; 102 102 case SpatialLinearFloatingMeltRateEnum: 103 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);104 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);105 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum);103 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum); 104 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum); 105 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum); 106 106 break; 107 107 case BasalforcingsPicoEnum: 108 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);109 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum);108 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum); 109 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum); 110 110 break; 111 111 case BasalforcingsIsmip6Enum: 112 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);112 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum); 113 113 break; 114 114 case BeckmannGoosseFloatingMeltRateEnum: 115 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);116 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);115 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum); 116 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum); 117 117 break; 118 118 default: … … 176 176 basalelement->FindParam(&dt,TimesteppingTimeStepEnum); 177 177 basalelement->FindParam(&stabilization,MasstransportStabilizationEnum); 178 Input 2* vx_input=basalelement->GetInput2(VxEnum); _assert_(vx_input);179 Input 2* vy_input=NULL;180 if(dim>1){vy_input = basalelement->GetInput 2(VyEnum); _assert_(vy_input);}178 Input* vx_input=basalelement->GetInput(VxEnum); _assert_(vx_input); 179 Input* vy_input=NULL; 180 if(dim>1){vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input);} 181 181 h = basalelement->CharacteristicLength(); 182 182 … … 307 307 basalelement->GetVerticesCoordinates(&xyz_list); 308 308 basalelement->FindParam(&dt,TimesteppingTimeStepEnum); 309 Input 2* groundedice_input = basalelement->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedice_input);310 Input 2* gmb_input = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input);311 Input 2* fmb_input = basalelement->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input);312 Input 2* base_input = basalelement->GetInput2(BaseEnum); _assert_(base_input);313 Input 2* vz_input = NULL;309 Input* groundedice_input = basalelement->GetInput(MaskOceanLevelsetEnum); _assert_(groundedice_input); 310 Input* gmb_input = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 311 Input* fmb_input = basalelement->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); 312 Input* base_input = basalelement->GetInput(BaseEnum); _assert_(base_input); 313 Input* vz_input = NULL; 314 314 switch(dim){ 315 case 1: vz_input = basalelement->GetInput 2(VyEnum); _assert_(vz_input); break;316 case 2: vz_input = basalelement->GetInput 2(VzEnum); _assert_(vz_input); break;315 case 1: vz_input = basalelement->GetInput(VyEnum); _assert_(vz_input); break; 316 case 2: vz_input = basalelement->GetInput(VzEnum); _assert_(vz_input); break; 317 317 default: _error_("not implemented"); 318 318 } … … 365 365 366 366 int numnodes = element->GetNumberOfNodes(); 367 Input 2* groundedice_input = element->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedice_input);368 Input 2* onbase_input = element->GetInput2(MeshVertexonbaseEnum); _assert_(onbase_input);369 Input 2* base_input = element->GetInput2(BaseEnum); _assert_(base_input);367 Input* groundedice_input = element->GetInput(MaskOceanLevelsetEnum); _assert_(groundedice_input); 368 Input* onbase_input = element->GetInput(MeshVertexonbaseEnum); _assert_(onbase_input); 369 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 370 370 371 371 Gauss* gauss=element->NewGauss(); -
issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp
r25317 r25379 55 55 return 1; 56 56 }/*}}}*/ 57 void FreeSurfaceTopAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/57 void FreeSurfaceTopAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 58 58 59 59 /*Now, is the model 3d? otherwise, do nothing: */ … … 71 71 if(iomodel->my_elements[i]){ 72 72 Element* element=(Element*)elements->GetObjectByOffset(counter); 73 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);73 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 74 74 counter++; 75 75 } 76 76 } 77 77 78 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);79 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);80 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);81 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);78 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 79 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 80 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 81 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 82 82 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 83 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);84 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);83 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 84 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 85 85 } 86 86 if(iomodel->domaindim==3){ 87 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vz",VzEnum);87 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum); 88 88 } 89 89 switch(smb_model){ 90 90 case SMBforcingEnum: 91 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.mass_balance",SmbMassBalanceEnum,0.);91 iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum,0.); 92 92 break; 93 93 default: … … 152 152 topelement->FindParam(&dt,TimesteppingTimeStepEnum); 153 153 topelement->FindParam(&stabilization,MasstransportStabilizationEnum); 154 Input 2* vx_input=topelement->GetInput2(VxEnum); _assert_(vx_input);155 Input 2* vy_input=NULL;156 if(dim>1){vy_input = topelement->GetInput 2(VyEnum); _assert_(vy_input);}154 Input* vx_input=topelement->GetInput(VxEnum); _assert_(vx_input); 155 Input* vy_input=NULL; 156 if(dim>1){vy_input = topelement->GetInput(VyEnum); _assert_(vy_input);} 157 157 h = topelement->CharacteristicLength(); 158 158 … … 286 286 topelement->GetVerticesCoordinates(&xyz_list); 287 287 topelement->FindParam(&dt,TimesteppingTimeStepEnum); 288 Input 2* ms_input = topelement->GetInput2(SmbMassBalanceEnum); _assert_(ms_input);289 Input 2* surface_input = topelement->GetInput2(SurfaceEnum); _assert_(surface_input);290 Input 2* vz_input = NULL;288 Input* ms_input = topelement->GetInput(SmbMassBalanceEnum); _assert_(ms_input); 289 Input* surface_input = topelement->GetInput(SurfaceEnum); _assert_(surface_input); 290 Input* vz_input = NULL; 291 291 switch(dim){ 292 case 1: vz_input = topelement->GetInput 2(VyEnum); _assert_(vz_input); break;293 case 2: vz_input = topelement->GetInput 2(VzEnum); _assert_(vz_input); break;292 case 1: vz_input = topelement->GetInput(VyEnum); _assert_(vz_input); break; 293 case 2: vz_input = topelement->GetInput(VzEnum); _assert_(vz_input); break; 294 294 default: _error_("not implemented"); 295 295 } -
issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp
r25317 r25379 24 24 return 1; 25 25 }/*}}}*/ 26 void GLheightadvectionAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/26 void GLheightadvectionAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 27 27 28 28 /*Update elements: */ … … 31 31 if(iomodel->my_elements[i]){ 32 32 Element* element=(Element*)elements->GetObjectByOffset(counter); 33 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);33 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 34 34 counter++; 35 35 } … … 37 37 38 38 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 39 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);40 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);41 } 42 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonboundary",MeshVertexonboundaryEnum);39 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 40 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 41 } 42 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonboundary",MeshVertexonboundaryEnum); 43 43 }/*}}}*/ 44 44 void GLheightadvectionAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/ … … 71 71 IssmDouble vel,vx,vy; 72 72 IssmDouble* xyz_list = NULL; 73 Input 2* vx_input = NULL;74 Input 2* vy_input = NULL;75 Input 2* bc_input = NULL;73 Input* vx_input = NULL; 74 Input* vy_input = NULL; 75 Input* bc_input = NULL; 76 76 77 77 /*Get problem dimension*/ … … 95 95 /*Retrieve all inputs and parameters*/ 96 96 basalelement->GetVerticesCoordinates(&xyz_list); 97 vx_input=basalelement->GetInput 2(VxEnum); _assert_(vx_input);98 vy_input=basalelement->GetInput 2(VyEnum); _assert_(vy_input);99 bc_input=basalelement->GetInput 2(MeshVertexonboundaryEnum); _assert_(bc_input);97 vx_input=basalelement->GetInput(VxEnum); _assert_(vx_input); 98 vy_input=basalelement->GetInput(VyEnum); _assert_(vy_input); 99 bc_input=basalelement->GetInput(MeshVertexonboundaryEnum); _assert_(bc_input); 100 100 101 101 IssmDouble h = basalelement->CharacteristicLength(); -
issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/GiaAnalysis.cpp
r25317 r25379 18 18 return 1; 19 19 }/*}}}*/ 20 void GiaAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/20 void GiaAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 21 21 22 22 int giamodel=0; … … 28 28 if(iomodel->my_elements[i]){ 29 29 Element* element=(Element*)elements->GetObjectByOffset(counter); 30 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);30 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 31 31 counter++; 32 32 } … … 36 36 iomodel->FetchData(&giamodel,"md.gia.model"); 37 37 if(giamodel==1){ //GiaIvins 38 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);39 iomodel->FetchDataToInput(inputs 2,elements,"md.gia.mantle_viscosity",GiaMantleViscosityEnum);40 iomodel->FetchDataToInput(inputs 2,elements,"md.gia.lithosphere_thickness",GiaLithosphereThicknessEnum);41 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);38 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 39 iomodel->FetchDataToInput(inputs,elements,"md.gia.mantle_viscosity",GiaMantleViscosityEnum); 40 iomodel->FetchDataToInput(inputs,elements,"md.gia.lithosphere_thickness",GiaLithosphereThicknessEnum); 41 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 42 42 } 43 43 else if(giamodel==2){ //GiaCaron: not implemneted yet … … 45 45 else if(giamodel==3){ 46 46 /*take Ngia and Ugia from the offline models and plug into the element inputs:*/ 47 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.gia.Ngia",GiaMmeNgiaEnum);48 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.gia.Ugia",GiaMmeUgiaEnum);47 iomodel->FetchDataToDatasetInput(inputs,elements,"md.gia.Ngia",GiaMmeNgiaEnum); 48 iomodel->FetchDataToDatasetInput(inputs,elements,"md.gia.Ugia",GiaMmeUgiaEnum); 49 49 } 50 50 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/GiaAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
r25317 r25379 34 34 parameters->AddObject(new IntParam(HydrologydcEplThickCompEnum,eplthickcomp)); 35 35 }/*}}}*/ 36 void HydrologyDCEfficientAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/36 void HydrologyDCEfficientAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 37 37 38 38 bool isefficientlayer; … … 52 52 if(iomodel->my_elements[i]){ 53 53 Element* element=(Element*)elements->GetObjectByOffset(counter); 54 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);54 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 55 55 counter++; 56 56 } 57 57 } 58 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);59 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);60 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);61 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.epl_head",EplHeadSubstepEnum);62 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.sediment_head",SedimentHeadSubstepEnum);63 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.epl_thickness",HydrologydcEplThicknessSubstepEnum);64 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.basal_moulin_input",HydrologydcBasalMoulinInputEnum);58 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 59 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 60 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 61 iomodel->FetchDataToInput(inputs,elements,"md.initialization.epl_head",EplHeadSubstepEnum); 62 iomodel->FetchDataToInput(inputs,elements,"md.initialization.sediment_head",SedimentHeadSubstepEnum); 63 iomodel->FetchDataToInput(inputs,elements,"md.initialization.epl_thickness",HydrologydcEplThicknessSubstepEnum); 64 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.basal_moulin_input",HydrologydcBasalMoulinInputEnum); 65 65 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 66 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);67 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);66 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 67 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 68 68 } 69 69 }/*}}}*/ … … 211 211 basalelement->GetVerticesCoordinates(&xyz_list); 212 212 basalelement->FindParam(&dt,TimesteppingTimeStepEnum); 213 Input 2* epl_thick_input = basalelement->GetInput2(HydrologydcEplThicknessSubstepEnum); _assert_(epl_thick_input);213 Input* epl_thick_input = basalelement->GetInput(HydrologydcEplThicknessSubstepEnum); _assert_(epl_thick_input); 214 214 215 215 /* Start looping on the number of gaussian points: */ … … 291 291 292 292 IssmDouble *xyz_list = NULL; 293 Input 2*old_wh_input = NULL;294 Input 2*dummy_input = NULL;295 Input 2*surface_runoff_input = NULL;293 Input *old_wh_input = NULL; 294 Input *dummy_input = NULL; 295 Input *surface_runoff_input = NULL; 296 296 297 297 /*Fetch number of nodes and dof for this finite element*/ … … 308 308 basalelement ->FindParam(&smb_model,SmbEnum); 309 309 310 Input 2* epl_thick_input = basalelement->GetInput2(HydrologydcEplThicknessSubstepEnum); _assert_(epl_thick_input);311 Input 2* sed_head_input = basalelement->GetInput2(SedimentHeadSubstepEnum); _assert_(sed_head_input);312 Input 2* basal_melt_input = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melt_input);313 Input 2* residual_input = basalelement->GetInput2(SedimentHeadResidualEnum); _assert_(residual_input);310 Input* epl_thick_input = basalelement->GetInput(HydrologydcEplThicknessSubstepEnum); _assert_(epl_thick_input); 311 Input* sed_head_input = basalelement->GetInput(SedimentHeadSubstepEnum); _assert_(sed_head_input); 312 Input* basal_melt_input = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melt_input); 313 Input* residual_input = basalelement->GetInput(SedimentHeadResidualEnum); _assert_(residual_input); 314 314 315 315 if(dt!= 0.){ 316 old_wh_input = basalelement->GetInput 2(EplHeadOldEnum); _assert_(old_wh_input);316 old_wh_input = basalelement->GetInput(EplHeadOldEnum); _assert_(old_wh_input); 317 317 } 318 318 if(smb_model==SMBgradientscomponentsEnum){ … … 323 323 if(smbsubstepping==1){ 324 324 //no substeping for the smb we take the result from there 325 dummy_input = basalelement->GetInput 2(SmbRunoffEnum); _assert_(dummy_input);325 dummy_input = basalelement->GetInput(SmbRunoffEnum); _assert_(dummy_input); 326 326 } 327 327 else if(smbsubstepping>1 && smbsubstepping<=hydrologysubstepping){ 328 328 //finer hydro stepping, we take the value at the needed time 329 dummy_input = basalelement->GetInput 2(SmbRunoffTransientEnum, time); _assert_(dummy_input);329 dummy_input = basalelement->GetInput(SmbRunoffTransientEnum, time); _assert_(dummy_input); 330 330 } 331 331 else{ 332 332 //finer stepping in smb, we average the runoff from transient input 333 333 basalelement->FindParam(&smb_averaging,SmbAveragingEnum); 334 dummy_input = basalelement->GetInput 2(SmbRunoffTransientEnum,time-dt,time,smb_averaging); _assert_(dummy_input);335 } 336 surface_runoff_input=xDynamicCast<Input 2*>(dummy_input); _assert_(surface_runoff_input);334 dummy_input = basalelement->GetInput(SmbRunoffTransientEnum,time-dt,time,smb_averaging); _assert_(dummy_input); 335 } 336 surface_runoff_input=xDynamicCast<Input*>(dummy_input); _assert_(surface_runoff_input); 337 337 } 338 338 … … 422 422 } 423 423 /*Add input to the element: */ 424 element->AddBasalInput 2(EplHeadSubstepEnum,eplHeads,P1Enum);424 element->AddBasalInput(EplHeadSubstepEnum,eplHeads,P1Enum); 425 425 426 426 /*Free ressources:*/ … … 435 435 436 436 /*Intermediaries*/ 437 IssmDouble HydrologyDCEfficientAnalysis::EplStoring(Element* element,Gauss* gauss, Input 2* epl_thick_input){/*{{{*/437 IssmDouble HydrologyDCEfficientAnalysis::EplStoring(Element* element,Gauss* gauss, Input* epl_thick_input){/*{{{*/ 438 438 IssmDouble epl_storing; 439 439 IssmDouble epl_thickness; … … 446 446 return epl_storing; 447 447 }/*}}}*/ 448 IssmDouble HydrologyDCEfficientAnalysis::EplTransmitivity(Element* element,Gauss* gauss, Input 2* epl_thick_input){/*{{{*/448 IssmDouble HydrologyDCEfficientAnalysis::EplTransmitivity(Element* element,Gauss* gauss, Input* epl_thick_input){/*{{{*/ 449 449 IssmDouble epl_transmitivity; 450 450 IssmDouble epl_thickness; … … 511 511 return transfer; 512 512 }/*}}}*/ 513 IssmDouble HydrologyDCEfficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input 2* sed_head_input){/*{{{*/513 IssmDouble HydrologyDCEfficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* sed_head_input){/*{{{*/ 514 514 515 515 int transfermethod; … … 634 634 } 635 635 } 636 element->AddInput 2(HydrologydcEplThicknessSubstepEnum,thickness,element->GetElementType());636 element->AddInput(HydrologydcEplThicknessSubstepEnum,thickness,element->GetElementType()); 637 637 xDelete<IssmDouble>(thickness); 638 638 xDelete<IssmDouble>(eplhead); … … 724 724 } 725 725 } 726 element->AddBasalInput 2(HydrologydcEplThicknessSubstepEnum,epl_thickness,basalelement->GetElementType());726 element->AddBasalInput(HydrologydcEplThicknessSubstepEnum,epl_thickness,basalelement->GetElementType()); 727 727 728 728 if(domaintype!=Domain2DhorizontalEnum){ -
issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.h
r25317 r25379 9 9 #include "./Analysis.h" 10 10 class Node; 11 class Input 2;11 class Input; 12 12 class HydrologyDCEfficientAnalysis: public Analysis{ 13 13 … … 16 16 int DofsPerNode(int** doflist,int domaintype,int approximation); 17 17 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 18 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);18 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 19 19 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 20 20 void CreateConstraints(Constraints* constraints,IoModel* iomodel); … … 35 35 36 36 /*Intermediaries*/ 37 IssmDouble EplStoring(Element* element,Gauss* gauss, Input 2* epl_thick_input);38 IssmDouble EplTransmitivity(Element* element,Gauss* gauss, Input 2* epl_thick_input);37 IssmDouble EplStoring(Element* element,Gauss* gauss, Input* epl_thick_input); 38 IssmDouble EplTransmitivity(Element* element,Gauss* gauss, Input* epl_thick_input); 39 39 void GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode); 40 40 IssmDouble GetHydrologyKMatrixTransfer(Element* element); 41 IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input 2* sed_head_input);41 IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* sed_head_input); 42 42 void ComputeEPLThickness(FemModel* femmodel); 43 43 void HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask, Vector<IssmDouble>* recurence, Element* element); -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r25317 r25379 5 5 #include "../shared/shared.h" 6 6 #include "../modules/modules.h" 7 #include "../classes/Inputs 2/TransientInput2.h"7 #include "../classes/Inputs/TransientInput.h" 8 8 9 9 /*Model processing*/ … … 79 79 iomodel->DeleteData(&requestedoutputs,numoutputs,"md.hydrology.requested_outputs"); 80 80 }/*}}}*/ 81 void HydrologyDCInefficientAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/81 void HydrologyDCInefficientAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 82 82 83 83 bool isefficientlayer; … … 98 98 if(iomodel->my_elements[i]){ 99 99 Element* element=(Element*)elements->GetObjectByOffset(counter); 100 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);100 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 101 101 counter++; 102 102 } 103 103 } 104 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);105 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);106 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);107 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);108 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.basal_moulin_input",HydrologydcBasalMoulinInputEnum);109 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.sediment_head",SedimentHeadSubstepEnum);110 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.sediment_transmitivity",HydrologydcSedimentTransmitivityEnum);111 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.mask_thawed_node",HydrologydcMaskThawedNodeEnum);104 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 105 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 106 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 107 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 108 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.basal_moulin_input",HydrologydcBasalMoulinInputEnum); 109 iomodel->FetchDataToInput(inputs,elements,"md.initialization.sediment_head",SedimentHeadSubstepEnum); 110 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.sediment_transmitivity",HydrologydcSedimentTransmitivityEnum); 111 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.mask_thawed_node",HydrologydcMaskThawedNodeEnum); 112 112 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 113 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);114 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);113 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 114 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 115 115 } 116 116 if(isefficientlayer){ 117 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.mask_eplactive_node",HydrologydcMaskEplactiveNodeEnum);118 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.epl_head",EplHeadSubstepEnum);117 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.mask_eplactive_node",HydrologydcMaskEplactiveNodeEnum); 118 iomodel->FetchDataToInput(inputs,elements,"md.initialization.epl_head",EplHeadSubstepEnum); 119 119 } 120 120 … … 205 205 } 206 206 207 basalelement->GetInput 2Value(&thawed_element,HydrologydcMaskThawedEltEnum);207 basalelement->GetInputValue(&thawed_element,HydrologydcMaskThawedEltEnum); 208 208 209 209 /*Check that all nodes are active, else return empty matrix*/ … … 235 235 basalelement ->FindParam(&dt,TimesteppingTimeStepEnum); 236 236 basalelement ->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum); 237 Input 2* SedTrans_input = basalelement->GetInput2(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input);238 Input 2* sed_head_input = basalelement->GetInput2(SedimentHeadSubstepEnum);239 Input 2* base_input = basalelement->GetInput2(BaseEnum);237 Input* SedTrans_input = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input); 238 Input* sed_head_input = basalelement->GetInput(SedimentHeadSubstepEnum); 239 Input* base_input = basalelement->GetInput(BaseEnum); 240 240 241 241 /*Transfer related Inputs*/ 242 242 if(isefficientlayer){ 243 basalelement->GetInput 2Value(&active_element,HydrologydcMaskEplactiveEltEnum);243 basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum); 244 244 } 245 245 /* Start looping on the number of gaussian points: */ … … 308 308 } 309 309 310 basalelement->GetInput 2Value(&thawed_element,HydrologydcMaskThawedEltEnum);310 basalelement->GetInputValue(&thawed_element,HydrologydcMaskThawedEltEnum); 311 311 312 312 /*Check that all nodes are active, else return empty matrix*/ … … 329 329 330 330 IssmDouble *xyz_list = NULL; 331 Input 2*active_element_input = NULL;332 Input 2*old_wh_input = NULL;333 Input 2*dummy_input = NULL;334 Input 2*surface_runoff_input = NULL;331 Input *active_element_input = NULL; 332 Input *old_wh_input = NULL; 333 Input *dummy_input = NULL; 334 Input *surface_runoff_input = NULL; 335 335 336 336 /*Fetch number of nodes and dof for this finite element*/ … … 347 347 basalelement->FindParam(&smb_model,SmbEnum); 348 348 349 Input 2* sed_head_input = basalelement->GetInput2(SedimentHeadSubstepEnum);350 Input 2* epl_head_input = basalelement->GetInput2(EplHeadSubstepEnum);351 Input 2* base_input = basalelement->GetInput2(BaseEnum);352 Input 2* basal_melt_input = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melt_input);353 Input 2* SedTrans_input = basalelement->GetInput2(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input);349 Input* sed_head_input = basalelement->GetInput(SedimentHeadSubstepEnum); 350 Input* epl_head_input = basalelement->GetInput(EplHeadSubstepEnum); 351 Input* base_input = basalelement->GetInput(BaseEnum); 352 Input* basal_melt_input = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melt_input); 353 Input* SedTrans_input = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input); 354 354 355 355 if(dt!= 0.){ 356 old_wh_input = basalelement->GetInput 2(SedimentHeadOldEnum); _assert_(old_wh_input);356 old_wh_input = basalelement->GetInput(SedimentHeadOldEnum); _assert_(old_wh_input); 357 357 } 358 358 if(smb_model==SMBgradientscomponentsEnum){ … … 363 363 if(smbsubstepping==1){ 364 364 //no substeping for the smb we take the result from there 365 dummy_input = basalelement->GetInput 2(SmbRunoffEnum); _assert_(dummy_input);365 dummy_input = basalelement->GetInput(SmbRunoffEnum); _assert_(dummy_input); 366 366 } 367 367 else if(smbsubstepping>1 && smbsubstepping<=hydrologysubstepping){ 368 368 //finer hydro stepping, we take the value at the needed time 369 dummy_input = basalelement->GetInput 2(SmbRunoffTransientEnum, time); _assert_(dummy_input);369 dummy_input = basalelement->GetInput(SmbRunoffTransientEnum, time); _assert_(dummy_input); 370 370 } 371 371 else{ 372 372 //finer stepping in smb, we average the runoff from transient input 373 373 basalelement->FindParam(&smb_averaging,SmbAveragingEnum); 374 dummy_input = basalelement->GetInput 2(SmbRunoffTransientEnum,time-dt,time,smb_averaging); _assert_(dummy_input);375 } 376 surface_runoff_input=xDynamicCast<Input 2*>(dummy_input); _assert_(surface_runoff_input);374 dummy_input = basalelement->GetInput(SmbRunoffTransientEnum,time-dt,time,smb_averaging); _assert_(dummy_input); 375 } 376 surface_runoff_input=xDynamicCast<Input*>(dummy_input); _assert_(surface_runoff_input); 377 377 } 378 378 379 379 /*Transfer related Inputs*/ 380 380 if(isefficientlayer){ 381 basalelement->GetInput 2Value(&active_element,HydrologydcMaskEplactiveEltEnum);381 basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum); 382 382 } 383 383 … … 528 528 529 529 /*Add input to the element: */ 530 element->AddBasalInput 2(SedimentHeadSubstepEnum,values,P1Enum);531 element->AddBasalInput 2(EffectivePressureSubstepEnum,pressure,P1Enum);532 element->AddBasalInput 2(SedimentHeadResidualEnum,residual,P1Enum);530 element->AddBasalInput(SedimentHeadSubstepEnum,values,P1Enum); 531 element->AddBasalInput(EffectivePressureSubstepEnum,pressure,P1Enum); 532 element->AddBasalInput(SedimentHeadResidualEnum,residual,P1Enum); 533 533 534 534 /*Free ressources:*/ … … 547 547 }/*}}}*/ 548 548 /*Intermediaries*/ 549 IssmDouble HydrologyDCInefficientAnalysis::SedimentStoring(Element* element,Gauss* gauss,Input 2* sed_head_input, Input2* base_input){/*{{{*/549 IssmDouble HydrologyDCInefficientAnalysis::SedimentStoring(Element* element,Gauss* gauss,Input* sed_head_input, Input* base_input){/*{{{*/ 550 550 int unconf_scheme; 551 551 IssmDouble expfac; … … 577 577 return sediment_storing; 578 578 }/*}}}*/ 579 IssmDouble HydrologyDCInefficientAnalysis::SedimentTransmitivity(Element* element,Gauss* gauss,Input 2* sed_head_input, Input2* base_input,Input2* SedTrans_input){/*{{{*/579 IssmDouble HydrologyDCInefficientAnalysis::SedimentTransmitivity(Element* element,Gauss* gauss,Input* sed_head_input, Input* base_input,Input* SedTrans_input){/*{{{*/ 580 580 int unconf_scheme; 581 581 IssmDouble sediment_transmitivity; … … 664 664 return transfer; 665 665 }/*}}}*/ 666 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input 2* epl_head_input){/*{{{*/666 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_head_input){/*{{{*/ 667 667 668 668 int transfermethod; … … 696 696 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 697 697 698 Input 2* input=element->GetInput2(HydrologydcMaskEplactiveNodeEnum); _assert_(input);698 Input* input=element->GetInput(HydrologydcMaskEplactiveNodeEnum); _assert_(input); 699 699 if(input->GetInputMax()>0.){ 700 700 element_active = true; … … 703 703 element_active = false; 704 704 } 705 element->SetBoolInput(element->inputs 2,HydrologydcMaskEplactiveEltEnum,element_active);705 element->SetBoolInput(element->inputs,HydrologydcMaskEplactiveEltEnum,element_active); 706 706 } 707 707 }/*}}}*/ … … 756 756 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 757 757 758 Input 2* input=element->GetInput2(HydrologydcMaskThawedNodeEnum); _assert_(input);758 Input* input=element->GetInput(HydrologydcMaskThawedNodeEnum); _assert_(input); 759 759 if(input->GetInputMax()>0.){ 760 760 element_active = true; … … 763 763 element_active = false; 764 764 } 765 element->SetBoolInput(element->inputs 2,HydrologydcMaskThawedEltEnum,element_active);765 element->SetBoolInput(element->inputs,HydrologydcMaskThawedEltEnum,element_active); 766 766 } 767 767 }/*}}}*/ … … 791 791 /*Pass the activity mask from elements to nodes*/ 792 792 basalelement->GetInputListOnVertices(&active[0],HydrologydcMaskThawedNodeEnum); 793 basalelement->GetInput 2Value(&active_element,HydrologydcMaskThawedEltEnum);793 basalelement->GetInputValue(&active_element,HydrologydcMaskThawedEltEnum); 794 794 795 795 for(int i=0;i<numnodes;i++) flag+=active[i]; -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h
r25317 r25379 9 9 #include "./Analysis.h" 10 10 class Node; 11 class Input 2;11 class Input; 12 12 class HydrologyDCInefficientAnalysis: public Analysis{ 13 13 … … 16 16 int DofsPerNode(int** doflist,int domaintype,int approximation); 17 17 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 18 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);18 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 19 19 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 20 20 void CreateConstraints(Constraints* constraints,IoModel* iomodel); … … 33 33 34 34 /*Intermediaries*/ 35 IssmDouble SedimentStoring(Element* element, Gauss* gauss, Input 2* sed_head_input, Input2* base_input);36 IssmDouble SedimentTransmitivity(Element* element,Gauss* gauss,Input 2* sed_head_input, Input2* base_input,Input2* SedTrans_input);35 IssmDouble SedimentStoring(Element* element, Gauss* gauss, Input* sed_head_input, Input* base_input); 36 IssmDouble SedimentTransmitivity(Element* element,Gauss* gauss,Input* sed_head_input, Input* base_input,Input* SedTrans_input); 37 37 void GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode); 38 38 IssmDouble GetHydrologyKMatrixTransfer(Element* element); 39 IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input 2* epl_head_input);39 IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_head_input); 40 40 void ElementizeEplMask(FemModel* femmodel); 41 41 void HydrologyIDSGetMask(Vector<IssmDouble>* vec_mask, Element* element); -
issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp
r25317 r25379 107 107 return 1; 108 108 }/*}}}*/ 109 void HydrologyGlaDSAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/109 void HydrologyGlaDSAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 110 110 111 111 /*Fetch data needed: */ … … 121 121 if(iomodel->my_elements[i]){ 122 122 Element* element=(Element*)elements->GetObjectByOffset(counter); 123 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);123 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 124 124 counter++; 125 125 } 126 126 } 127 127 128 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);129 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);130 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.bed",BedEnum);131 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);132 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);128 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 129 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 130 iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum); 131 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum); 132 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 133 133 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 134 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);135 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);136 } 137 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);138 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);139 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.bump_height",HydrologyBumpHeightEnum);140 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.sheet_conductivity",HydrologySheetConductivityEnum);141 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.neumannflux",HydrologyNeumannfluxEnum);142 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.moulin_input",HydrologyMoulinInputEnum);143 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.watercolumn",HydrologySheetThicknessEnum);144 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.hydraulic_potential",HydraulicPotentialEnum);145 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);146 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);134 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 135 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 136 } 137 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 138 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 139 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.bump_height",HydrologyBumpHeightEnum); 140 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.sheet_conductivity",HydrologySheetConductivityEnum); 141 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.neumannflux",HydrologyNeumannfluxEnum); 142 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.moulin_input",HydrologyMoulinInputEnum); 143 iomodel->FetchDataToInput(inputs,elements,"md.initialization.watercolumn",HydrologySheetThicknessEnum); 144 iomodel->FetchDataToInput(inputs,elements,"md.initialization.hydraulic_potential",HydraulicPotentialEnum); 145 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 146 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 147 147 iomodel->FindConstant(&frictionlaw,"md.friction.law"); 148 148 … … 150 150 switch(frictionlaw){ 151 151 case 1: 152 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);153 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);154 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);152 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 153 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 154 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 155 155 break; 156 156 case 8: 157 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);157 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 158 158 break; 159 159 default: … … 249 249 IssmDouble g = element->FindParam(ConstantsGEnum); 250 250 IssmDouble e_v = element->FindParam(HydrologyEnglacialVoidRatioEnum); 251 Input 2* k_input = element->GetInput2(HydrologySheetConductivityEnum);_assert_(k_input);252 Input 2* phi_input = element->GetInput2(HydraulicPotentialEnum); _assert_(phi_input);253 Input 2* h_input = element->GetInput2(HydrologySheetThicknessEnum); _assert_(h_input);254 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);255 Input 2* b_input = element->GetInput2(BedEnum); _assert_(b_input);256 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);257 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);251 Input* k_input = element->GetInput(HydrologySheetConductivityEnum);_assert_(k_input); 252 Input* phi_input = element->GetInput(HydraulicPotentialEnum); _assert_(phi_input); 253 Input* h_input = element->GetInput(HydrologySheetThicknessEnum); _assert_(h_input); 254 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 255 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 256 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 257 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 258 258 259 259 /* Start looping on the number of gaussian points: */ … … 349 349 IssmDouble g = element->FindParam(ConstantsGEnum); 350 350 IssmDouble e_v = element->FindParam(HydrologyEnglacialVoidRatioEnum); 351 Input 2* hr_input = element->GetInput2(HydrologyBumpHeightEnum);_assert_(hr_input);352 Input 2* vx_input = element->GetInput2(VxEnum);_assert_(vx_input);353 Input 2* vy_input = element->GetInput2(VyEnum);_assert_(vy_input);354 Input 2* h_input = element->GetInput2(HydrologySheetThicknessEnum);_assert_(h_input);355 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);356 Input 2* b_input = element->GetInput2(BedEnum); _assert_(b_input);357 Input 2* G_input = element->GetInput2(BasalforcingsGeothermalfluxEnum);_assert_(G_input);358 Input 2* m_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum);_assert_(m_input);359 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);360 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);361 Input 2* phiold_input = element->GetInput2(HydraulicPotentialOldEnum); _assert_(phiold_input);362 Input 2* phi_input = element->GetInput2(HydraulicPotentialEnum); _assert_(phi_input);351 Input* hr_input = element->GetInput(HydrologyBumpHeightEnum);_assert_(hr_input); 352 Input* vx_input = element->GetInput(VxEnum);_assert_(vx_input); 353 Input* vy_input = element->GetInput(VyEnum);_assert_(vy_input); 354 Input* h_input = element->GetInput(HydrologySheetThicknessEnum);_assert_(h_input); 355 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 356 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 357 Input* G_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(G_input); 358 Input* m_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);_assert_(m_input); 359 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 360 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 361 Input* phiold_input = element->GetInput(HydraulicPotentialOldEnum); _assert_(phiold_input); 362 Input* phi_input = element->GetInput(HydraulicPotentialEnum); _assert_(phi_input); 363 363 364 364 /*Build friction element, needed later: */ … … 486 486 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 487 487 IssmDouble g = element->FindParam(ConstantsGEnum); 488 Input 2* hr_input = element->GetInput2(HydrologyBumpHeightEnum);_assert_(hr_input);489 Input 2* vx_input = element->GetInput2(VxEnum);_assert_(vx_input);490 Input 2* vy_input = element->GetInput2(VyEnum);_assert_(vy_input);491 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);492 Input 2* b_input = element->GetInput2(BedEnum); _assert_(b_input);493 Input 2* hold_input = element->GetInput2(HydrologySheetThicknessOldEnum);_assert_(hold_input);494 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);495 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);496 Input 2* phi_input = element->GetInput2(HydraulicPotentialEnum); _assert_(phi_input);488 Input* hr_input = element->GetInput(HydrologyBumpHeightEnum);_assert_(hr_input); 489 Input* vx_input = element->GetInput(VxEnum);_assert_(vx_input); 490 Input* vy_input = element->GetInput(VyEnum);_assert_(vy_input); 491 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 492 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 493 Input* hold_input = element->GetInput(HydrologySheetThicknessOldEnum);_assert_(hold_input); 494 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 495 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 496 Input* phi_input = element->GetInput(HydraulicPotentialEnum); _assert_(phi_input); 497 497 498 498 /* Start looping on the number of gaussian points: */ … … 539 539 } 540 540 541 element->AddInput 2(HydrologySheetThicknessEnum,h_new,P1Enum);541 element->AddInput(HydrologySheetThicknessEnum,h_new,P1Enum); 542 542 543 543 /*Clean up and return*/ … … 569 569 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 570 570 IssmDouble g = element->FindParam(ConstantsGEnum); 571 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);572 Input 2* b_input = element->GetInput2(BedEnum); _assert_(b_input);573 Input 2* phi_input = element->GetInput2(HydraulicPotentialEnum); _assert_(phi_input);571 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 572 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 573 Input* phi_input = element->GetInput(HydraulicPotentialEnum); _assert_(phi_input); 574 574 575 575 /* Start looping on the number of gaussian points: */ … … 599 599 } 600 600 601 element->AddInput 2(EffectivePressureEnum,N,element->FiniteElement());601 element->AddInput(EffectivePressureEnum,N,element->FiniteElement()); 602 602 603 603 /*Clean up and return*/ -
issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/HydrologyPismAnalysis.cpp
r25317 r25379 22 22 return 0; 23 23 }/*}}}*/ 24 void HydrologyPismAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/24 void HydrologyPismAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 25 25 26 26 /*Fetch data needed: */ … … 32 32 33 33 /*Add input to elements*/ 34 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);35 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);36 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);37 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.drainage_rate",HydrologyDrainageRateEnum);38 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.watercolumn_max",HydrologyWatercolumnMaxEnum);39 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.watercolumn",WatercolumnEnum,0.);34 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 35 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 36 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 37 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.drainage_rate",HydrologyDrainageRateEnum); 38 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.watercolumn_max",HydrologyWatercolumnMaxEnum); 39 iomodel->FetchDataToInput(inputs,elements,"md.initialization.watercolumn",WatercolumnEnum,0.); 40 40 }/*}}}*/ 41 41 void HydrologyPismAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/ … … 132 132 /* Divide by connectivity, add degree of channelization as an input */ 133 133 /*FIXME: should be changed to P1, this is due to the NR, IsFloating will return 0 on this element, but it should not be DG*/ 134 element->AddInput 2(WatercolumnEnum,&watercolumn[0],P1DGEnum);134 element->AddInput(WatercolumnEnum,&watercolumn[0],P1DGEnum); 135 135 136 136 /*Clean up and return*/ -
issm/trunk-jpl/src/c/analyses/HydrologyPismAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.cpp
r25317 r25379 80 80 return 1; 81 81 }/*}}}*/ 82 void HydrologyShaktiAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/82 void HydrologyShaktiAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 83 83 84 84 /*Fetch data needed: */ … … 94 94 if(iomodel->my_elements[i]){ 95 95 Element* element=(Element*)elements->GetObjectByOffset(counter); 96 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);96 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 97 97 counter++; 98 98 } 99 99 } 100 100 101 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);102 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);101 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 102 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 103 103 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 104 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);105 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);106 } 107 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);108 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);109 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);110 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);111 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.head",HydrologyHeadEnum);112 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.gap_height",HydrologyGapHeightEnum);113 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.englacial_input",HydrologyEnglacialInputEnum);114 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.moulin_input",HydrologyMoulinInputEnum);115 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.bump_spacing",HydrologyBumpSpacingEnum);116 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.bump_height",HydrologyBumpHeightEnum);117 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.reynolds",HydrologyReynoldsEnum);118 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.neumannflux",HydrologyNeumannfluxEnum);119 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);120 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);104 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 105 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 106 } 107 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 108 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 109 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 110 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum); 111 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.head",HydrologyHeadEnum); 112 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.gap_height",HydrologyGapHeightEnum); 113 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.englacial_input",HydrologyEnglacialInputEnum); 114 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.moulin_input",HydrologyMoulinInputEnum); 115 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.bump_spacing",HydrologyBumpSpacingEnum); 116 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.bump_height",HydrologyBumpHeightEnum); 117 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.reynolds",HydrologyReynoldsEnum); 118 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.neumannflux",HydrologyNeumannfluxEnum); 119 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 120 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 121 121 iomodel->FindConstant(&frictionlaw,"md.friction.law"); 122 122 … … 124 124 switch(frictionlaw){ 125 125 case 1: 126 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);127 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);128 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);126 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 127 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 128 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 129 129 break; 130 130 case 8: 131 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);131 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 132 132 break; 133 133 default: … … 244 244 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 245 245 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 246 Input 2* geothermalflux_input = element->GetInput2(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input);247 Input 2* head_input = element->GetInput2(HydrologyHeadEnum); _assert_(head_input);248 Input 2* gap_input = element->GetInput2(HydrologyGapHeightEnum); _assert_(gap_input);249 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);250 Input 2* base_input = element->GetInput2(BaseEnum); _assert_(base_input);251 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);252 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);253 Input 2* englacial_input = element->GetInput2(HydrologyEnglacialInputEnum); _assert_(englacial_input);254 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);255 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);256 Input 2* lr_input = element->GetInput2(HydrologyBumpSpacingEnum); _assert_(lr_input);257 Input 2* br_input = element->GetInput2(HydrologyBumpHeightEnum); _assert_(br_input);258 Input 2* headold_input = element->GetInput2(HydrologyHeadOldEnum); _assert_(headold_input);246 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input); 247 Input* head_input = element->GetInput(HydrologyHeadEnum); _assert_(head_input); 248 Input* gap_input = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input); 249 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 250 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 251 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 252 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 253 Input* englacial_input = element->GetInput(HydrologyEnglacialInputEnum); _assert_(englacial_input); 254 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 255 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 256 Input* lr_input = element->GetInput(HydrologyBumpSpacingEnum); _assert_(lr_input); 257 Input* br_input = element->GetInput(HydrologyBumpHeightEnum); _assert_(br_input); 258 Input* headold_input = element->GetInput(HydrologyHeadOldEnum); _assert_(headold_input); 259 259 260 260 /*Get conductivity from inputs*/ … … 403 403 404 404 /*Add input to the element: */ 405 element->AddInput 2(HydrologyHeadEnum,values,element->GetElementType());406 element->AddInput 2(EffectivePressureEnum,eff_pressure,P1Enum);405 element->AddInput(HydrologyHeadEnum,values,element->GetElementType()); 406 element->AddInput(EffectivePressureEnum,eff_pressure,P1Enum); 407 407 408 408 /*Update reynolds number according to new solution*/ 409 409 element->GetVerticesCoordinates(&xyz_list); 410 Input 2* head_input = element->GetInput2(HydrologyHeadEnum);_assert_(head_input);410 Input* head_input = element->GetInput(HydrologyHeadEnum);_assert_(head_input); 411 411 IssmDouble conductivity = GetConductivity(element); 412 412 … … 417 417 418 418 IssmDouble reynolds = conductivity*sqrt(dh[0]*dh[0]+dh[1]*dh[1])/NU; 419 element->AddInput 2(HydrologyReynoldsEnum,&reynolds,P0Enum);419 element->AddInput(HydrologyReynoldsEnum,&reynolds,P0Enum); 420 420 421 421 /*Free resources:*/ … … 443 443 444 444 /*Get Reynolds and gap average values*/ 445 Input 2* reynolds_input = element->GetInput2(HydrologyReynoldsEnum); _assert_(reynolds_input);446 Input 2* gap_input = element->GetInput2(HydrologyGapHeightEnum); _assert_(gap_input);445 Input* reynolds_input = element->GetInput(HydrologyReynoldsEnum); _assert_(reynolds_input); 446 Input* gap_input = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input); 447 447 reynolds_input->GetInputAverage(&reynolds); 448 448 gap_input->GetInputAverage(&gap); … … 486 486 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 487 487 IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum); 488 Input 2* geothermalflux_input = element->GetInput2(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input);489 Input 2* head_input = element->GetInput2(HydrologyHeadEnum); _assert_(head_input);490 Input 2* gap_input = element->GetInput2(HydrologyGapHeightEnum); _assert_(gap_input);491 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);492 Input 2* base_input = element->GetInput2(BaseEnum); _assert_(base_input);493 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);494 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);495 Input 2* englacial_input = element->GetInput2(HydrologyEnglacialInputEnum); _assert_(englacial_input);496 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);497 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);498 Input 2* lr_input = element->GetInput2(HydrologyBumpSpacingEnum); _assert_(lr_input);499 Input 2* br_input = element->GetInput2(HydrologyBumpHeightEnum); _assert_(br_input);488 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input); 489 Input* head_input = element->GetInput(HydrologyHeadEnum); _assert_(head_input); 490 Input* gap_input = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input); 491 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 492 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 493 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 494 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 495 Input* englacial_input = element->GetInput(HydrologyEnglacialInputEnum); _assert_(englacial_input); 496 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 497 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 498 Input* lr_input = element->GetInput(HydrologyBumpSpacingEnum); _assert_(lr_input); 499 Input* br_input = element->GetInput(HydrologyBumpHeightEnum); _assert_(br_input); 500 500 501 501 /*Get conductivity from inputs*/ … … 582 582 583 583 /*Add new gap as an input*/ 584 element->AddInput 2(HydrologyGapHeightEnum,&newgap,P0Enum);584 element->AddInput(HydrologyGapHeightEnum,&newgap,P0Enum); 585 585 586 586 /*Divide by connectivity, add basal flux as an input*/ 587 587 q = q/totalweights; 588 element->AddInput 2(HydrologyBasalFluxEnum,&q,P0Enum);588 element->AddInput(HydrologyBasalFluxEnum,&q,P0Enum); 589 589 590 590 /* Divide by connectivity, add degree of channelization as an input */ 591 591 channelization = channelization/totalweights; 592 element->AddInput 2(DegreeOfChannelizationEnum,&channelization,P0Enum);592 element->AddInput(DegreeOfChannelizationEnum,&channelization,P0Enum); 593 593 594 594 /*Clean up and return*/ -
issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp
r25317 r25379 36 36 return 1; 37 37 }/*}}}*/ 38 void HydrologyShreveAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/38 void HydrologyShreveAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 39 39 40 40 /*Fetch data needed: */ … … 50 50 if(iomodel->my_elements[i]){ 51 51 Element* element=(Element*)elements->GetObjectByOffset(counter); 52 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);52 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 53 53 counter++; 54 54 } 55 55 } 56 56 57 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);58 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);59 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);60 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);57 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 58 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 59 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 60 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 61 61 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 62 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);63 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);64 } 65 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);66 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);67 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);68 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.watercolumn",WatercolumnEnum);69 70 inputs 2->DuplicateInput(WatercolumnEnum,WaterColumnOldEnum);62 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 63 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 64 } 65 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 66 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 67 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 68 iomodel->FetchDataToInput(inputs,elements,"md.initialization.watercolumn",WatercolumnEnum); 69 70 inputs->DuplicateInput(WatercolumnEnum,WaterColumnOldEnum); 71 71 }/*}}}*/ 72 72 void HydrologyShreveAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/ … … 109 109 IssmDouble g = element->FindParam(ConstantsGEnum); 110 110 IssmDouble mu_water = element->FindParam(MaterialsMuWaterEnum); 111 Input 2* surfaceslopex_input = element->GetInput2(SurfaceSlopeXEnum); _assert_(surfaceslopex_input);112 Input 2* surfaceslopey_input = element->GetInput2(SurfaceSlopeYEnum); _assert_(surfaceslopey_input);113 Input 2* bedslopex_input = element->GetInput2(BedSlopeXEnum); _assert_(bedslopex_input);114 Input 2* bedslopey_input = element->GetInput2(BedSlopeYEnum); _assert_(bedslopey_input);115 Input 2* watercolumn_input = element->GetInput2(WatercolumnEnum); _assert_(watercolumn_input);111 Input* surfaceslopex_input = element->GetInput(SurfaceSlopeXEnum); _assert_(surfaceslopex_input); 112 Input* surfaceslopey_input = element->GetInput(SurfaceSlopeYEnum); _assert_(surfaceslopey_input); 113 Input* bedslopex_input = element->GetInput(BedSlopeXEnum); _assert_(bedslopex_input); 114 Input* bedslopey_input = element->GetInput(BedSlopeYEnum); _assert_(bedslopey_input); 115 Input* watercolumn_input = element->GetInput(WatercolumnEnum); _assert_(watercolumn_input); 116 116 117 117 /*Fetch number of vertices and allocate output*/ … … 138 138 139 139 /*Add to inputs*/ 140 element->AddInput 2(HydrologyWaterVxEnum,vx,P1Enum);141 element->AddInput 2(HydrologyWaterVyEnum,vy,P1Enum);140 element->AddInput(HydrologyWaterVxEnum,vx,P1Enum); 141 element->AddInput(HydrologyWaterVyEnum,vy,P1Enum); 142 142 xDelete<IssmDouble>(vx); 143 143 xDelete<IssmDouble>(vy); … … 171 171 element->FindParam(&dt,TimesteppingTimeStepEnum); 172 172 element->FindParam(&diffusivity,HydrologyshreveStabilizationEnum); 173 Input 2* vx_input=element->GetInput2(HydrologyWaterVxEnum); _assert_(vx_input);174 Input 2* vy_input=element->GetInput2(HydrologyWaterVyEnum); _assert_(vy_input);173 Input* vx_input=element->GetInput(HydrologyWaterVxEnum); _assert_(vx_input); 174 Input* vy_input=element->GetInput(HydrologyWaterVyEnum); _assert_(vy_input); 175 175 h = element->CharacteristicLength(); 176 176 … … 249 249 element->GetVerticesCoordinates(&xyz_list); 250 250 element->FindParam(&dt,TimesteppingTimeStepEnum); 251 Input 2* mb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);252 Input 2* oldw_input = element->GetInput2(WaterColumnOldEnum); _assert_(oldw_input);251 Input* mb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input); 252 Input* oldw_input = element->GetInput(WaterColumnOldEnum); _assert_(oldw_input); 253 253 254 254 /*Initialize mb_correction to 0, do not forget!:*/ … … 305 305 306 306 /*Add input to the element: */ 307 element->AddInput 2(WatercolumnEnum,values,element->GetElementType());307 element->AddInput(WatercolumnEnum,values,element->GetElementType()); 308 308 309 309 /*Free ressources:*/ -
issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp
r25317 r25379 28 28 return 1; 29 29 }/*}}}*/ 30 void L2ProjectionBaseAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/30 void L2ProjectionBaseAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 31 31 32 32 /*Update elements: */ … … 35 35 if(iomodel->my_elements[i]){ 36 36 Element* element=(Element*)elements->GetObjectByOffset(counter); 37 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);37 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 38 38 counter++; 39 39 } 40 40 } 41 41 42 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);43 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);44 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);45 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);42 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 43 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 44 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 45 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 46 46 if(iomodel->domaintype!=Domain2DhorizontalEnum & iomodel->domaintype!=Domain3DsurfaceEnum){ 47 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);48 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);47 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 48 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 49 49 } 50 50 }/*}}}*/ … … 144 144 int input_enum; 145 145 IssmDouble Jdet,value,slopes[2]; 146 Input 2*input = NULL;147 Input 2*input2 = NULL;146 Input *input = NULL; 147 Input *input2 = NULL; 148 148 IssmDouble *xyz_list = NULL; 149 149 … … 159 159 basalelement->FindParam(&input_enum,InputToL2ProjectEnum); 160 160 switch(input_enum){ 161 case SurfaceSlopeXEnum: input2 = basalelement->GetInput 2(SurfaceEnum); _assert_(input2); break;162 case SurfaceSlopeYEnum: input2 = basalelement->GetInput 2(SurfaceEnum); _assert_(input2); break;163 case BedSlopeXEnum: input2 = basalelement->GetInput 2(BaseEnum); _assert_(input2); break;164 case BedSlopeYEnum: input2 = basalelement->GetInput 2(BaseEnum); _assert_(input2); break;165 case BaseSlopeXEnum: input2 = basalelement->GetInput 2(BaseEnum); _assert_(input2); break;166 case BaseSlopeYEnum: input2 = basalelement->GetInput 2(BaseEnum); _assert_(input2); break;167 case LevelsetfunctionSlopeXEnum: input2 = basalelement->GetInput 2(MaskIceLevelsetEnum); _assert_(input2); break;168 case LevelsetfunctionSlopeYEnum: input2 = basalelement->GetInput 2(MaskIceLevelsetEnum); _assert_(input2); break;169 default: input = element->GetInput 2(input_enum);161 case SurfaceSlopeXEnum: input2 = basalelement->GetInput(SurfaceEnum); _assert_(input2); break; 162 case SurfaceSlopeYEnum: input2 = basalelement->GetInput(SurfaceEnum); _assert_(input2); break; 163 case BedSlopeXEnum: input2 = basalelement->GetInput(BaseEnum); _assert_(input2); break; 164 case BedSlopeYEnum: input2 = basalelement->GetInput(BaseEnum); _assert_(input2); break; 165 case BaseSlopeXEnum: input2 = basalelement->GetInput(BaseEnum); _assert_(input2); break; 166 case BaseSlopeYEnum: input2 = basalelement->GetInput(BaseEnum); _assert_(input2); break; 167 case LevelsetfunctionSlopeXEnum: input2 = basalelement->GetInput(MaskIceLevelsetEnum); _assert_(input2); break; 168 case LevelsetfunctionSlopeYEnum: input2 = basalelement->GetInput(MaskIceLevelsetEnum); _assert_(input2); break; 169 default: input = element->GetInput(input_enum); 170 170 } 171 171 -
issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/L2ProjectionEPLAnalysis.cpp
r25317 r25379 37 37 return 1; 38 38 }/*}}}*/ 39 void L2ProjectionEPLAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/39 void L2ProjectionEPLAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 40 40 41 41 bool isefficientlayer; … … 55 55 if(iomodel->my_elements[i]){ 56 56 Element* element=(Element*)elements->GetObjectByOffset(counter); 57 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);57 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 58 58 counter++; 59 59 } 60 60 } 61 61 62 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.epl_head",EplHeadSubstepEnum);63 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);62 iomodel->FetchDataToInput(inputs,elements,"md.initialization.epl_head",EplHeadSubstepEnum); 63 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 64 64 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 65 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);66 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);65 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 66 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 67 67 } 68 68 }/*}}}*/ … … 105 105 } 106 106 107 basalelement->GetInput 2Value(&active_element,HydrologydcMaskEplactiveEltEnum);107 basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum); 108 108 109 109 /* Check that all nodes are active, else return empty matrix */ … … 168 168 } 169 169 170 basalelement->GetInput 2Value(&active_element,HydrologydcMaskEplactiveEltEnum);170 basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum); 171 171 172 172 /*Check that all nodes are active, else return empty matrix*/ … … 182 182 int input_enum,index; 183 183 IssmDouble Jdet,slopes[2]; 184 Input 2*input = NULL;184 Input *input = NULL; 185 185 IssmDouble *xyz_list = NULL; 186 186 … … 196 196 basalelement->FindParam(&input_enum,InputToL2ProjectEnum); 197 197 switch(input_enum){ 198 case EplHeadSlopeXEnum: input = basalelement->GetInput 2(EplHeadSubstepEnum); index = 0; _assert_(input); break;199 case EplHeadSlopeYEnum: input = basalelement->GetInput 2(EplHeadSubstepEnum); index = 1; _assert_(input); break;198 case EplHeadSlopeXEnum: input = basalelement->GetInput(EplHeadSubstepEnum); index = 0; _assert_(input); break; 199 case EplHeadSlopeYEnum: input = basalelement->GetInput(EplHeadSubstepEnum); index = 1; _assert_(input); break; 200 200 default: _error_("not implemented"); 201 201 } -
issm/trunk-jpl/src/c/analyses/L2ProjectionEPLAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r25317 r25379 32 32 } 33 33 /*}}}*/ 34 void LevelsetAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/34 void LevelsetAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 35 35 36 36 /*Finite element type*/ … … 43 43 if(iomodel->my_elements[i]){ 44 44 Element* element=(Element*)elements->GetObjectByOffset(counter); 45 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);45 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 46 46 counter++; 47 47 } 48 48 } 49 49 50 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);51 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);52 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);50 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 51 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 52 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 53 53 54 54 /*Get moving front parameters*/ … … 57 57 switch(calvinglaw){ 58 58 case DefaultCalvingEnum: 59 iomodel->FetchDataToInput(inputs 2,elements,"md.calving.calvingrate",CalvingCalvingrateEnum);59 iomodel->FetchDataToInput(inputs,elements,"md.calving.calvingrate",CalvingCalvingrateEnum); 60 60 break; 61 61 case CalvingLevermannEnum: 62 iomodel->FetchDataToInput(inputs 2,elements,"md.calving.coeff",CalvinglevermannCoeffEnum);62 iomodel->FetchDataToInput(inputs,elements,"md.calving.coeff",CalvinglevermannCoeffEnum); 63 63 break; 64 64 case CalvingVonmisesEnum: 65 iomodel->FetchDataToInput(inputs 2,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);66 iomodel->FetchDataToInput(inputs 2,elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum);67 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.bed",BedEnum);65 iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum); 66 iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum); 67 iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum); 68 68 break; 69 69 case CalvingMinthicknessEnum: 70 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.bed",BedEnum);70 iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum); 71 71 break; 72 72 case CalvingHabEnum: 73 iomodel->FetchDataToInput(inputs 2,elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);73 iomodel->FetchDataToInput(inputs,elements,"md.calving.flotation_fraction",CalvingHabFractionEnum); 74 74 break; 75 75 case CalvingCrevasseDepthEnum: 76 iomodel->FetchDataToInput(inputs 2,elements,"md.calving.water_height",WaterheightEnum);76 iomodel->FetchDataToInput(inputs,elements,"md.calving.water_height",WaterheightEnum); 77 77 break; 78 78 case CalvingDev2Enum: 79 iomodel->FetchDataToInput(inputs 2,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);80 iomodel->FetchDataToInput(inputs 2,elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum);79 iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum); 80 iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum); 81 81 break; 82 82 default: … … 89 89 switch(melt_parameterization){ 90 90 case FrontalForcingsDefaultEnum: 91 iomodel->FetchDataToInput(inputs 2,elements,"md.frontalforcings.meltingrate",CalvingMeltingrateEnum);91 iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.meltingrate",CalvingMeltingrateEnum); 92 92 break; 93 93 case FrontalForcingsRignotEnum: 94 iomodel->FetchDataToInput(inputs 2,elements,"md.frontalforcings.basin",FrontalForcingsBasinIdEnum);95 iomodel->FetchDataToInput(inputs 2,elements,"md.frontalforcings.subglacial_discharge",FrontalForcingsSubglacialDischargeEnum);96 iomodel->FetchDataToInput(inputs 2,elements,"md.frontalforcings.thermalforcing",FrontalForcingsThermalForcingEnum);94 iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.basin",FrontalForcingsBasinIdEnum); 95 iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.subglacial_discharge",FrontalForcingsSubglacialDischargeEnum); 96 iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.thermalforcing",FrontalForcingsThermalForcingEnum); 97 97 break; 98 98 default: … … 226 226 basalelement->FindParam(&dt,TimesteppingTimeStepEnum); 227 227 basalelement->FindParam(&calvingmax,CalvingMaxEnum); 228 Input 2* vx_input = NULL;229 Input 2* vy_input = NULL;230 Input 2* calvingratex_input = NULL;231 Input 2* calvingratey_input = NULL;232 Input 2* lsf_slopex_input = NULL;233 Input 2* lsf_slopey_input = NULL;234 Input 2* calvingrate_input = NULL;235 Input 2* meltingrate_input = NULL;236 Input 2* gr_input = NULL;228 Input* vx_input = NULL; 229 Input* vy_input = NULL; 230 Input* calvingratex_input = NULL; 231 Input* calvingratey_input = NULL; 232 Input* lsf_slopex_input = NULL; 233 Input* lsf_slopey_input = NULL; 234 Input* calvingrate_input = NULL; 235 Input* meltingrate_input = NULL; 236 Input* gr_input = NULL; 237 237 238 238 /*Load velocities*/ 239 239 switch(domaintype){ 240 240 case Domain2DverticalEnum: 241 vx_input=basalelement->GetInput 2(VxEnum); _assert_(vx_input);241 vx_input=basalelement->GetInput(VxEnum); _assert_(vx_input); 242 242 break; 243 243 case Domain2DhorizontalEnum: 244 vx_input=basalelement->GetInput 2(VxEnum); _assert_(vx_input);245 vy_input=basalelement->GetInput 2(VyEnum); _assert_(vy_input);246 gr_input=basalelement->GetInput 2(MaskOceanLevelsetEnum); _assert_(gr_input);244 vx_input=basalelement->GetInput(VxEnum); _assert_(vx_input); 245 vy_input=basalelement->GetInput(VyEnum); _assert_(vy_input); 246 gr_input=basalelement->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input); 247 247 break; 248 248 case Domain3DEnum: 249 vx_input=basalelement->GetInput 2(VxAverageEnum); _assert_(vx_input);250 vy_input=basalelement->GetInput 2(VyAverageEnum); _assert_(vy_input);251 gr_input=basalelement->GetInput 2(MaskOceanLevelsetEnum); _assert_(gr_input);249 vx_input=basalelement->GetInput(VxAverageEnum); _assert_(vx_input); 250 vy_input=basalelement->GetInput(VyAverageEnum); _assert_(vy_input); 251 gr_input=basalelement->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input); 252 252 break; 253 253 default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet"); … … 258 258 case DefaultCalvingEnum: 259 259 case CalvingVonmisesEnum: 260 lsf_slopex_input = basalelement->GetInput 2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);261 if(dim==2) lsf_slopey_input = basalelement->GetInput 2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);262 calvingrate_input = basalelement->GetInput 2(CalvingCalvingrateEnum); _assert_(calvingrate_input);263 meltingrate_input = basalelement->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);260 lsf_slopex_input = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input); 261 if(dim==2) lsf_slopey_input = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input); 262 calvingrate_input = basalelement->GetInput(CalvingCalvingrateEnum); _assert_(calvingrate_input); 263 meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 264 264 break; 265 265 case CalvingLevermannEnum: 266 266 switch(domaintype){ 267 267 case Domain2DverticalEnum: 268 calvingratex_input=basalelement->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);268 calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 269 269 break; 270 270 case Domain2DhorizontalEnum: 271 calvingratex_input=basalelement->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);272 calvingratey_input=basalelement->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);271 calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 272 calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 273 273 break; 274 274 case Domain3DEnum: 275 calvingratex_input=basalelement->GetInput 2(CalvingratexAverageEnum); _assert_(calvingratex_input);276 calvingratey_input=basalelement->GetInput 2(CalvingrateyAverageEnum); _assert_(calvingratey_input);275 calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 276 calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 277 277 break; 278 278 default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet"); 279 279 } 280 meltingrate_input = basalelement->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);280 meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 281 281 break; 282 282 case CalvingMinthicknessEnum: 283 lsf_slopex_input = basalelement->GetInput 2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);284 if(dim==2) lsf_slopey_input = basalelement->GetInput 2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);285 meltingrate_input = basalelement->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);283 lsf_slopex_input = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input); 284 if(dim==2) lsf_slopey_input = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input); 285 meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 286 286 break; 287 287 case CalvingHabEnum: 288 lsf_slopex_input = basalelement->GetInput 2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);289 if(dim==2) lsf_slopey_input = basalelement->GetInput 2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);290 meltingrate_input = basalelement->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);288 lsf_slopex_input = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input); 289 if(dim==2) lsf_slopey_input = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input); 290 meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 291 291 break; 292 292 case CalvingCrevasseDepthEnum: 293 lsf_slopex_input = basalelement->GetInput 2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);294 if(dim==2) lsf_slopey_input = basalelement->GetInput 2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);295 meltingrate_input = basalelement->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);293 lsf_slopex_input = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input); 294 if(dim==2) lsf_slopey_input = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input); 295 meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 296 296 break; 297 297 case CalvingDev2Enum: 298 298 basalelement->FindParam(&calvinghaf,CalvingHeightAboveFloatationEnum); 299 lsf_slopex_input = basalelement->GetInput 2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);300 if(dim==2) lsf_slopey_input = basalelement->GetInput 2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);301 calvingrate_input = basalelement->GetInput 2(CalvingCalvingrateEnum); _assert_(calvingrate_input);302 meltingrate_input = basalelement->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);299 lsf_slopex_input = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input); 300 if(dim==2) lsf_slopey_input = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input); 301 calvingrate_input = basalelement->GetInput(CalvingCalvingrateEnum); _assert_(calvingrate_input); 302 meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 303 303 break; 304 304 default: … … 569 569 /*Retrieve all inputs and parameters*/ 570 570 basalelement->GetVerticesCoordinates(&xyz_list); 571 Input 2* levelset_input = basalelement->GetInput2(MaskIceLevelsetEnum); _assert_(levelset_input);571 Input* levelset_input = basalelement->GetInput(MaskIceLevelsetEnum); _assert_(levelset_input); 572 572 573 573 /* Start looping on the number of gaussian points: */ … … 661 661 int numnodes = element->GetNumberOfNodes(); 662 662 Gauss* gauss = element->NewGauss(); 663 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);664 Input 2* b_input = element->GetInput2(BedEnum); _assert_(b_input);665 Input 2* sl_input = element->GetInput2(SealevelEnum); _assert_(sl_input);663 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 664 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 665 Input* sl_input = element->GetInput(SealevelEnum); _assert_(sl_input); 666 666 667 667 /*Potentially constrain nodes of this element*/ … … 701 701 int numnodes = element->GetNumberOfNodes(); 702 702 Gauss* gauss = element->NewGauss(); 703 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);704 Input 2* bed_input = element->GetInput2(BedEnum); _assert_(bed_input);705 Input 2* hab_fraction_input = element->GetInput2(CalvingHabFractionEnum); _assert_(hab_fraction_input);706 Input 2* ls_input = element->GetInput2(DistanceToCalvingfrontEnum); _assert_(ls_input);703 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 704 Input* bed_input = element->GetInput(BedEnum); _assert_(bed_input); 705 Input* hab_fraction_input = element->GetInput(CalvingHabFractionEnum); _assert_(hab_fraction_input); 706 Input* ls_input = element->GetInput(DistanceToCalvingfrontEnum); _assert_(ls_input); 707 707 708 708 /*Potentially constrain nodes of this element*/ … … 746 746 int numnodes = element->GetNumberOfNodes(); 747 747 Gauss* gauss = element->NewGauss(); 748 Input 2* crevassedepth_input = element->GetInput2(CrevasseDepthEnum); _assert_(crevassedepth_input);749 Input 2* bed_input = element->GetInput2(BedEnum); _assert_(bed_input);750 Input 2* surface_crevasse_input = element->GetInput2(SurfaceCrevasseEnum); _assert_(surface_crevasse_input);751 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);752 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);748 Input* crevassedepth_input = element->GetInput(CrevasseDepthEnum); _assert_(crevassedepth_input); 749 Input* bed_input = element->GetInput(BedEnum); _assert_(bed_input); 750 Input* surface_crevasse_input = element->GetInput(SurfaceCrevasseEnum); _assert_(surface_crevasse_input); 751 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 752 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 753 753 754 754 /*First, look at ice front and figure out if any of the nodes will be calved*/ … … 784 784 int numnodes = element->GetNumberOfNodes(); 785 785 Gauss* gauss = element->NewGauss(); 786 Input 2* levelset_input = element->GetInput2(DistanceToCalvingfrontEnum); _assert_(levelset_input);787 Input 2* crevassedepth_input = element->GetInput2(CrevasseDepthEnum); _assert_(crevassedepth_input);788 Input 2* bed_input = element->GetInput2(BedEnum); _assert_(bed_input);789 Input 2* surface_crevasse_input = element->GetInput2(SurfaceCrevasseEnum); _assert_(surface_crevasse_input);790 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);791 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);786 Input* levelset_input = element->GetInput(DistanceToCalvingfrontEnum); _assert_(levelset_input); 787 Input* crevassedepth_input = element->GetInput(CrevasseDepthEnum); _assert_(crevassedepth_input); 788 Input* bed_input = element->GetInput(BedEnum); _assert_(bed_input); 789 Input* surface_crevasse_input = element->GetInput(SurfaceCrevasseEnum); _assert_(surface_crevasse_input); 790 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 791 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 792 792 793 793 /*Is this element connected to a node that should be calved*/ -
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/LoveAnalysis.cpp
r25317 r25379 15 15 _error_("not needed!"); 16 16 }/*}}}*/ 17 void LoveAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/17 void LoveAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 18 18 19 19 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/LoveAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r25317 r25379 111 111 return 1; 112 112 }/*}}}*/ 113 void MasstransportAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/113 void MasstransportAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 114 114 115 115 int stabilization,finiteelement; … … 140 140 if(iomodel->my_elements[i]){ 141 141 Element* element=(Element*)elements->GetObjectByOffset(counter); 142 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);142 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 143 143 counter++; 144 144 } 145 145 } 146 146 147 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);148 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);149 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);150 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);151 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);152 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);153 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);154 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);155 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);156 if(isgroundingline) iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.bed",BedEnum);147 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 148 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 149 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 150 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 151 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 152 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 153 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 154 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 155 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 156 if(isgroundingline) iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum); 157 157 /*Initialize cumdeltalthickness input*/ 158 InputUpdateFromConstantx(inputs 2,elements,0.,SealevelriseCumDeltathicknessEnum);158 InputUpdateFromConstantx(inputs,elements,0.,SealevelriseCumDeltathicknessEnum); 159 159 /*Initialize ThicknessResidual input*/ 160 InputUpdateFromConstantx(inputs 2,elements,0.,ThicknessResidualEnum);160 InputUpdateFromConstantx(inputs,elements,0.,ThicknessResidualEnum); 161 161 162 162 /*Get what we need for ocean-induced basal melting*/ … … 165 165 switch(basalforcing_model){ 166 166 case FloatingMeltRateEnum: 167 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);167 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum); 168 168 break; 169 169 case LinearFloatingMeltRateEnum: 170 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.perturbation_melting_rate",BasalforcingsPerturbationMeltingRateEnum,0.);170 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.perturbation_melting_rate",BasalforcingsPerturbationMeltingRateEnum,0.); 171 171 break; 172 172 case MismipFloatingMeltRateEnum: … … 175 175 break; 176 176 case SpatialLinearFloatingMeltRateEnum: 177 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);178 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);179 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum);177 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum); 178 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum); 179 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum); 180 180 break; 181 181 case BasalforcingsPicoEnum: 182 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);183 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum);182 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum); 183 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum); 184 184 break; 185 185 case BasalforcingsIsmip6Enum:{ 186 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);187 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.melt_anomaly",BasalforcingsIsmip6MeltAnomalyEnum,0.);186 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum); 187 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.melt_anomaly",BasalforcingsIsmip6MeltAnomalyEnum,0.); 188 188 IssmDouble** array3d = NULL; int* Ms = NULL; int* Ns = NULL; int K; 189 189 iomodel->FetchData(&array3d,&Ms,&Ns,&K,"md.basalforcings.tf"); … … 193 193 if(iomodel->domaintype!=Domain2DhorizontalEnum && !element->IsOnBase()) continue; 194 194 for(int kk=0;kk<K;kk++){ 195 element->DatasetInputAdd(BasalforcingsIsmip6TfEnum,array3d[kk],inputs 2,iomodel,Ms[kk],Ns[kk],1,BasalforcingsIsmip6TfEnum,7,kk);195 element->DatasetInputAdd(BasalforcingsIsmip6TfEnum,array3d[kk],inputs,iomodel,Ms[kk],Ns[kk],1,BasalforcingsIsmip6TfEnum,7,kk); 196 196 } 197 197 } … … 202 202 break; 203 203 case BeckmannGoosseFloatingMeltRateEnum: 204 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);205 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);204 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum); 205 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum); 206 206 break; 207 207 default: … … 210 210 211 211 if(!issmb){ 212 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);212 iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum); 213 213 } 214 214 if(stabilization==3){ 215 iomodel->FetchDataToInput(inputs 2,elements,"md.masstransport.spcthickness",MasstransportSpcthicknessEnum); //for DG, we need the spc in the element215 iomodel->FetchDataToInput(inputs,elements,"md.masstransport.spcthickness",MasstransportSpcthicknessEnum); //for DG, we need the spc in the element 216 216 } 217 217 if(stabilization==4){ 218 iomodel->FetchDataToInput(inputs 2,elements,"md.masstransport.spcthickness",MasstransportSpcthicknessEnum); //for FCT, we need the spc in the element (penlaties)218 iomodel->FetchDataToInput(inputs,elements,"md.masstransport.spcthickness",MasstransportSpcthicknessEnum); //for FCT, we need the spc in the element (penlaties) 219 219 } 220 220 221 221 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 222 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);223 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);222 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 223 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 224 224 } 225 225 … … 318 318 element->FindParam(&domaintype,DomainTypeEnum); 319 319 element->FindParam(&stabilization,MasstransportStabilizationEnum); 320 Input 2* vxaverage_input=element->GetInput2(VxAverageEnum); _assert_(vxaverage_input);321 Input 2* vyaverage_input=NULL;320 Input* vxaverage_input=element->GetInput(VxAverageEnum); _assert_(vxaverage_input); 321 Input* vyaverage_input=NULL; 322 322 if(dim==2){ 323 vyaverage_input=element->GetInput 2(VyAverageEnum); _assert_(vyaverage_input);323 vyaverage_input=element->GetInput(VyAverageEnum); _assert_(vyaverage_input); 324 324 } 325 325 … … 512 512 element->FindParam(&dt,TimesteppingTimeStepEnum); 513 513 element->FindParam(&domaintype,DomainTypeEnum); 514 Input 2* vxaverage_input=element->GetInput2(VxAverageEnum); _assert_(vxaverage_input);515 Input 2* vyaverage_input=element->GetInput2(VyAverageEnum); _assert_(vyaverage_input);514 Input* vxaverage_input=element->GetInput(VxAverageEnum); _assert_(vxaverage_input); 515 Input* vyaverage_input=element->GetInput(VyAverageEnum); _assert_(vyaverage_input); 516 516 517 517 /* Start looping on the number of gaussian points: */ … … 616 616 element->FindParam(&dt,TimesteppingTimeStepEnum); 617 617 element->FindParam(&stabilization,MasstransportStabilizationEnum); 618 Input 2* gmb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input);619 Input 2* fmb_input = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input);620 Input 2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);621 Input 2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input);622 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);623 Input 2* vxaverage_input = element->GetInput2(VxAverageEnum); _assert_(vxaverage_input);624 Input 2* vyaverage_input = element->GetInput2(VyAverageEnum); _assert_(vyaverage_input);618 Input* gmb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 619 Input* fmb_input = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); 620 Input* gllevelset_input = element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 621 Input* ms_input = element->GetInput(SmbMassBalanceEnum); _assert_(ms_input); 622 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 623 Input* vxaverage_input = element->GetInput(VxAverageEnum); _assert_(vxaverage_input); 624 Input* vyaverage_input = element->GetInput(VyAverageEnum); _assert_(vyaverage_input); 625 625 626 626 // if(element->Id()==9){ … … 730 730 element->FindParam(&dt,TimesteppingTimeStepEnum); 731 731 element->FindParam(&melt_style,GroundinglineMeltInterpolationEnum); 732 Input 2* gmb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input);733 Input 2* fmb_input = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input);734 Input 2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input);735 Input 2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);736 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);732 Input* gmb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 733 Input* fmb_input = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); 734 Input* ms_input = element->GetInput(SmbMassBalanceEnum); _assert_(ms_input); 735 Input* gllevelset_input = element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 736 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 737 737 738 738 /*Recover portion of element that is grounded*/ … … 819 819 } 820 820 } 821 element->AddBasalInput 2(ThicknessEnum,newthickness,element->GetElementType());822 element->AddBasalInput 2(ThicknessResidualEnum,thicknessresidual,element->GetElementType());821 element->AddBasalInput(ThicknessEnum,newthickness,element->GetElementType()); 822 element->AddBasalInput(ThicknessResidualEnum,thicknessresidual,element->GetElementType()); 823 823 824 824 xDelete<int>(doflist); … … 900 900 901 901 /*Add input to the element: */ 902 element->AddBasalInput 2(SurfaceEnum,newsurface,P1Enum);903 element->AddBasalInput 2(BaseEnum,newbase,P1Enum);904 element->AddBasalInput 2(SealevelriseCumDeltathicknessEnum,cumdeltathickness,P1Enum);905 element->AddBasalInput 2(SurfaceloadIceThicknessChangeEnum,deltathickness,P1Enum);902 element->AddBasalInput(SurfaceEnum,newsurface,P1Enum); 903 element->AddBasalInput(BaseEnum,newbase,P1Enum); 904 element->AddBasalInput(SealevelriseCumDeltathicknessEnum,cumdeltathickness,P1Enum); 905 element->AddBasalInput(SurfaceloadIceThicknessChangeEnum,deltathickness,P1Enum); 906 906 907 907 /*Free ressources:*/ … … 948 948 /*Retrieve all inputs and parameters*/ 949 949 element->GetVerticesCoordinates(&xyz_list); 950 Input 2* vxaverage_input=element->GetInput2(VxEnum); _assert_(vxaverage_input);951 Input 2* vyaverage_input=element->GetInput2(VyEnum); _assert_(vyaverage_input);950 Input* vxaverage_input=element->GetInput(VxEnum); _assert_(vxaverage_input); 951 Input* vyaverage_input=element->GetInput(VyEnum); _assert_(vyaverage_input); 952 952 953 953 /* Start looping on the number of gaussian points: */ … … 1061 1061 element->FindParam(&melt_style,GroundinglineMeltInterpolationEnum); 1062 1062 element->FindParam(&stabilization,MasstransportStabilizationEnum); 1063 Input 2* gmb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input);1064 Input 2* fmb_input = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input);1065 Input 2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);1066 Input 2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input);1067 Input 2* vxaverage_input = element->GetInput2(VxAverageEnum); _assert_(vxaverage_input);1068 Input 2* vyaverage_input = element->GetInput2(VyAverageEnum); _assert_(vyaverage_input);1063 Input* gmb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 1064 Input* fmb_input = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); 1065 Input* gllevelset_input = element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 1066 Input* ms_input = element->GetInput(SmbMassBalanceEnum); _assert_(ms_input); 1067 Input* vxaverage_input = element->GetInput(VxAverageEnum); _assert_(vxaverage_input); 1068 Input* vyaverage_input = element->GetInput(VyAverageEnum); _assert_(vyaverage_input); 1069 1069 1070 1070 /*Recover portion of element that is grounded*/ -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp
r25317 r25379 37 37 return 1; 38 38 }/*}}}*/ 39 void MeltingAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/39 void MeltingAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 40 40 41 41 /*Now, is the model 3d? otherwise, do nothing: */ … … 47 47 if(iomodel->my_elements[i]){ 48 48 Element* element=(Element*)elements->GetObjectByOffset(counter); 49 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);49 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 50 50 counter++; 51 51 } … … 53 53 54 54 /*Create inputs: */ 55 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);56 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);57 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);58 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);59 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);55 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 56 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 57 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 58 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 59 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 60 60 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 61 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);62 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);61 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 62 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 63 63 } 64 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);64 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 65 65 }/*}}}*/ 66 66 void MeltingAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/ -
issm/trunk-jpl/src/c/analyses/MeltingAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
r25323 r25379 3 3 #include "../toolkits/toolkits.h" 4 4 #include "../classes/classes.h" 5 #include "../classes/Inputs 2/TransientInput2.h"5 #include "../classes/Inputs/TransientInput.h" 6 6 #include "../shared/shared.h" 7 7 #include "../modules/modules.h" … … 20 20 return 1; 21 21 }/*}}}*/ 22 void SealevelriseAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/22 void SealevelriseAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 23 23 24 24 int geodetic=0; … … 30 30 if(iomodel->my_elements[i]){ 31 31 Element* element=(Element*)elements->GetObjectByOffset(counter); 32 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);32 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 33 33 counter++; 34 34 } … … 36 36 37 37 /*Create inputs: */ 38 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);39 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);38 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 39 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 40 40 iomodel->FetchData(&geodetic,"md.solidearth.settings.computesealevelchange"); 41 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.surfaceload.icethicknesschange",SurfaceloadIceThicknessChangeEnum);42 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);43 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.bed",BedEnum);44 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.surfaceload.waterheightchange",SurfaceloadWaterHeightChangeEnum);41 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.surfaceload.icethicknesschange",SurfaceloadIceThicknessChangeEnum); 42 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 43 iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum); 44 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.surfaceload.waterheightchange",SurfaceloadWaterHeightChangeEnum); 45 45 46 46 /*dynamic sea level: */ … … 61 61 62 62 /*create transient input: */ 63 inputs 2->SetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,times,N);64 TransientInput 2* transientinput = inputs2->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum);63 inputs->SetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,times,N); 64 TransientInput* transientinput = inputs->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum); 65 65 66 66 … … 82 82 83 83 /*deal with dynamic sea level fields: */ 84 iomodel->FetchDataToInput(inputs 2,elements,"md.dsl.sea_surface_height_change_above_geoid", DslSeaSurfaceHeightChangeAboveGeoidEnum);85 iomodel->FetchDataToInput(inputs 2,elements,"md.dsl.sea_water_pressure_change_at_sea_floor", DslSeaWaterPressureChangeAtSeaFloorEnum);84 iomodel->FetchDataToInput(inputs,elements,"md.dsl.sea_surface_height_change_above_geoid", DslSeaSurfaceHeightChangeAboveGeoidEnum); 85 iomodel->FetchDataToInput(inputs,elements,"md.dsl.sea_water_pressure_change_at_sea_floor", DslSeaWaterPressureChangeAtSeaFloorEnum); 86 86 87 87 } /*}}}*/ … … 111 111 for(int t=0;t<N;t++) times[t] = str[(M-1)*N+t]; 112 112 113 TransientInput 2* transientinput=inputs2->SetDatasetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,i, times,N);113 TransientInput* transientinput=inputs->SetDatasetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,i, times,N); 114 114 115 115 for(int j=0;j<elements->Size();j++){ … … 135 135 xDelete<int>(pN); 136 136 /*}}}*/ 137 iomodel->FetchDataToInput(inputs 2,elements,"md.dsl.sea_surface_height_change_above_geoid",DslSeaSurfaceHeightChangeAboveGeoidEnum);138 iomodel->FetchDataToInput(inputs 2,elements,"md.dsl.sea_water_pressure_change_at_sea_floor",DslSeaWaterPressureChangeAtSeaFloorEnum);137 iomodel->FetchDataToInput(inputs,elements,"md.dsl.sea_surface_height_change_above_geoid",DslSeaSurfaceHeightChangeAboveGeoidEnum); 138 iomodel->FetchDataToInput(inputs,elements,"md.dsl.sea_water_pressure_change_at_sea_floor",DslSeaWaterPressureChangeAtSeaFloorEnum); 139 139 140 140 } /*}}}*/ … … 144 144 145 145 /*Initialize cumdeltalthickness and sealevel rise rate input*/ 146 InputUpdateFromConstantx(inputs 2,elements,0.,SealevelriseCumDeltathicknessEnum);147 InputUpdateFromConstantx(inputs 2,elements,0.,SealevelNEsaRateEnum);148 InputUpdateFromConstantx(inputs 2,elements,0.,SealevelUEsaRateEnum);149 InputUpdateFromConstantx(inputs 2,elements,0.,SealevelRSLRateEnum);150 InputUpdateFromConstantx(inputs 2,elements,0.,SealevelEustaticMaskEnum);151 InputUpdateFromConstantx(inputs 2,elements,0.,SealevelEustaticOceanMaskEnum);146 InputUpdateFromConstantx(inputs,elements,0.,SealevelriseCumDeltathicknessEnum); 147 InputUpdateFromConstantx(inputs,elements,0.,SealevelNEsaRateEnum); 148 InputUpdateFromConstantx(inputs,elements,0.,SealevelUEsaRateEnum); 149 InputUpdateFromConstantx(inputs,elements,0.,SealevelRSLRateEnum); 150 InputUpdateFromConstantx(inputs,elements,0.,SealevelEustaticMaskEnum); 151 InputUpdateFromConstantx(inputs,elements,0.,SealevelEustaticOceanMaskEnum); 152 152 153 153 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp
r25374 r25379 21 21 return 1; 22 22 }/*}}}*/ 23 void SmbAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/23 void SmbAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 24 24 25 25 int smb_model; … … 31 31 if(iomodel->my_elements[i]){ 32 32 Element* element=(Element*)elements->GetObjectByOffset(counter); 33 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);33 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 34 34 counter++; 35 35 } … … 40 40 switch(smb_model){ 41 41 case SMBforcingEnum: 42 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.mass_balance",SmbMassBalanceEnum,0.);42 iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum,0.); 43 43 break; 44 44 case SMBgembEnum: 45 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Ta",SmbTaEnum);46 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.V",SmbVEnum);47 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dswrf",SmbDswrfEnum);48 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dlwrf",SmbDlwrfEnum);49 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.P",SmbPEnum);50 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.eAir",SmbEAirEnum);51 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.pAir",SmbPAirEnum);52 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.zTop",SmbZTopEnum);53 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dzTop",SmbDzTopEnum);54 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dzMin",SmbDzMinEnum);55 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.zY",SmbZYEnum);56 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.zMax",SmbZMaxEnum);57 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.zMin",SmbZMinEnum);58 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Tmean",SmbTmeanEnum);59 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Vmean",SmbVmeanEnum);60 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.C",SmbCEnum);61 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Tz",SmbTzEnum);62 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Vz",SmbVzEnum);63 InputUpdateFromConstantx(inputs 2,elements,false,SmbIsInitializedEnum);64 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Dzini",SmbDziniEnum);65 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Dini",SmbDiniEnum);66 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Reini",SmbReiniEnum);67 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Gdnini",SmbGdniniEnum);68 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Gspini",SmbGspiniEnum);69 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.ECini",SmbECiniEnum);70 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Wini",SmbWiniEnum);71 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Aini",SmbAiniEnum);72 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Tini",SmbTiniEnum);73 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.Sizeini",SmbSizeiniEnum);74 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.aValue",SmbAValueEnum);75 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.teValue",SmbTeValueEnum);45 iomodel->FetchDataToInput(inputs,elements,"md.smb.Ta",SmbTaEnum); 46 iomodel->FetchDataToInput(inputs,elements,"md.smb.V",SmbVEnum); 47 iomodel->FetchDataToInput(inputs,elements,"md.smb.dswrf",SmbDswrfEnum); 48 iomodel->FetchDataToInput(inputs,elements,"md.smb.dlwrf",SmbDlwrfEnum); 49 iomodel->FetchDataToInput(inputs,elements,"md.smb.P",SmbPEnum); 50 iomodel->FetchDataToInput(inputs,elements,"md.smb.eAir",SmbEAirEnum); 51 iomodel->FetchDataToInput(inputs,elements,"md.smb.pAir",SmbPAirEnum); 52 iomodel->FetchDataToInput(inputs,elements,"md.smb.zTop",SmbZTopEnum); 53 iomodel->FetchDataToInput(inputs,elements,"md.smb.dzTop",SmbDzTopEnum); 54 iomodel->FetchDataToInput(inputs,elements,"md.smb.dzMin",SmbDzMinEnum); 55 iomodel->FetchDataToInput(inputs,elements,"md.smb.zY",SmbZYEnum); 56 iomodel->FetchDataToInput(inputs,elements,"md.smb.zMax",SmbZMaxEnum); 57 iomodel->FetchDataToInput(inputs,elements,"md.smb.zMin",SmbZMinEnum); 58 iomodel->FetchDataToInput(inputs,elements,"md.smb.Tmean",SmbTmeanEnum); 59 iomodel->FetchDataToInput(inputs,elements,"md.smb.Vmean",SmbVmeanEnum); 60 iomodel->FetchDataToInput(inputs,elements,"md.smb.C",SmbCEnum); 61 iomodel->FetchDataToInput(inputs,elements,"md.smb.Tz",SmbTzEnum); 62 iomodel->FetchDataToInput(inputs,elements,"md.smb.Vz",SmbVzEnum); 63 InputUpdateFromConstantx(inputs,elements,false,SmbIsInitializedEnum); 64 iomodel->FetchDataToInput(inputs,elements,"md.smb.Dzini",SmbDziniEnum); 65 iomodel->FetchDataToInput(inputs,elements,"md.smb.Dini",SmbDiniEnum); 66 iomodel->FetchDataToInput(inputs,elements,"md.smb.Reini",SmbReiniEnum); 67 iomodel->FetchDataToInput(inputs,elements,"md.smb.Gdnini",SmbGdniniEnum); 68 iomodel->FetchDataToInput(inputs,elements,"md.smb.Gspini",SmbGspiniEnum); 69 iomodel->FetchDataToInput(inputs,elements,"md.smb.ECini",SmbECiniEnum); 70 iomodel->FetchDataToInput(inputs,elements,"md.smb.Wini",SmbWiniEnum); 71 iomodel->FetchDataToInput(inputs,elements,"md.smb.Aini",SmbAiniEnum); 72 iomodel->FetchDataToInput(inputs,elements,"md.smb.Tini",SmbTiniEnum); 73 iomodel->FetchDataToInput(inputs,elements,"md.smb.Sizeini",SmbSizeiniEnum); 74 iomodel->FetchDataToInput(inputs,elements,"md.smb.aValue",SmbAValueEnum); 75 iomodel->FetchDataToInput(inputs,elements,"md.smb.teValue",SmbTeValueEnum); 76 76 break; 77 77 case SMBpddEnum: … … 79 79 iomodel->FindConstant(&ismungsm,"md.smb.ismungsm"); 80 80 iomodel->FindConstant(&issetpddfac,"md.smb.issetpddfac"); 81 iomodel->FetchDataToInput(inputs 2,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum);82 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.s0p",SmbS0pEnum);83 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.s0t",SmbS0tEnum);81 iomodel->FetchDataToInput(inputs,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum); 82 iomodel->FetchDataToInput(inputs,elements,"md.smb.s0p",SmbS0pEnum); 83 iomodel->FetchDataToInput(inputs,elements,"md.smb.s0t",SmbS0tEnum); 84 84 if(isdelta18o || ismungsm){ 85 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.temperatures_lgm",SmbTemperaturesLgmEnum);86 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.temperatures_presentday",SmbTemperaturesPresentdayEnum);87 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.precipitations_presentday",SmbPrecipitationsPresentdayEnum);88 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.precipitations_lgm",SmbPrecipitationsLgmEnum);85 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.temperatures_lgm",SmbTemperaturesLgmEnum); 86 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.temperatures_presentday",SmbTemperaturesPresentdayEnum); 87 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.precipitations_presentday",SmbPrecipitationsPresentdayEnum); 88 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.precipitations_lgm",SmbPrecipitationsLgmEnum); 89 89 }else{ 90 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.precipitation",SmbPrecipitationEnum);91 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.monthlytemperatures",SmbMonthlytemperaturesEnum);90 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.precipitation",SmbPrecipitationEnum); 91 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.monthlytemperatures",SmbMonthlytemperaturesEnum); 92 92 } 93 93 if(issetpddfac){ 94 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.pddfac_snow",SmbPddfacSnowEnum,-1.);95 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.pddfac_ice",SmbPddfacIceEnum,-1.);94 iomodel->FetchDataToInput(inputs,elements,"md.smb.pddfac_snow",SmbPddfacSnowEnum,-1.); 95 iomodel->FetchDataToInput(inputs,elements,"md.smb.pddfac_ice",SmbPddfacIceEnum,-1.); 96 96 } 97 97 break; 98 98 case SMBpddSicopolisEnum: 99 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.s0p",SmbS0pEnum);100 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.s0t",SmbS0tEnum);99 iomodel->FetchDataToInput(inputs,elements,"md.smb.s0p",SmbS0pEnum); 100 iomodel->FetchDataToInput(inputs,elements,"md.smb.s0t",SmbS0tEnum); 101 101 iomodel->FindConstant(&isfirnwarming,"md.smb.isfirnwarming"); 102 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.smb_corr",SmbSmbCorrEnum);103 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.precipitation_anomaly",SmbPrecipitationsAnomalyEnum);104 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.temperature_anomaly",SmbTemperaturesAnomalyEnum);105 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.monthlytemperatures",SmbMonthlytemperaturesEnum);106 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.precipitation",SmbPrecipitationEnum);102 iomodel->FetchDataToInput(inputs,elements,"md.smb.smb_corr",SmbSmbCorrEnum); 103 iomodel->FetchDataToInput(inputs,elements,"md.smb.precipitation_anomaly",SmbPrecipitationsAnomalyEnum); 104 iomodel->FetchDataToInput(inputs,elements,"md.smb.temperature_anomaly",SmbTemperaturesAnomalyEnum); 105 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.monthlytemperatures",SmbMonthlytemperaturesEnum); 106 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.precipitation",SmbPrecipitationEnum); 107 107 break; 108 108 case SMBd18opddEnum: … … 112 112 iomodel->FindConstant(&isd18opd,"md.smb.isd18opd"); 113 113 iomodel->FindConstant(&issetpddfac,"md.smb.issetpddfac"); 114 iomodel->FetchDataToInput(inputs 2,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum);115 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.s0p",SmbS0pEnum);116 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.s0t",SmbS0tEnum);114 iomodel->FetchDataToInput(inputs,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum); 115 iomodel->FetchDataToInput(inputs,elements,"md.smb.s0p",SmbS0pEnum); 116 iomodel->FetchDataToInput(inputs,elements,"md.smb.s0t",SmbS0tEnum); 117 117 if(isd18opd){ 118 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.temperatures_presentday",SmbTemperaturesPresentdayEnum);119 iomodel->FetchDataToDatasetInput(inputs 2,elements,"md.smb.precipitations_presentday",SmbPrecipitationsPresentdayEnum);118 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.temperatures_presentday",SmbTemperaturesPresentdayEnum); 119 iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.precipitations_presentday",SmbPrecipitationsPresentdayEnum); 120 120 if(!istemperaturescaled){ 121 121 /*Fetch array*/ … … 131 131 for(int i=0;i<elements->Size();i++){ 132 132 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 133 element->DatasetInputCreate(doublearray,M-1,N,ids,N,inputs 2,iomodel,SmbTemperaturesReconstructedEnum);133 element->DatasetInputCreate(doublearray,M-1,N,ids,N,inputs,iomodel,SmbTemperaturesReconstructedEnum); 134 134 } 135 135 xDelete<int>(ids); … … 149 149 for(int i=0;i<elements->Size();i++){ 150 150 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 151 element->DatasetInputCreate(doublearray,M-1,N,ids,N,inputs 2,iomodel,SmbPrecipitationsReconstructedEnum);151 element->DatasetInputCreate(doublearray,M-1,N,ids,N,inputs,iomodel,SmbPrecipitationsReconstructedEnum); 152 152 } 153 153 xDelete<int>(ids); … … 156 156 } 157 157 if(issetpddfac){ 158 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.pddfac_snow",SmbPddfacSnowEnum,-1.);159 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.pddfac_ice",SmbPddfacIceEnum,-1.);158 iomodel->FetchDataToInput(inputs,elements,"md.smb.pddfac_snow",SmbPddfacSnowEnum,-1.); 159 iomodel->FetchDataToInput(inputs,elements,"md.smb.pddfac_ice",SmbPddfacIceEnum,-1.); 160 160 } 161 161 break; 162 162 case SMBgradientsEnum: 163 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.href",SmbHrefEnum);164 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.smbref",SmbSmbrefEnum);165 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.b_pos",SmbBPosEnum);166 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.b_neg",SmbBNegEnum);163 iomodel->FetchDataToInput(inputs,elements,"md.smb.href",SmbHrefEnum); 164 iomodel->FetchDataToInput(inputs,elements,"md.smb.smbref",SmbSmbrefEnum); 165 iomodel->FetchDataToInput(inputs,elements,"md.smb.b_pos",SmbBPosEnum); 166 iomodel->FetchDataToInput(inputs,elements,"md.smb.b_neg",SmbBNegEnum); 167 167 break; 168 168 case SMBgradientselaEnum: 169 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.ela",SmbElaEnum);170 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.b_pos",SmbBPosEnum);171 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.b_neg",SmbBNegEnum);172 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.b_max",SmbBMaxEnum);173 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.b_min",SmbBMinEnum);169 iomodel->FetchDataToInput(inputs,elements,"md.smb.ela",SmbElaEnum); 170 iomodel->FetchDataToInput(inputs,elements,"md.smb.b_pos",SmbBPosEnum); 171 iomodel->FetchDataToInput(inputs,elements,"md.smb.b_neg",SmbBNegEnum); 172 iomodel->FetchDataToInput(inputs,elements,"md.smb.b_max",SmbBMaxEnum); 173 iomodel->FetchDataToInput(inputs,elements,"md.smb.b_min",SmbBMinEnum); 174 174 break; 175 175 case SMBhenningEnum: 176 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.smbref",SmbSmbrefEnum,0.);176 iomodel->FetchDataToInput(inputs,elements,"md.smb.smbref",SmbSmbrefEnum,0.); 177 177 break; 178 178 case SMBcomponentsEnum: 179 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.accumulation",SmbAccumulationEnum,0.);180 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.evaporation",SmbEvaporationEnum,0.);181 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.runoff",SmbRunoffEnum,0.);179 iomodel->FetchDataToInput(inputs,elements,"md.smb.accumulation",SmbAccumulationEnum,0.); 180 iomodel->FetchDataToInput(inputs,elements,"md.smb.evaporation",SmbEvaporationEnum,0.); 181 iomodel->FetchDataToInput(inputs,elements,"md.smb.runoff",SmbRunoffEnum,0.); 182 182 break; 183 183 case SMBmeltcomponentsEnum: 184 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.accumulation",SmbAccumulationEnum,0.);185 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.evaporation",SmbEvaporationEnum,0.);186 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.melt",SmbMeltEnum,0.);187 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.refreeze",SmbRefreezeEnum,0.);184 iomodel->FetchDataToInput(inputs,elements,"md.smb.accumulation",SmbAccumulationEnum,0.); 185 iomodel->FetchDataToInput(inputs,elements,"md.smb.evaporation",SmbEvaporationEnum,0.); 186 iomodel->FetchDataToInput(inputs,elements,"md.smb.melt",SmbMeltEnum,0.); 187 iomodel->FetchDataToInput(inputs,elements,"md.smb.refreeze",SmbRefreezeEnum,0.); 188 188 break; 189 189 case SMBgradientscomponentsEnum: … … 191 191 break; 192 192 case SMBsemicEnum: 193 iomodel->FetchDataToInput(inputs 2,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum);194 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.s0gcm",SmbS0gcmEnum);195 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailysnowfall",SmbDailysnowfallEnum);196 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailyrainfall",SmbDailyrainfallEnum);197 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailydsradiation",SmbDailydsradiationEnum);198 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailydlradiation",SmbDailydlradiationEnum);199 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailywindspeed",SmbDailywindspeedEnum);200 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailypressure",SmbDailypressureEnum);201 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailyairdensity",SmbDailyairdensityEnum);202 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailyairhumidity",SmbDailyairhumidityEnum);203 iomodel->FetchDataToInput(inputs 2,elements,"md.smb.dailytemperature",SmbDailytemperatureEnum);193 iomodel->FetchDataToInput(inputs,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum); 194 iomodel->FetchDataToInput(inputs,elements,"md.smb.s0gcm",SmbS0gcmEnum); 195 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailysnowfall",SmbDailysnowfallEnum); 196 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailyrainfall",SmbDailyrainfallEnum); 197 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailydsradiation",SmbDailydsradiationEnum); 198 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailydlradiation",SmbDailydlradiationEnum); 199 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailywindspeed",SmbDailywindspeedEnum); 200 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailypressure",SmbDailypressureEnum); 201 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailyairdensity",SmbDailyairdensityEnum); 202 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailyairhumidity",SmbDailyairhumidityEnum); 203 iomodel->FetchDataToInput(inputs,elements,"md.smb.dailytemperature",SmbDailytemperatureEnum); 204 204 break; 205 205 default: -
issm/trunk-jpl/src/c/analyses/SmbAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/SmoothAnalysis.cpp
r25317 r25379 18 18 return 1; 19 19 }/*}}}*/ 20 void SmoothAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/20 void SmoothAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 21 21 22 22 /*Update elements: */ … … 25 25 if(iomodel->my_elements[i]){ 26 26 Element* element=(Element*)elements->GetObjectByOffset(counter); 27 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);27 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 28 28 counter++; 29 29 } … … 70 70 element->FindParam(&l,SmoothThicknessMultiplierEnum); _assert_(l>0.); 71 71 element->GetVerticesCoordinates(&xyz_list); 72 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);72 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 73 73 74 74 /* Start looping on the number of gaussian points: */ … … 116 116 IssmDouble Jdet,value; 117 117 IssmDouble *xyz_list = NULL; 118 Input 2*input = NULL;118 Input *input = NULL; 119 119 120 120 /*SPECIFICS: Driving stress for balance velocities*/ 121 Input 2* H_input = NULL, *surface_input = NULL, *vx_input = NULL, *vy_input = NULL;121 Input* H_input = NULL, *surface_input = NULL, *vx_input = NULL, *vy_input = NULL; 122 122 IssmDouble taud_x,norms,normv,vx,vy; 123 123 IssmDouble rho_ice,gravity,slope[2],thickness; … … 139 139 rho_ice = element->FindParam(MaterialsRhoIceEnum); 140 140 gravity = element->FindParam(ConstantsGEnum); 141 H_input = element->GetInput 2(ThicknessEnum); _assert_(H_input);142 surface_input = element->GetInput 2(SurfaceEnum); _assert_(surface_input);143 vx_input = element->GetInput 2(VxEnum);144 vy_input = element->GetInput 2(VyEnum);141 H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 142 surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 143 vx_input = element->GetInput(VxEnum); 144 vy_input = element->GetInput(VyEnum); 145 145 } 146 146 break; 147 147 case SurfaceSlopeXEnum: 148 148 case SurfaceSlopeYEnum:{ 149 surface_input = element->GetInput 2(SurfaceEnum); _assert_(surface_input);150 } 151 break; 152 default: input = element->GetInput 2(input_enum);149 surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 150 } 151 break; 152 default: input = element->GetInput(input_enum); 153 153 } 154 154 -
issm/trunk-jpl/src/c/analyses/SmoothAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r25317 r25379 670 670 return numdofs; 671 671 }/*}}}*/ 672 void StressbalanceAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/672 void StressbalanceAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 673 673 674 674 /*Intermediaries*/ … … 741 741 if(iomodel->my_elements[i]){ 742 742 Element* element=(Element*)elements->GetObjectByOffset(counter); 743 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement_list[i]);743 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement_list[i]); 744 744 745 745 /*Need to know the type of approximation for this element*/ 746 746 if(iomodel->Data("md.flowequation.element_equation")){ 747 inputs 2->SetInput(ApproximationEnum,counter,IoCodeToEnumElementEquation(reCast<int>(iomodel->Data("md.flowequation.element_equation")[i])));747 inputs->SetInput(ApproximationEnum,counter,IoCodeToEnumElementEquation(reCast<int>(iomodel->Data("md.flowequation.element_equation")[i]))); 748 748 } 749 749 … … 753 753 754 754 /*Create inputs: */ 755 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);756 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);757 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);758 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);759 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);760 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);761 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum,0.);762 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum,0.);763 iomodel->FetchDataToInput(inputs 2,elements,"md.stressbalance.loadingforcex",LoadingforceXEnum);764 iomodel->FetchDataToInput(inputs 2,elements,"md.stressbalance.loadingforcey",LoadingforceYEnum);755 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 756 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 757 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 758 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 759 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 760 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 761 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum,0.); 762 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum,0.); 763 iomodel->FetchDataToInput(inputs,elements,"md.stressbalance.loadingforcex",LoadingforceXEnum); 764 iomodel->FetchDataToInput(inputs,elements,"md.stressbalance.loadingforcey",LoadingforceYEnum); 765 765 #ifdef LATERALFRICTION 766 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonboundary",MeshVertexonboundaryEnum);766 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonboundary",MeshVertexonboundaryEnum); 767 767 #endif 768 768 769 769 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 770 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);771 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);770 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 771 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 772 772 } 773 773 if(iomodel->domaintype==Domain3DEnum){ 774 iomodel->FetchDataToInput(inputs 2,elements,"md.flowequation.borderFS",FlowequationBorderFSEnum);775 iomodel->FetchDataToInput(inputs 2,elements,"md.stressbalance.loadingforcez",LoadingforceZEnum);776 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vz",VzEnum,0.);774 iomodel->FetchDataToInput(inputs,elements,"md.flowequation.borderFS",FlowequationBorderFSEnum); 775 iomodel->FetchDataToInput(inputs,elements,"md.stressbalance.loadingforcez",LoadingforceZEnum); 776 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum,0.); 777 777 } 778 778 if(isFS){ 779 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum,0.);779 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum,0.); 780 780 781 781 /*Add basal forcings to compute melt rate*/ … … 784 784 switch(basalforcing_model){ 785 785 case FloatingMeltRateEnum: 786 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);786 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum); 787 787 break; 788 788 case LinearFloatingMeltRateEnum: … … 793 793 break; 794 794 case SpatialLinearFloatingMeltRateEnum: 795 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);796 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);797 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum);795 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum); 796 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum); 797 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum); 798 798 break; 799 799 case BasalforcingsPicoEnum: 800 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);801 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum);800 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum); 801 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum); 802 802 break; 803 803 case BasalforcingsIsmip6Enum: 804 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);804 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum); 805 805 break; 806 806 case BeckmannGoosseFloatingMeltRateEnum: 807 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);808 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);807 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum); 808 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum); 809 809 break; 810 810 default: … … 815 815 iomodel->FindConstant(&fe_FS,"md.flowequation.fe_FS"); 816 816 if(fe_FS==LATaylorHoodEnum || fe_FS==LACrouzeixRaviartEnum){ 817 InputUpdateFromConstantx(inputs 2,elements,0.,SigmaNNEnum);817 InputUpdateFromConstantx(inputs,elements,0.,SigmaNNEnum); 818 818 } 819 819 … … 822 822 case 1: 823 823 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 824 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);825 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);826 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);824 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 825 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 826 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 827 827 if(FrictionCoupling==3){ 828 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}828 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 829 829 else if(FrictionCoupling==4){ 830 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);830 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 831 831 } 832 832 break; 833 833 case 2: 834 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);835 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);834 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 835 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 836 836 break; 837 837 case 3: 838 838 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 839 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);840 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.As",FrictionAsEnum);841 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);839 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 840 iomodel->FetchDataToInput(inputs,elements,"md.friction.As",FrictionAsEnum); 841 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 842 842 if(FrictionCoupling==3){ 843 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}843 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 844 844 else if(FrictionCoupling==4){ 845 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);845 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 846 846 } 847 847 break; 848 848 case 4: 849 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);850 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);851 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);852 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);853 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);849 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 850 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 851 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 852 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 853 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 854 854 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 855 855 break; 856 856 case 5: 857 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);858 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);859 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);860 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.water_layer",FrictionWaterLayerEnum);857 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 858 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 859 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 860 iomodel->FetchDataToInput(inputs,elements,"md.friction.water_layer",FrictionWaterLayerEnum); 861 861 break; 862 862 case 6: 863 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);864 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);865 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);866 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);863 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 864 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 865 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 866 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 867 867 break; 868 868 case 7: 869 869 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 870 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);871 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum);872 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);873 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);870 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 871 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum); 872 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 873 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 874 874 if(FrictionCoupling==3){ 875 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}875 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 876 876 else if(FrictionCoupling==4){ 877 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);877 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 878 878 879 879 } 880 880 break; 881 881 case 9: 882 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);883 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);884 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum);885 InputUpdateFromConstantx(inputs 2,elements,1.,FrictionPEnum);886 InputUpdateFromConstantx(inputs 2,elements,1.,FrictionQEnum);882 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 883 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 884 iomodel->FetchDataToInput(inputs,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum); 885 InputUpdateFromConstantx(inputs,elements,1.,FrictionPEnum); 886 InputUpdateFromConstantx(inputs,elements,1.,FrictionQEnum); 887 887 break; 888 888 case 10: 889 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.till_friction_angle",FrictionTillFrictionAngleEnum);890 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.sediment_compressibility_coefficient",FrictionSedimentCompressibilityCoefficientEnum);891 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.watercolumn_max",HydrologyWatercolumnMaxEnum);892 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.watercolumn",WatercolumnEnum,0.);889 iomodel->FetchDataToInput(inputs,elements,"md.friction.till_friction_angle",FrictionTillFrictionAngleEnum); 890 iomodel->FetchDataToInput(inputs,elements,"md.friction.sediment_compressibility_coefficient",FrictionSedimentCompressibilityCoefficientEnum); 891 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.watercolumn_max",HydrologyWatercolumnMaxEnum); 892 iomodel->FetchDataToInput(inputs,elements,"md.initialization.watercolumn",WatercolumnEnum,0.); 893 893 break; 894 894 case 11: 895 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);896 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);897 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.Cmax",FrictionCmaxEnum);895 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 896 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 897 iomodel->FetchDataToInput(inputs,elements,"md.friction.Cmax",FrictionCmaxEnum); 898 898 break; 899 899 case 12: 900 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);901 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);902 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.f",FrictionfEnum);900 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 901 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 902 iomodel->FetchDataToInput(inputs,elements,"md.friction.f",FrictionfEnum); 903 903 break; 904 904 default: … … 907 907 908 908 #ifdef _HAVE_ANDROID_ 909 inputs 2->DuplicateInput(FrictionCoefficientEnum,AndroidFrictionCoefficientEnum);909 inputs->DuplicateInput(FrictionCoefficientEnum,AndroidFrictionCoefficientEnum); 910 910 #endif 911 911 … … 1086 1086 1087 1087 int approximation; 1088 element->GetInput 2Value(&approximation,ApproximationEnum);1088 element->GetInputValue(&approximation,ApproximationEnum); 1089 1089 switch(approximation){ 1090 1090 case FSApproximationEnum: … … 1099 1099 1100 1100 int approximation; 1101 element->GetInput 2Value(&approximation,ApproximationEnum);1101 element->GetInputValue(&approximation,ApproximationEnum); 1102 1102 switch(approximation){ 1103 1103 case SSAApproximationEnum: … … 1115 1115 ElementMatrix* StressbalanceAnalysis::CreateKMatrix(Element* element){/*{{{*/ 1116 1116 int approximation; 1117 element->GetInput 2Value(&approximation,ApproximationEnum);1117 element->GetInputValue(&approximation,ApproximationEnum); 1118 1118 switch(approximation){ 1119 1119 case SIAApproximationEnum: … … 1142 1142 1143 1143 int approximation; 1144 element->GetInput 2Value(&approximation,ApproximationEnum);1144 element->GetInputValue(&approximation,ApproximationEnum); 1145 1145 switch(approximation){ 1146 1146 case SIAApproximationEnum: … … 1169 1169 1170 1170 int approximation; 1171 element->GetInput 2Value(&approximation,ApproximationEnum);1171 element->GetInputValue(&approximation,ApproximationEnum); 1172 1172 switch(approximation){ 1173 1173 case FSApproximationEnum: case NoneApproximationEnum: … … 1205 1205 int numnodes = element->GetNumberOfNodes(); 1206 1206 int numdof = numnodes*dofpernode; 1207 element->GetInput 2Value(&approximation,ApproximationEnum);1207 element->GetInputValue(&approximation,ApproximationEnum); 1208 1208 1209 1209 /*Fetch dof list and allocate solution vector*/ … … 1212 1212 1213 1213 /*Get inputs*/ 1214 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);1215 Input 2* vy_input=NULL;1216 if(domaintype!=Domain2DverticalEnum){vy_input=element->GetInput 2(VyEnum); _assert_(vy_input);}1214 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 1215 Input* vy_input=NULL; 1216 if(domaintype!=Domain2DverticalEnum){vy_input=element->GetInput(VyEnum); _assert_(vy_input);} 1217 1217 1218 1218 /*Ok, we have vx and vy in values, fill in vx and vy arrays: */ … … 1243 1243 1244 1244 int approximation; 1245 element->GetInput 2Value(&approximation,ApproximationEnum);1245 element->GetInputValue(&approximation,ApproximationEnum); 1246 1246 switch(approximation){ 1247 1247 case FSApproximationEnum: case NoneApproximationEnum: … … 1314 1314 /*Retrieve all inputs and parameters*/ 1315 1315 element->GetVerticesCoordinates(&xyz_list); 1316 Input 2* thickness_input = basalelement->GetInput2(ThicknessEnum);_assert_(thickness_input);1317 Input 2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input);1318 Input 2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input);1316 Input* thickness_input = basalelement->GetInput(ThicknessEnum);_assert_(thickness_input); 1317 Input* vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input); 1318 Input* vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input); 1319 1319 1320 1320 /* Start looping on the number of gaussian points: */ … … 1433 1433 element->GetVerticesCoordinates(&xyz_list); 1434 1434 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 1435 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);1436 Input 2* gllevelset_input = NULL;1435 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 1436 Input* gllevelset_input = NULL; 1437 1437 1438 1438 /*build friction object, used later on: */ … … 1442 1442 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list); 1443 1443 if(friction_style==SubelementFriction2Enum){ 1444 gllevelset_input=element->GetInput 2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);1444 gllevelset_input=element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 1445 1445 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 1446 1446 gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); … … 1528 1528 element->GetVerticesCoordinates(&xyz_list); 1529 1529 element->GetLevelCoordinates(&xyz_list_boundary,xyz_list,MeshVertexonboundaryEnum,1.); 1530 Input 2* icelevelset_input = element->GetInput2(MaskIceLevelsetEnum); _assert_(icelevelset_input);1530 Input* icelevelset_input = element->GetInput(MaskIceLevelsetEnum); _assert_(icelevelset_input); 1531 1531 1532 1532 /* Start looping on the number of gaussian points: */ … … 1590 1590 /*Retrieve all inputs and parameters*/ 1591 1591 element->GetVerticesCoordinates(&xyz_list); 1592 Input 2* thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input);1593 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);1594 Input 2* vy_input = NULL;1592 Input* thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input); 1593 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 1594 Input* vy_input = NULL; 1595 1595 if(dim==2){ 1596 vy_input = element->GetInput 2(VyEnum); _assert_(vy_input);1596 vy_input = element->GetInput(VyEnum); _assert_(vy_input); 1597 1597 } 1598 1598 … … 1707 1707 /*Retrieve all inputs and parameters*/ 1708 1708 element->GetVerticesCoordinates(&xyz_list); 1709 Input 2* thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input);1710 Input 2* surface_input =element->GetInput2(SurfaceEnum); _assert_(surface_input);1709 Input* thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input); 1710 Input* surface_input =element->GetInput(SurfaceEnum); _assert_(surface_input); 1711 1711 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 1712 1712 … … 1771 1771 1772 1772 /*Retrieve all inputs and parameters*/ 1773 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);1774 Input 2* base_input = element->GetInput2(BaseEnum); _assert_(base_input);1775 Input 2* sealevel_input = element->GetInput2(SealevelEnum); _assert_(sealevel_input);1773 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 1774 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 1775 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 1776 1776 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 1777 1777 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); … … 1968 1968 default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet"); 1969 1969 } 1970 element->AddInput 2(PressureEnum,pressure,P1Enum);1970 element->AddInput(PressureEnum,pressure,P1Enum); 1971 1971 xDelete<IssmDouble>(pressure); 1972 1972 xDelete<IssmDouble>(thickness); … … 2027 2027 2028 2028 /*Add vx and vy as inputs to the tria element: */ 2029 element->AddBasalInput 2(VxEnum,vx,element->GetElementType());2030 if(dim==2)element->AddBasalInput 2(VyEnum,vy,element->GetElementType());2031 element->AddBasalInput 2(VelEnum,vel,element->GetElementType());2029 element->AddBasalInput(VxEnum,vx,element->GetElementType()); 2030 if(dim==2)element->AddBasalInput(VyEnum,vy,element->GetElementType()); 2031 element->AddBasalInput(VelEnum,vel,element->GetElementType()); 2032 2032 2033 2033 /*Free ressources:*/ … … 2089 2089 /*Retrieve all inputs and parameters*/ 2090 2090 element->GetVerticesCoordinates(&xyz_list); 2091 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);2092 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);2093 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);2091 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 2092 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 2093 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 2094 2094 2095 2095 /* Start looping on the number of gaussian points: */ … … 2176 2176 /*Retrieve all inputs and parameters*/ 2177 2177 element->GetVerticesCoordinates(&xyz_list); 2178 Input 2* thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input);2179 Input 2* surface_input =element->GetInput2(SurfaceEnum); _assert_(surface_input);2178 Input* thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input); 2179 Input* surface_input =element->GetInput(SurfaceEnum); _assert_(surface_input); 2180 2180 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 2181 2181 … … 2227 2227 2228 2228 /*Retrieve all inputs and parameters*/ 2229 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);2230 Input 2* base_input = element->GetInput2(BaseEnum); _assert_(base_input);2231 Input 2* sealevel_input = element->GetInput2(SealevelEnum); _assert_(sealevel_input);2229 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 2230 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 2231 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 2232 2232 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 2233 2233 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); … … 2297 2297 for(i=0;i<numvertices;i++) pressure[i]=rho_ice*g*(surface[i]-xyz_list[i*3+2]); 2298 2298 } 2299 element->AddInput 2(PressureEnum,pressure,P1Enum);2299 element->AddInput(PressureEnum,pressure,P1Enum); 2300 2300 xDelete<IssmDouble>(pressure); 2301 2301 xDelete<IssmDouble>(thickness); … … 2350 2350 2351 2351 /*Add vx and vy as inputs to the tria element: */ 2352 element->AddBasalInput 2(VxEnum,vx,element->GetElementType());2353 element->AddBasalInput 2(VyEnum,vy,element->GetElementType());2354 element->AddBasalInput 2(VelEnum,vel,element->GetElementType());2352 element->AddBasalInput(VxEnum,vx,element->GetElementType()); 2353 element->AddBasalInput(VyEnum,vy,element->GetElementType()); 2354 element->AddBasalInput(VelEnum,vel,element->GetElementType()); 2355 2355 2356 2356 /*Free ressources:*/ … … 2386 2386 /*Retrieve all inputs and parameters*/ 2387 2387 element->GetVerticesCoordinates(&xyz_list); 2388 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);2389 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);2388 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 2389 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 2390 2390 2391 2391 /* Start looping on the number of gaussian points: */ … … 2472 2472 element->GetVerticesCoordinatesBase(&xyz_list_base); 2473 2473 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 2474 Input 2* gllevelset_input = NULL;2474 Input* gllevelset_input = NULL; 2475 2475 2476 2476 /*build friction object, used later on: */ … … 2480 2480 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list_base); 2481 2481 if(friction_style==SubelementFriction2Enum){ 2482 gllevelset_input=element->GetInput 2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);2482 gllevelset_input=element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 2483 2483 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 2484 2484 gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); … … 2556 2556 /*Retrieve all inputs and parameters*/ 2557 2557 element->GetVerticesCoordinates(&xyz_list); 2558 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);2559 Input 2* vy_input = NULL;2558 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 2559 Input* vy_input = NULL; 2560 2560 if(dim==3){ 2561 vy_input=element->GetInput 2(VyEnum); _assert_(vy_input);2561 vy_input=element->GetInput(VyEnum); _assert_(vy_input); 2562 2562 } 2563 2563 … … 2704 2704 /*Retrieve all inputs and parameters*/ 2705 2705 element->GetVerticesCoordinates(&xyz_list); 2706 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);2706 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 2707 2707 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 2708 2708 … … 2760 2760 2761 2761 /*Retrieve all inputs and parameters*/ 2762 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);2763 Input 2* sealevel_input = element->GetInput2(SealevelEnum); _assert_(sealevel_input);2762 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 2763 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 2764 2764 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 2765 2765 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); … … 2965 2965 default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet"); 2966 2966 } 2967 element->AddInput 2(PressureEnum,pressure,P1Enum);2967 element->AddInput(PressureEnum,pressure,P1Enum); 2968 2968 xDelete<IssmDouble>(pressure); 2969 2969 xDelete<IssmDouble>(surface); … … 3010 3010 3011 3011 /*Add vx and vy as inputs to the element: */ 3012 element->AddInput 2(VxEnum,vx,element->GetElementType());3013 if(dim==3)element->AddInput 2(VyEnum,vy,element->GetElementType());3014 element->AddInput 2(VelEnum,vel,element->GetElementType());3012 element->AddInput(VxEnum,vx,element->GetElementType()); 3013 if(dim==3)element->AddInput(VyEnum,vy,element->GetElementType()); 3014 element->AddInput(VelEnum,vel,element->GetElementType()); 3015 3015 3016 3016 /*Free ressources:*/ … … 3078 3078 /*Retrieve all inputs and parameters*/ 3079 3079 element->GetVerticesCoordinates(&xyz_list); 3080 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);3081 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);3082 Input 2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input);3080 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 3081 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 3082 Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input); 3083 3083 3084 3084 /* Start looping on the number of gaussian points: */ … … 3168 3168 /*If on not water or not FS, skip stiffness: */ 3169 3169 int approximation,shelf_dampening; 3170 element->GetInput 2Value(&approximation,ApproximationEnum);3170 element->GetInputValue(&approximation,ApproximationEnum); 3171 3171 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 3172 3172 element->FindParam(&shelf_dampening,StressbalanceShelfDampeningEnum); … … 3201 3201 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 3202 3202 IssmDouble gravity = element->FindParam(ConstantsGEnum); 3203 Input 2* base_input = element->GetInput2(BaseEnum); _assert_(base_input);3203 Input* base_input = element->GetInput(BaseEnum); _assert_(base_input); 3204 3204 3205 3205 /* Start looping on the number of gaussian points: */ … … 3259 3259 element->GetVerticesCoordinates(&xyz_list); 3260 3260 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 3261 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);3262 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);3263 Input 2* vz_input = NULL;3264 if(dim==3){vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);}3261 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 3262 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 3263 Input* vz_input = NULL; 3264 if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);} 3265 3265 3266 3266 /* Start looping on the number of gaussian points: */ … … 3409 3409 element->GetVerticesCoordinates(&xyz_list); 3410 3410 //element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 3411 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);3412 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);3413 Input 2* vz_input = NULL;3414 if(dim==3){vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);}3411 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 3412 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 3413 Input* vz_input = NULL; 3414 if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);} 3415 3415 3416 3416 … … 3483 3483 /*Retrieve all inputs and parameters*/ 3484 3484 element->GetVerticesCoordinates(&xyz_list); 3485 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);3486 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);3487 Input 2* vz_input = NULL;3488 if(dim==3){vz_input = element->GetInput 2(VzEnum); _assert_(vz_input);}3485 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 3486 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 3487 Input* vz_input = NULL; 3488 if(dim==3){vz_input = element->GetInput(VzEnum); _assert_(vz_input);} 3489 3489 3490 3490 /* Start looping on the number of gaussian points: */ … … 3608 3608 element->GetVerticesCoordinates(&xyz_list); 3609 3609 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 3610 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);3611 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);3612 Input 2* vz_input;3613 if(dim==3){vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);}3610 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 3611 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 3612 Input* vz_input; 3613 if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);} 3614 3614 3615 3615 /* Start looping on the number of gaussian points: */ … … 3650 3650 /*If on water or not FS, skip stiffness: */ 3651 3651 int approximation; 3652 element->GetInput 2Value(&approximation,ApproximationEnum);3652 element->GetInputValue(&approximation,ApproximationEnum); 3653 3653 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 3654 3654 … … 3677 3677 element->GetVerticesCoordinatesBase(&xyz_list_base); 3678 3678 element->GetVerticesCoordinates(&xyz_list); 3679 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);3680 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);3681 Input 2* vz_input = NULL;3682 if(dim==3){ vz_input = element->GetInput 2(VzEnum); _assert_(vz_input);}3679 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 3680 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 3681 Input* vz_input = NULL; 3682 if(dim==3){ vz_input = element->GetInput(VzEnum); _assert_(vz_input);} 3683 3683 3684 3684 /* Start looping on the number of gaussian points: */ … … 3755 3755 /*Retrieve all inputs and parameters*/ 3756 3756 element->GetVerticesCoordinatesBase(&xyz_list_base); 3757 Input 2* alpha2_input=element->GetInput2(FrictionCoefficientEnum); _assert_(alpha2_input);3757 Input* alpha2_input=element->GetInput(FrictionCoefficientEnum); _assert_(alpha2_input); 3758 3758 3759 3759 /* Start looping on the number of gaussian points: */ … … 3809 3809 /*Retrieve all inputs and parameters*/ 3810 3810 element->GetVerticesCoordinatesBase(&xyz_list_base); 3811 Input 2* sigmann_input=element->GetInput2(VzEnum); _assert_(sigmann_input);3812 Input 2* sigmant_input=element->GetInput2(TemperatureEnum); _assert_(sigmant_input);3813 Input 2* bedslope_input=element->GetInput2(BedSlopeXEnum); _assert_(bedslope_input);3811 Input* sigmann_input=element->GetInput(VzEnum); _assert_(sigmann_input); 3812 Input* sigmant_input=element->GetInput(TemperatureEnum); _assert_(sigmant_input); 3813 Input* bedslope_input=element->GetInput(BedSlopeXEnum); _assert_(bedslope_input); 3814 3814 3815 3815 /* Start looping on the number of gaussian points: */ … … 3926 3926 /*If on water or not FS, skip stiffness: */ 3927 3927 int approximation; 3928 element->GetInput 2Value(&approximation,ApproximationEnum);3928 element->GetInputValue(&approximation,ApproximationEnum); 3929 3929 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 3930 3930 … … 3954 3954 element->GetVerticesCoordinatesBase(&xyz_list_base); 3955 3955 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 3956 Input 2* gllevelset_input = NULL;3956 Input* gllevelset_input = NULL; 3957 3957 3958 3958 /*build friction object, used later on: */ … … 3963 3963 if(friction_style==SubelementFriction2Enum){ 3964 3964 if(domaintype==Domain2DverticalEnum) _error_("Subelement Friction 2 not implemented yet for Flowline"); 3965 gllevelset_input=element->GetInput 2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);3965 gllevelset_input=element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 3966 3966 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 3967 3967 //gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); … … 4095 4095 IssmDouble rho_ice =element->FindParam(MaterialsRhoIceEnum); 4096 4096 IssmDouble gravity =element->FindParam(ConstantsGEnum); 4097 Input 2* loadingforcex_input=element->GetInput2(LoadingforceXEnum); _assert_(loadingforcex_input);4098 Input 2* loadingforcey_input=element->GetInput2(LoadingforceYEnum); _assert_(loadingforcey_input);4099 Input 2* loadingforcez_input=NULL;4097 Input* loadingforcex_input=element->GetInput(LoadingforceXEnum); _assert_(loadingforcex_input); 4098 Input* loadingforcey_input=element->GetInput(LoadingforceYEnum); _assert_(loadingforcey_input); 4099 Input* loadingforcez_input=NULL; 4100 4100 if(dim==3){ 4101 loadingforcez_input=element->GetInput 2(LoadingforceZEnum); _assert_(loadingforcez_input);4101 loadingforcez_input=element->GetInput(LoadingforceZEnum); _assert_(loadingforcez_input); 4102 4102 } 4103 4103 … … 4173 4173 element->GetIcefrontCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum); 4174 4174 element->NormalSection(&normal[0],xyz_list_front); 4175 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);4176 Input 2* sealevel_input = element->GetInput2(SealevelEnum); _assert_(sealevel_input);4175 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 4176 Input* sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input); 4177 4177 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 4178 4178 IssmDouble gravity = element->FindParam(ConstantsGEnum); … … 4242 4242 /*Retrieve all inputs and parameters*/ 4243 4243 element->GetVerticesCoordinatesBase(&xyz_list_base); 4244 Input 2* base_input=element->GetInput2(BaseEnum); _assert_(base_input);4244 Input* base_input=element->GetInput(BaseEnum); _assert_(base_input); 4245 4245 IssmDouble rho_water=element->FindParam(MaterialsRhoSeawaterEnum); 4246 4246 IssmDouble gravity =element->FindParam(ConstantsGEnum); … … 4266 4266 element->FindParam(&shelf_dampening,StressbalanceShelfDampeningEnum); 4267 4267 if(shelf_dampening) { 4268 Input 2* mb_input=element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(mb_input);4268 Input* mb_input=element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(mb_input); 4269 4269 IssmDouble dt,mb; 4270 4270 element->FindParam(&dt,TimesteppingTimeStepEnum); … … 4317 4317 4318 4318 /*Get pressure and sigmann*/ 4319 Input 2* pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input);4320 Input 2* sigmann_input =element->GetInput2(SigmaNNEnum); _assert_(sigmann_input);4319 Input* pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input); 4320 Input* sigmann_input =element->GetInput(SigmaNNEnum); _assert_(sigmann_input); 4321 4321 4322 4322 gauss=element->NewGauss(5); … … 4410 4410 4411 4411 /*Get d and tau*/ 4412 Input 2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input);4413 Input 2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input);4414 Input 2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input);4415 Input 2* epszz_input=NULL; Input2* epsxz_input=NULL; Input2* epsyz_input=NULL;4416 Input 2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input);4417 Input 2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input);4418 Input 2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input);4419 Input 2* sigmapzz_input=NULL; Input2* sigmapxz_input=NULL; Input2* sigmapyz_input=NULL;4412 Input* epsxx_input=element->GetInput(StrainRatexxEnum); _assert_(epsxx_input); 4413 Input* epsyy_input=element->GetInput(StrainRateyyEnum); _assert_(epsyy_input); 4414 Input* epsxy_input=element->GetInput(StrainRatexyEnum); _assert_(epsxy_input); 4415 Input* epszz_input=NULL; Input* epsxz_input=NULL; Input* epsyz_input=NULL; 4416 Input* sigmapxx_input=element->GetInput(DeviatoricStressxxEnum); _assert_(sigmapxx_input); 4417 Input* sigmapyy_input=element->GetInput(DeviatoricStressyyEnum); _assert_(sigmapyy_input); 4418 Input* sigmapxy_input=element->GetInput(DeviatoricStressxyEnum); _assert_(sigmapxy_input); 4419 Input* sigmapzz_input=NULL; Input* sigmapxz_input=NULL; Input* sigmapyz_input=NULL; 4420 4420 if(dim==3){ 4421 epszz_input=element->GetInput 2(StrainRatezzEnum); _assert_(epszz_input);4422 epsxz_input=element->GetInput 2(StrainRatexzEnum); _assert_(epsxz_input);4423 epsyz_input=element->GetInput 2(StrainRateyzEnum); _assert_(epsyz_input);4424 sigmapzz_input=element->GetInput 2(DeviatoricStresszzEnum); _assert_(sigmapzz_input);4425 sigmapxz_input=element->GetInput 2(DeviatoricStressxzEnum); _assert_(sigmapxz_input);4426 sigmapyz_input=element->GetInput 2(DeviatoricStressyzEnum); _assert_(sigmapyz_input);4421 epszz_input=element->GetInput(StrainRatezzEnum); _assert_(epszz_input); 4422 epsxz_input=element->GetInput(StrainRatexzEnum); _assert_(epsxz_input); 4423 epsyz_input=element->GetInput(StrainRateyzEnum); _assert_(epsyz_input); 4424 sigmapzz_input=element->GetInput(DeviatoricStresszzEnum); _assert_(sigmapzz_input); 4425 sigmapxz_input=element->GetInput(DeviatoricStressxzEnum); _assert_(sigmapxz_input); 4426 sigmapyz_input=element->GetInput(DeviatoricStressyzEnum); _assert_(sigmapyz_input); 4427 4427 } 4428 4428 … … 5086 5086 int* vdoflist=NULL; 5087 5087 int* pdoflist=NULL; 5088 Input 2* vz_input=NULL;5088 Input* vz_input=NULL; 5089 5089 int dim; 5090 5090 IssmDouble vx,vy,vz,p; … … 5108 5108 element->GetDofListVelocity(&vdoflist,GsetEnum); 5109 5109 element->GetDofListPressure(&pdoflist,GsetEnum); 5110 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);5111 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);5112 if(dim==3){vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);}5113 Input 2* p_input =element->GetInput2(PressureEnum); _assert_(p_input);5110 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 5111 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 5112 if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);} 5113 Input* p_input =element->GetInput(PressureEnum); _assert_(p_input); 5114 5114 5115 5115 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); … … 5169 5169 /*Get inputs and parameters*/ 5170 5170 element->GetVerticesCoordinates(&xyz_list); 5171 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);5172 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);5173 Input 2* vz_input;5174 if(dim==3){vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);}5171 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 5172 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 5173 Input* vz_input; 5174 if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);} 5175 5175 5176 5176 /*Allocate new inputs*/ … … 5211 5211 5212 5212 /*Add inputs*/ 5213 element->AddInput 2(StrainRatexxEnum,epsxx,P1DGEnum); element->AddInput2(DeviatoricStressxxEnum,sigmapxx,P1DGEnum);5214 element->AddInput 2(StrainRateyyEnum,epsyy,P1DGEnum); element->AddInput2(DeviatoricStressyyEnum,sigmapyy,P1DGEnum);5215 element->AddInput 2(StrainRatexyEnum,epsxy,P1DGEnum); element->AddInput2(DeviatoricStressxyEnum,sigmapxy,P1DGEnum);5213 element->AddInput(StrainRatexxEnum,epsxx,P1DGEnum); element->AddInput(DeviatoricStressxxEnum,sigmapxx,P1DGEnum); 5214 element->AddInput(StrainRateyyEnum,epsyy,P1DGEnum); element->AddInput(DeviatoricStressyyEnum,sigmapyy,P1DGEnum); 5215 element->AddInput(StrainRatexyEnum,epsxy,P1DGEnum); element->AddInput(DeviatoricStressxyEnum,sigmapxy,P1DGEnum); 5216 5216 if(dim==3){ 5217 element->AddInput 2(StrainRatezzEnum,epszz,P1DGEnum); element->AddInput2(DeviatoricStresszzEnum,sigmapzz,P1DGEnum);5218 element->AddInput 2(StrainRatexzEnum,epsxz,P1DGEnum); element->AddInput2(DeviatoricStressxzEnum,sigmapxz,P1DGEnum);5219 element->AddInput 2(StrainRateyzEnum,epsyz,P1DGEnum); element->AddInput2(DeviatoricStressyzEnum,sigmapyz,P1DGEnum);5217 element->AddInput(StrainRatezzEnum,epszz,P1DGEnum); element->AddInput(DeviatoricStresszzEnum,sigmapzz,P1DGEnum); 5218 element->AddInput(StrainRatexzEnum,epsxz,P1DGEnum); element->AddInput(DeviatoricStressxzEnum,sigmapxz,P1DGEnum); 5219 element->AddInput(StrainRateyzEnum,epsyz,P1DGEnum); element->AddInput(DeviatoricStressyzEnum,sigmapyz,P1DGEnum); 5220 5220 } 5221 5221 … … 5303 5303 if(v_interp==P1bubbleEnum) v_interp=P1Enum; 5304 5304 if(v_interp == P1bubblecondensedEnum) v_interp = P1Enum; 5305 element->AddInput 2(VxEnum, vx, v_interp);5306 element->AddInput 2(VyEnum, vy, v_interp);5307 element->AddInput 2(VelEnum,vel,v_interp);5308 if(pnumdof>0) element->AddInput 2(PressureEnum,pressure,element->PressureInterpolation());5309 if(dim==3) element->AddInput 2(VzEnum,vz,v_interp);5305 element->AddInput(VxEnum, vx, v_interp); 5306 element->AddInput(VyEnum, vy, v_interp); 5307 element->AddInput(VelEnum,vel,v_interp); 5308 if(pnumdof>0) element->AddInput(PressureEnum,pressure,element->PressureInterpolation()); 5309 if(dim==3) element->AddInput(VzEnum,vz,v_interp); 5310 5310 5311 5311 /*Free ressources:*/ … … 5341 5341 /*Get inputs and parameters*/ 5342 5342 element->GetVerticesCoordinates(&xyz_list); 5343 Input 2* B_input=element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);5344 Input 2* n_input=element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);5345 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);5346 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);5347 Input 2* vz_input;5348 if(dim==3){vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);}5343 Input* B_input=element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 5344 Input* n_input=element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 5345 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 5346 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 5347 Input* vz_input; 5348 if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);} 5349 5349 5350 5350 /*Fetch number of nodes and dof for this finite element*/ … … 5365 5365 5366 5366 /*Get previous d*/ 5367 Input 2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input);5368 Input 2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input);5369 Input 2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input);5370 Input 2* epszz_input=NULL; Input2* epsxz_input=NULL; Input2* epsyz_input=NULL;5367 Input* epsxx_input=element->GetInput(StrainRatexxEnum); _assert_(epsxx_input); 5368 Input* epsyy_input=element->GetInput(StrainRateyyEnum); _assert_(epsyy_input); 5369 Input* epsxy_input=element->GetInput(StrainRatexyEnum); _assert_(epsxy_input); 5370 Input* epszz_input=NULL; Input* epsxz_input=NULL; Input* epsyz_input=NULL; 5371 5371 if(dim==3){ 5372 epszz_input=element->GetInput 2(StrainRatezzEnum); _assert_(epszz_input);5373 epsxz_input=element->GetInput 2(StrainRatexzEnum); _assert_(epsxz_input);5374 epsyz_input=element->GetInput 2(StrainRateyzEnum); _assert_(epsyz_input);5372 epszz_input=element->GetInput(StrainRatezzEnum); _assert_(epszz_input); 5373 epsxz_input=element->GetInput(StrainRatexzEnum); _assert_(epsxz_input); 5374 epsyz_input=element->GetInput(StrainRateyzEnum); _assert_(epsyz_input); 5375 5375 } 5376 5376 5377 5377 /*Get tau*/ 5378 Input 2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input);5379 Input 2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input);5380 Input 2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input);5381 Input 2* sigmapzz_input=NULL; Input2* sigmapxz_input=NULL; Input2* sigmapyz_input=NULL;5378 Input* sigmapxx_input=element->GetInput(DeviatoricStressxxEnum); _assert_(sigmapxx_input); 5379 Input* sigmapyy_input=element->GetInput(DeviatoricStressyyEnum); _assert_(sigmapyy_input); 5380 Input* sigmapxy_input=element->GetInput(DeviatoricStressxyEnum); _assert_(sigmapxy_input); 5381 Input* sigmapzz_input=NULL; Input* sigmapxz_input=NULL; Input* sigmapyz_input=NULL; 5382 5382 if(dim==3){ 5383 sigmapzz_input=element->GetInput 2(DeviatoricStresszzEnum); _assert_(sigmapzz_input);5384 sigmapxz_input=element->GetInput 2(DeviatoricStressxzEnum); _assert_(sigmapxz_input);5385 sigmapyz_input=element->GetInput 2(DeviatoricStressyzEnum); _assert_(sigmapyz_input);5383 sigmapzz_input=element->GetInput(DeviatoricStresszzEnum); _assert_(sigmapzz_input); 5384 sigmapxz_input=element->GetInput(DeviatoricStressxzEnum); _assert_(sigmapxz_input); 5385 sigmapyz_input=element->GetInput(DeviatoricStressyzEnum); _assert_(sigmapyz_input); 5386 5386 } 5387 5387 … … 5497 5497 for(int i=0;i<3;i++) _assert_(!xIsNan<IssmDouble>(d_yy[i])); 5498 5498 for(int i=0;i<3;i++) _assert_(!xIsNan<IssmDouble>(d_xx[i])); 5499 element->AddInput 2(StrainRatexxEnum,d_xx,P1DGEnum);5500 element->AddInput 2(StrainRateyyEnum,d_yy,P1DGEnum);5501 element->AddInput 2(StrainRatexyEnum,d_xy,P1DGEnum);5499 element->AddInput(StrainRatexxEnum,d_xx,P1DGEnum); 5500 element->AddInput(StrainRateyyEnum,d_yy,P1DGEnum); 5501 element->AddInput(StrainRatexyEnum,d_xy,P1DGEnum); 5502 5502 } 5503 5503 else{ … … 5512 5512 Matrix4x4Solve(&d_xz[0],Ke,pe_xz); 5513 5513 Matrix4x4Solve(&d_yz[0],Ke,pe_yz); 5514 element->AddInput 2(StrainRatexxEnum,d_xx,P1DGEnum);5515 element->AddInput 2(StrainRateyyEnum,d_yy,P1DGEnum);5516 element->AddInput 2(StrainRatexyEnum,d_xy,P1DGEnum);5517 element->AddInput 2(StrainRatezzEnum,d_zz,P1DGEnum);5518 element->AddInput 2(StrainRatexzEnum,d_xz,P1DGEnum);5519 element->AddInput 2(StrainRateyzEnum,d_yz,P1DGEnum);5514 element->AddInput(StrainRatexxEnum,d_xx,P1DGEnum); 5515 element->AddInput(StrainRateyyEnum,d_yy,P1DGEnum); 5516 element->AddInput(StrainRatexyEnum,d_xy,P1DGEnum); 5517 element->AddInput(StrainRatezzEnum,d_zz,P1DGEnum); 5518 element->AddInput(StrainRatexzEnum,d_xz,P1DGEnum); 5519 element->AddInput(StrainRateyzEnum,d_yz,P1DGEnum); 5520 5520 } 5521 5521 … … 5554 5554 /*Get inputs and parameters*/ 5555 5555 element->GetVerticesCoordinates(&xyz_list); 5556 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);5557 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);5558 Input 2* vz_input=NULL;5559 if(dim==3){vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);}5556 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 5557 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 5558 Input* vz_input=NULL; 5559 if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);} 5560 5560 5561 5561 /*Get previous tau*/ 5562 Input 2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input);5563 Input 2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input);5564 Input 2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input);5565 Input 2* sigmapzz_input=NULL; Input2* sigmapxz_input=NULL; Input2* sigmapyz_input=NULL;5562 Input* sigmapxx_input=element->GetInput(DeviatoricStressxxEnum); _assert_(sigmapxx_input); 5563 Input* sigmapyy_input=element->GetInput(DeviatoricStressyyEnum); _assert_(sigmapyy_input); 5564 Input* sigmapxy_input=element->GetInput(DeviatoricStressxyEnum); _assert_(sigmapxy_input); 5565 Input* sigmapzz_input=NULL; Input* sigmapxz_input=NULL; Input* sigmapyz_input=NULL; 5566 5566 if(dim==3){ 5567 sigmapzz_input=element->GetInput 2(DeviatoricStresszzEnum); _assert_(sigmapzz_input);5568 sigmapxz_input=element->GetInput 2(DeviatoricStressxzEnum); _assert_(sigmapxz_input);5569 sigmapyz_input=element->GetInput 2(DeviatoricStressyzEnum); _assert_(sigmapyz_input);5567 sigmapzz_input=element->GetInput(DeviatoricStresszzEnum); _assert_(sigmapzz_input); 5568 sigmapxz_input=element->GetInput(DeviatoricStressxzEnum); _assert_(sigmapxz_input); 5569 sigmapyz_input=element->GetInput(DeviatoricStressyzEnum); _assert_(sigmapyz_input); 5570 5570 } 5571 5571 5572 5572 /*Get NEW d*/ 5573 Input 2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input);5574 Input 2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input);5575 Input 2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input);5576 Input 2* epszz_input=NULL; Input2* epsxz_input=NULL; Input2* epsyz_input=NULL;5573 Input* epsxx_input=element->GetInput(StrainRatexxEnum); _assert_(epsxx_input); 5574 Input* epsyy_input=element->GetInput(StrainRateyyEnum); _assert_(epsyy_input); 5575 Input* epsxy_input=element->GetInput(StrainRatexyEnum); _assert_(epsxy_input); 5576 Input* epszz_input=NULL; Input* epsxz_input=NULL; Input* epsyz_input=NULL; 5577 5577 if(dim==3){ 5578 epszz_input=element->GetInput 2(StrainRatezzEnum); _assert_(epszz_input);5579 epsxz_input=element->GetInput 2(StrainRatexzEnum); _assert_(epsxz_input);5580 epsyz_input=element->GetInput 2(StrainRateyzEnum); _assert_(epsyz_input);5578 epszz_input=element->GetInput(StrainRatezzEnum); _assert_(epszz_input); 5579 epsxz_input=element->GetInput(StrainRatexzEnum); _assert_(epsxz_input); 5580 epsyz_input=element->GetInput(StrainRateyzEnum); _assert_(epsyz_input); 5581 5581 } 5582 5582 … … 5647 5647 5648 5648 /*Add inputs*/ 5649 element->AddInput 2(DeviatoricStressxxEnum,tau_xx,P1DGEnum);5650 element->AddInput 2(DeviatoricStressyyEnum,tau_yy,P1DGEnum);5651 element->AddInput 2(DeviatoricStressxyEnum,tau_xy,P1DGEnum);5649 element->AddInput(DeviatoricStressxxEnum,tau_xx,P1DGEnum); 5650 element->AddInput(DeviatoricStressyyEnum,tau_yy,P1DGEnum); 5651 element->AddInput(DeviatoricStressxyEnum,tau_xy,P1DGEnum); 5652 5652 if(dim==3){ 5653 element->AddInput 2(DeviatoricStresszzEnum,tau_zz,P1DGEnum);5654 element->AddInput 2(DeviatoricStressxzEnum,tau_xz,P1DGEnum);5655 element->AddInput 2(DeviatoricStressyzEnum,tau_yz,P1DGEnum);5653 element->AddInput(DeviatoricStresszzEnum,tau_zz,P1DGEnum); 5654 element->AddInput(DeviatoricStressxzEnum,tau_xz,P1DGEnum); 5655 element->AddInput(DeviatoricStressyzEnum,tau_yz,P1DGEnum); 5656 5656 } 5657 5657 … … 5779 5779 5780 5780 /*If on water or not FS, skip stiffness: */ 5781 element->GetInput 2Value(&approximation,ApproximationEnum);5781 element->GetInputValue(&approximation,ApproximationEnum); 5782 5782 if(element->IsFloating() || !element->IsOnBase()) return NULL; 5783 5783 … … 5811 5811 element->GetVerticesCoordinatesBase(&xyz_list_tria); 5812 5812 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 5813 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);5814 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);5815 Input 2* vz_input=element->GetInput2(VzEnum); _assert_(vz_input);5813 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 5814 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 5815 Input* vz_input=element->GetInput(VzEnum); _assert_(vz_input); 5816 5816 5817 5817 /*build friction object, used later on: */ … … 5932 5932 element->GetVerticesCoordinates(&xyz_list); 5933 5933 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 5934 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);5935 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);5936 Input 2* vz_input=element->GetInput2(VzEnum); _assert_(vz_input);5934 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 5935 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 5936 Input* vz_input=element->GetInput(VzEnum); _assert_(vz_input); 5937 5937 5938 5938 /* Start looping on the number of gaussian points: */ … … 6119 6119 /* Get node coordinates and dof list: */ 6120 6120 element->GetVerticesCoordinates(&xyz_list); 6121 Input 2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input);6122 Input 2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input);6121 Input* vx_input =element->GetInput(VxEnum); _assert_(vx_input); 6122 Input* vy_input =element->GetInput(VyEnum); _assert_(vy_input); 6123 6123 6124 6124 /* Start looping on the number of gaussian points: */ … … 6272 6272 /*Initialize Element matrix*/ 6273 6273 ElementMatrix* Ke=basaltria->NewElementMatrix(SSAApproximationEnum); 6274 element->GetInput 2Value(&approximation,ApproximationEnum);6274 element->GetInputValue(&approximation,ApproximationEnum); 6275 6275 6276 6276 /*Retrieve all inputs and parameters*/ 6277 6277 element->GetVerticesCoordinates(&xyz_list); 6278 Input 2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input);6279 Input 2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input);6280 Input 2* vz_input =element->GetInput2(VzEnum); _assert_(vz_input);6278 Input* vx_input =element->GetInput(VxEnum); _assert_(vx_input); 6279 Input* vy_input =element->GetInput(VyEnum); _assert_(vy_input); 6280 Input* vz_input =element->GetInput(VzEnum); _assert_(vz_input); 6281 6281 6282 6282 /* Start looping on the number of gaussian points: */ … … 6353 6353 /*Initialize Element vector and return if necessary*/ 6354 6354 if(!element->IsOnBase() || element->IsFloating()) return NULL; 6355 element->GetInput 2Value(&approximation,ApproximationEnum);6355 element->GetInputValue(&approximation,ApproximationEnum); 6356 6356 if(approximation!=HOFSApproximationEnum) return NULL; 6357 6357 … … 6378 6378 element->GetVerticesCoordinatesBase(&xyz_list_tria); 6379 6379 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 6380 Input 2* vx_input= element->GetInput2(VxEnum); _assert_(vx_input);6381 Input 2* vy_input= element->GetInput2(VyEnum); _assert_(vy_input);6382 Input 2* vz_input= element->GetInput2(VzEnum); _assert_(vz_input);6383 Input 2* vzHO_input=element->GetInput2(VzHOEnum); _assert_(vzHO_input);6380 Input* vx_input= element->GetInput(VxEnum); _assert_(vx_input); 6381 Input* vy_input= element->GetInput(VyEnum); _assert_(vy_input); 6382 Input* vz_input= element->GetInput(VzEnum); _assert_(vz_input); 6383 Input* vzHO_input=element->GetInput(VzHOEnum); _assert_(vzHO_input); 6384 6384 6385 6385 /*build friction object, used later on: */ … … 6436 6436 6437 6437 /*Initialize Element vector and return if necessary*/ 6438 element->GetInput 2Value(&approximation,ApproximationEnum);6438 element->GetInputValue(&approximation,ApproximationEnum); 6439 6439 if(approximation!=HOFSApproximationEnum) return NULL; 6440 6440 int vnumnodes = element->NumberofNodesVelocity(); … … 6457 6457 element->GetVerticesCoordinates(&xyz_list); 6458 6458 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 6459 Input 2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input);6460 Input 2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input);6461 Input 2* vz_input =element->GetInput2(VzEnum); _assert_(vz_input);6462 Input 2* vzHO_input=element->GetInput2(VzHOEnum); _assert_(vzHO_input);6459 Input* vx_input =element->GetInput(VxEnum); _assert_(vx_input); 6460 Input* vy_input =element->GetInput(VyEnum); _assert_(vy_input); 6461 Input* vz_input =element->GetInput(VzEnum); _assert_(vz_input); 6462 Input* vzHO_input=element->GetInput(VzHOEnum); _assert_(vzHO_input); 6463 6463 6464 6464 /* Start looping on the number of gaussian points: */ … … 6523 6523 /*Initialize Element vector and return if necessary*/ 6524 6524 if(!element->IsOnBase() || element->IsFloating()) return NULL; 6525 element->GetInput 2Value(&approximation,ApproximationEnum);6525 element->GetInputValue(&approximation,ApproximationEnum); 6526 6526 if(approximation!=SSAFSApproximationEnum) return NULL; 6527 6527 int vnumnodes = element->NumberofNodesVelocity(); … … 6545 6545 element->GetVerticesCoordinatesBase(&xyz_list_tria); 6546 6546 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 6547 Input 2* vx_input= element->GetInput2(VxEnum); _assert_(vx_input);6548 Input 2* vy_input= element->GetInput2(VyEnum); _assert_(vy_input);6549 Input 2* vz_input= element->GetInput2(VzEnum); _assert_(vz_input);6550 Input 2* vzSSA_input=element->GetInput2(VzSSAEnum); _assert_(vzSSA_input);6547 Input* vx_input= element->GetInput(VxEnum); _assert_(vx_input); 6548 Input* vy_input= element->GetInput(VyEnum); _assert_(vy_input); 6549 Input* vz_input= element->GetInput(VzEnum); _assert_(vz_input); 6550 Input* vzSSA_input=element->GetInput(VzSSAEnum); _assert_(vzSSA_input); 6551 6551 6552 6552 /*build friction object, used later on: */ … … 6602 6602 6603 6603 /*Initialize Element vector and return if necessary*/ 6604 element->GetInput 2Value(&approximation,ApproximationEnum);6604 element->GetInputValue(&approximation,ApproximationEnum); 6605 6605 if(approximation!=SSAFSApproximationEnum) return NULL; 6606 6606 int vnumnodes = element->NumberofNodesVelocity(); … … 6623 6623 element->GetVerticesCoordinates(&xyz_list); 6624 6624 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 6625 Input 2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input);6626 Input 2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input);6627 Input 2* vz_input =element->GetInput2(VzEnum); _assert_(vz_input);6628 Input 2* vzSSA_input=element->GetInput2(VzSSAEnum); _assert_(vzSSA_input);6625 Input* vx_input =element->GetInput(VxEnum); _assert_(vx_input); 6626 Input* vy_input =element->GetInput(VyEnum); _assert_(vy_input); 6627 Input* vz_input =element->GetInput(VzEnum); _assert_(vz_input); 6628 Input* vzSSA_input=element->GetInput(VzSSAEnum); _assert_(vzSSA_input); 6629 6629 6630 6630 /* Start looping on the number of gaussian points: */ … … 7219 7219 7220 7220 /*Add vx and vy as inputs to element: */ 7221 element->AddInput 2(VxEnum,vx,P1Enum);7222 element->AddInput 2(VyEnum,vy,P1Enum);7223 element->AddInput 2(VzEnum,vz,P1Enum);7224 element->AddInput 2(VzFSEnum,vzFS,P1Enum);7225 element->AddInput 2(VelEnum,vel,P1Enum);7226 element->AddInput 2(PressureEnum,pressure,P1Enum);7221 element->AddInput(VxEnum,vx,P1Enum); 7222 element->AddInput(VyEnum,vy,P1Enum); 7223 element->AddInput(VzEnum,vz,P1Enum); 7224 element->AddInput(VzFSEnum,vzFS,P1Enum); 7225 element->AddInput(VelEnum,vel,P1Enum); 7226 element->AddInput(PressureEnum,pressure,P1Enum); 7227 7227 7228 7228 /*Free ressources:*/ … … 7322 7322 7323 7323 /*Add vx and vy as inputs to element: */ 7324 element->AddInput 2(VxEnum,vx,P1Enum);7325 element->AddInput 2(VyEnum,vy,P1Enum);7326 element->AddInput 2(VzEnum,vz,P1Enum);7327 element->AddInput 2(VzFSEnum,vzFS,P1Enum);7328 element->AddInput 2(VelEnum,vel,P1Enum);7329 element->AddInput 2(PressureEnum,pressure,P1Enum);7324 element->AddInput(VxEnum,vx,P1Enum); 7325 element->AddInput(VyEnum,vy,P1Enum); 7326 element->AddInput(VzEnum,vz,P1Enum); 7327 element->AddInput(VzFSEnum,vzFS,P1Enum); 7328 element->AddInput(VelEnum,vel,P1Enum); 7329 element->AddInput(PressureEnum,pressure,P1Enum); 7330 7330 7331 7331 /*Free ressources:*/ … … 7415 7415 7416 7416 /*Add vx and vy as inputs to element: */ 7417 element->AddInput 2(VxEnum,vx,P1Enum);7418 element->AddInput 2(VyEnum,vy,P1Enum);7419 element->AddInput 2(VelEnum,vel,P1Enum);7420 element->AddInput 2(PressureEnum,pressure,P1Enum);7417 element->AddInput(VxEnum,vx,P1Enum); 7418 element->AddInput(VyEnum,vy,P1Enum); 7419 element->AddInput(VelEnum,vel,P1Enum); 7420 element->AddInput(PressureEnum,pressure,P1Enum); 7421 7421 7422 7422 /*Free ressources:*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
r25317 r25379 107 107 return 2; 108 108 }/*}}}*/ 109 void StressbalanceSIAAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/109 void StressbalanceSIAAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 110 110 111 111 /*Fetch data needed: */ … … 127 127 if(iomodel->my_elements[i]){ 128 128 Element* element=(Element*)elements->GetObjectByOffset(counter); 129 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);129 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 130 130 /*Need to know the type of approximation for this element*/ 131 131 if(iomodel->Data("md.flowequation.element_equation")){ 132 inputs 2->SetInput(ApproximationEnum,counter,IoCodeToEnumElementEquation(reCast<int>(iomodel->Data("md.flowequation.element_equation")[i])));132 inputs->SetInput(ApproximationEnum,counter,IoCodeToEnumElementEquation(reCast<int>(iomodel->Data("md.flowequation.element_equation")[i]))); 133 133 } 134 134 counter++; … … 142 142 switch(frictionlaw){ 143 143 case 1: 144 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);145 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);146 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);144 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 145 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 146 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 147 147 break; 148 148 case 2: 149 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);150 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);149 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 150 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 151 151 break; 152 152 case 6: 153 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);154 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);155 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);156 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);153 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 154 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 155 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 156 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 157 157 break; 158 158 default: … … 160 160 } 161 161 162 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);163 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);162 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 163 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 164 164 if(ismovingfront){ 165 165 if(iomodel->domaintype!=Domain2DhorizontalEnum) 166 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes166 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes 167 167 } 168 168 … … 326 326 IssmDouble gravity = element->FindParam(ConstantsGEnum); 327 327 IssmDouble B,n; 328 Input 2* B_input = element->GetInput2(MaterialsRheologyBbarEnum);_assert_(B_input);329 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);330 Input 2* slopex_input = element->GetInput2(SurfaceSlopeXEnum); _assert_(slopex_input);331 Input 2* slopey_input = element->GetInput2(SurfaceSlopeYEnum); _assert_(slopey_input);332 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);333 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);334 Input 2* drag_input = NULL;328 Input* B_input = element->GetInput(MaterialsRheologyBbarEnum);_assert_(B_input); 329 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 330 Input* slopex_input = element->GetInput(SurfaceSlopeXEnum); _assert_(slopex_input); 331 Input* slopey_input = element->GetInput(SurfaceSlopeYEnum); _assert_(slopey_input); 332 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 333 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 334 Input* drag_input = NULL; 335 335 if(frictionlaw!=5 && frictionlaw!=1){ 336 drag_input = element->GetInput 2(FrictionCoefficientEnum); _assert_(drag_input);336 drag_input = element->GetInput(FrictionCoefficientEnum); _assert_(drag_input); 337 337 } 338 338 … … 416 416 IssmDouble gravity = element->FindParam(ConstantsGEnum); 417 417 IssmDouble B,n; 418 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);419 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);420 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);421 Input 2* slopex_input = element->GetInput2(SurfaceSlopeXEnum); _assert_(slopex_input);422 Input 2* slopey_input = element->GetInput2(SurfaceSlopeYEnum); _assert_(slopey_input);423 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);424 Input 2* drag_input = NULL;418 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 419 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 420 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 421 Input* slopex_input = element->GetInput(SurfaceSlopeXEnum); _assert_(slopex_input); 422 Input* slopey_input = element->GetInput(SurfaceSlopeYEnum); _assert_(slopey_input); 423 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 424 Input* drag_input = NULL; 425 425 Friction* friction = NULL; 426 426 if(frictionlaw!=5 && frictionlaw!=1){ 427 drag_input = element->GetInput 2(FrictionCoefficientEnum); _assert_(drag_input);427 drag_input = element->GetInput(FrictionCoefficientEnum); _assert_(drag_input); 428 428 } 429 429 else if(frictionlaw==5){ … … 535 535 /*Get dof list and inputs */ 536 536 element->GetDofList(&doflist,NoneApproximationEnum,GsetEnum); 537 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);538 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);537 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 538 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 539 539 540 540 /*Ok, we have the velocities in inputs, fill in solution */ … … 622 622 623 623 /*Add vx and vy as inputs to the tria element: */ 624 element->AddInput 2(VxEnum,vx,P1Enum);625 element->AddInput 2(VyEnum,vy,P1Enum);626 element->AddInput 2(VelEnum,vel,P1Enum);627 element->AddInput 2(PressureEnum,pressure,P1Enum);624 element->AddInput(VxEnum,vx,P1Enum); 625 element->AddInput(VyEnum,vy,P1Enum); 626 element->AddInput(VelEnum,vel,P1Enum); 627 element->AddInput(PressureEnum,pressure,P1Enum); 628 628 629 629 /*Free ressources:*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
r25317 r25379 86 86 return 1; 87 87 }/*}}}*/ 88 void StressbalanceVerticalAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/88 void StressbalanceVerticalAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 89 89 90 90 /*return if not 3d mesh*/ … … 96 96 if(iomodel->my_elements[i]){ 97 97 Element* element=(Element*)elements->GetObjectByOffset(counter); 98 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);98 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 99 99 counter++; 100 100 } 101 101 } 102 102 103 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);104 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);105 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);106 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);107 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);103 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 104 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 105 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 106 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 107 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 108 108 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 109 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);110 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);111 } 112 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);113 //iomodel->FetchDataToInput(inputs 2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);109 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 110 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 111 } 112 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 113 //iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum); 114 114 115 115 … … 119 119 switch(basalforcing_model){ 120 120 case FloatingMeltRateEnum: 121 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);121 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum); 122 122 break; 123 123 case LinearFloatingMeltRateEnum: … … 128 128 break; 129 129 case SpatialLinearFloatingMeltRateEnum: 130 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);131 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);132 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum);130 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum); 131 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum); 132 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum); 133 133 break; 134 134 case BasalforcingsPicoEnum: 135 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);135 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum); 136 136 break; 137 137 case BasalforcingsIsmip6Enum: 138 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);138 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum); 139 139 break; 140 140 case BeckmannGoosseFloatingMeltRateEnum: 141 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);142 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);141 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum); 142 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum); 143 143 break; 144 144 default: 145 145 _error_("Basal forcing model "<<EnumToStringx(basalforcing_model)<<" not supported yet"); 146 146 } 147 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum,0.);148 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum,0.);147 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum,0.); 148 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum,0.); 149 149 }/*}}}*/ 150 150 void StressbalanceVerticalAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/ … … 347 347 element->GetVerticesCoordinatesBase(&xyz_list_base); 348 348 element->GetInputValue(&approximation,ApproximationEnum); 349 Input 2* base_input=element->GetInput2(BaseEnum); _assert_(base_input);350 Input 2* groundedice_input=element->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedice_input);351 Input 2* groundedice_melting_input=element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input);352 Input 2* floatingice_melting_input=element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingice_melting_input);353 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);354 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);355 Input 2* vzFS_input=NULL;349 Input* base_input=element->GetInput(BaseEnum); _assert_(base_input); 350 Input* groundedice_input=element->GetInput(MaskOceanLevelsetEnum); _assert_(groundedice_input); 351 Input* groundedice_melting_input=element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input); 352 Input* floatingice_melting_input=element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingice_melting_input); 353 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 354 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 355 Input* vzFS_input=NULL; 356 356 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 357 vzFS_input=element->GetInput 2(VzFSEnum); _assert_(vzFS_input);357 vzFS_input=element->GetInput(VzFSEnum); _assert_(vzFS_input); 358 358 } 359 359 … … 413 413 element->GetVerticesCoordinatesTop(&xyz_list_surface); 414 414 element->GetInputValue(&approximation,ApproximationEnum); 415 Input 2* surface_input =element->GetInput2(SurfaceEnum); _assert_(surface_input);416 Input 2* smb_input=element->GetInput2(SmbMassBalanceEnum); _assert_(smb_input);417 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);418 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);419 Input 2* vzFS_input=NULL;415 Input* surface_input =element->GetInput(SurfaceEnum); _assert_(surface_input); 416 Input* smb_input=element->GetInput(SmbMassBalanceEnum); _assert_(smb_input); 417 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 418 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 419 Input* vzFS_input=NULL; 420 420 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 421 vzFS_input=element->GetInput 2(VzFSEnum); _assert_(vzFS_input);421 vzFS_input=element->GetInput(VzFSEnum); _assert_(vzFS_input); 422 422 } 423 423 … … 468 468 element->GetVerticesCoordinates(&xyz_list); 469 469 element->GetInputValue(&approximation,ApproximationEnum); 470 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);471 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);472 Input 2* vzFS_input=NULL;470 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 471 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 472 Input* vzFS_input=NULL; 473 473 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 474 vzFS_input=element->GetInput 2(VzFSEnum); _assert_(vzFS_input);474 vzFS_input=element->GetInput(VzFSEnum); _assert_(vzFS_input); 475 475 } 476 476 … … 555 555 /*Do some modifications if we actually have a HOFS or SSAFS element*/ 556 556 if(approximation==HOFSApproximationEnum){ 557 Input 2* vzFS_input=element->GetInput2(VzFSEnum);557 Input* vzFS_input=element->GetInput(VzFSEnum); 558 558 if (vzFS_input){ 559 if (vzFS_input->ObjectEnum()!=PentaInput 2Enum) _error_("Cannot compute Vel as VzFS is of type " << EnumToStringx(vzFS_input->ObjectEnum()));559 if (vzFS_input->ObjectEnum()!=PentaInputEnum) _error_("Cannot compute Vel as VzFS is of type " << EnumToStringx(vzFS_input->ObjectEnum())); 560 560 element->GetInputListOnNodes(&vzFS[0],VzFSEnum,0.); 561 561 } … … 567 567 } 568 568 else if(approximation==SSAFSApproximationEnum){ 569 Input 2* vzFS_input=element->GetInput2(VzFSEnum);569 Input* vzFS_input=element->GetInput(VzFSEnum); 570 570 if (vzFS_input){ 571 if (vzFS_input->ObjectEnum()!=PentaInput 2Enum) _error_("Cannot compute Vel as VzFS is of type " << EnumToStringx(vzFS_input->ObjectEnum()));571 if (vzFS_input->ObjectEnum()!=PentaInputEnum) _error_("Cannot compute Vel as VzFS is of type " << EnumToStringx(vzFS_input->ObjectEnum())); 572 572 element->GetInputListOnNodes(&vzFS[0],VzFSEnum,0.); 573 573 } … … 591 591 } 592 592 if(approximation!=HOFSApproximationEnum && approximation!=SSAFSApproximationEnum){ 593 element->AddInput 2(PressureEnum,pressure,element->GetElementType());593 element->AddInput(PressureEnum,pressure,element->GetElementType()); 594 594 } 595 595 else if(approximation==HOFSApproximationEnum){ 596 element->AddInput 2(VzHOEnum,vzHO,P1Enum);596 element->AddInput(VzHOEnum,vzHO,P1Enum); 597 597 } 598 598 else if(approximation==SSAFSApproximationEnum){ 599 element->AddInput 2(VzSSAEnum,vzSSA,P1Enum);600 } 601 element->AddInput 2(VzEnum,vz,P1Enum);602 element->AddInput 2(VelEnum,vel,P1Enum);599 element->AddInput(VzSSAEnum,vzSSA,P1Enum); 600 } 601 element->AddInput(VzEnum,vz,P1Enum); 602 element->AddInput(VelEnum,vel,P1Enum); 603 603 604 604 /*Free ressources:*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
r25317 r25379 104 104 return 1; 105 105 }/*}}}*/ 106 void ThermalAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/106 void ThermalAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 107 107 108 108 int frictionlaw,basalforcing_model,materialstype; … … 119 119 if(iomodel->my_elements[i]){ 120 120 Element* element=(Element*)elements->GetObjectByOffset(counter); 121 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);121 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 122 122 counter++; 123 123 } … … 130 130 iomodel->FindConstant(&materialstype,"md.materials.type"); 131 131 132 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);133 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.surface",SurfaceEnum);134 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);135 iomodel->FetchDataToInput(inputs 2,elements,"md.solidearth.sealevel",SealevelEnum,0);136 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);137 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);132 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 133 iomodel->FetchDataToInput(inputs,elements,"md.geometry.surface",SurfaceEnum); 134 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 135 iomodel->FetchDataToInput(inputs,elements,"md.solidearth.sealevel",SealevelEnum,0); 136 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 137 iomodel->FetchDataToInput(inputs,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 138 138 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 139 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);140 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);141 } 142 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);143 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);144 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);145 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);146 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum);147 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum);148 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vz",VzEnum);149 InputUpdateFromConstantx(inputs 2,elements,0.,VxMeshEnum);150 InputUpdateFromConstantx(inputs 2,elements,0.,VyMeshEnum);151 InputUpdateFromConstantx(inputs 2,elements,0.,VzMeshEnum);139 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 140 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 141 } 142 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 143 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 144 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 145 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 146 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 147 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 148 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum); 149 InputUpdateFromConstantx(inputs,elements,0.,VxMeshEnum); 150 InputUpdateFromConstantx(inputs,elements,0.,VyMeshEnum); 151 InputUpdateFromConstantx(inputs,elements,0.,VzMeshEnum); 152 152 153 153 /*Rheology type*/ 154 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);154 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 155 155 switch(materialstype){ 156 156 case MatenhancediceEnum: 157 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);158 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_E",MaterialsRheologyEEnum);157 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 158 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_E",MaterialsRheologyEEnum); 159 159 break; 160 160 case MatdamageiceEnum: 161 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);161 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 162 162 break; 163 163 case MatestarEnum: 164 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum);165 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_Es",MaterialsRheologyEsEnum);164 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum); 165 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_Es",MaterialsRheologyEsEnum); 166 166 break; 167 167 case MaticeEnum: 168 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);168 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 169 169 break; 170 170 default: … … 172 172 } 173 173 if(ismovingfront){ 174 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes174 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes 175 175 } 176 176 /*Basal forcings variables*/ … … 180 180 break; 181 181 default: 182 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);182 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum); 183 183 break; 184 184 } … … 187 187 case 1: 188 188 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 189 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);190 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);191 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);189 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 190 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 191 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 192 192 if (FrictionCoupling==3){ 193 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}193 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 194 194 else if(FrictionCoupling==4){ 195 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);195 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 196 196 } 197 197 break; 198 198 case 2: 199 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);200 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);199 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 200 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 201 201 break; 202 202 case 3: 203 203 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 204 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);205 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.As",FrictionAsEnum);206 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);204 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 205 iomodel->FetchDataToInput(inputs,elements,"md.friction.As",FrictionAsEnum); 206 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 207 207 if (FrictionCoupling==3){ 208 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}208 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 209 209 else if(FrictionCoupling==4){ 210 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);210 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 211 211 } 212 212 break; 213 213 case 4: 214 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);215 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);216 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);217 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);218 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);214 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 215 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 216 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 217 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 218 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 219 219 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 220 220 break; 221 221 case 5: 222 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);223 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);224 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);225 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.water_layer",FrictionWaterLayerEnum);222 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 223 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 224 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 225 iomodel->FetchDataToInput(inputs,elements,"md.friction.water_layer",FrictionWaterLayerEnum); 226 226 break; 227 227 case 6: 228 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.C",FrictionCEnum);229 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.m",FrictionMEnum);230 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum);231 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.temperature",TemperatureEnum);228 iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum); 229 iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum); 230 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum); 231 iomodel->FetchDataToInput(inputs,elements,"md.initialization.temperature",TemperatureEnum); 232 232 break; 233 233 case 7: 234 234 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 235 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);236 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum);237 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.p",FrictionPEnum);238 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.q",FrictionQEnum);235 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 236 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum); 237 iomodel->FetchDataToInput(inputs,elements,"md.friction.p",FrictionPEnum); 238 iomodel->FetchDataToInput(inputs,elements,"md.friction.q",FrictionQEnum); 239 239 if (FrictionCoupling==3){ 240 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}240 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 241 241 else if(FrictionCoupling==4){ 242 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.effective_pressure",EffectivePressureEnum);242 iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum); 243 243 } 244 244 break; 245 245 case 9: 246 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.coefficient",FrictionCoefficientEnum);247 iomodel->FetchDataToInput(inputs 2,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum);248 InputUpdateFromConstantx(inputs 2,elements,1.,FrictionPEnum);249 InputUpdateFromConstantx(inputs 2,elements,1.,FrictionQEnum);246 iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum); 247 iomodel->FetchDataToInput(inputs,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum); 248 InputUpdateFromConstantx(inputs,elements,1.,FrictionPEnum); 249 InputUpdateFromConstantx(inputs,elements,1.,FrictionQEnum); 250 250 break; 251 251 default: … … 403 403 IssmDouble thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum); 404 404 IssmDouble kappa = thermalconductivity/(rho_ice*heatcapacity); 405 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);406 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);407 Input 2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input);408 Input 2* vxm_input = element->GetInput2(VxMeshEnum); _assert_(vxm_input);409 Input 2* vym_input = element->GetInput2(VyMeshEnum); _assert_(vym_input);410 Input 2* vzm_input = element->GetInput2(VzMeshEnum); _assert_(vzm_input);405 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 406 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 407 Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input); 408 Input* vxm_input = element->GetInput(VxMeshEnum); _assert_(vxm_input); 409 Input* vym_input = element->GetInput(VyMeshEnum); _assert_(vym_input); 410 Input* vzm_input = element->GetInput(VzMeshEnum); _assert_(vzm_input); 411 411 412 412 /* Start looping on the number of gaussian points: */ … … 552 552 element->GetVerticesCoordinatesBase(&xyz_list_base); 553 553 element->FindParam(&dt,TimesteppingTimeStepEnum); 554 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);555 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);556 Input 2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input);557 Input 2* geothermalflux_input = element->GetInput2(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input);554 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 555 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 556 Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input); 557 Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input); 558 558 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); 559 559 IssmDouble heatcapacity = element->FindParam(MaterialsHeatcapacityEnum); … … 613 613 element->GetVerticesCoordinatesBase(&xyz_list_base); 614 614 element->FindParam(&dt,TimesteppingTimeStepEnum); 615 Input 2* pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input);615 Input* pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input); 616 616 IssmDouble gravity = element->FindParam(ConstantsGEnum); 617 617 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); … … 675 675 element->FindParam(&dt,TimesteppingTimeStepEnum); 676 676 element->FindParam(&stabilization,ThermalStabilizationEnum); 677 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);678 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);679 Input 2* vz_input=element->GetInput2(VzEnum); _assert_(vz_input);680 Input 2* temperature_input = NULL;681 if(reCast<bool,IssmDouble>(dt)){temperature_input = element->GetInput 2(TemperatureEnum); _assert_(temperature_input);}677 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 678 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 679 Input* vz_input=element->GetInput(VzEnum); _assert_(vz_input); 680 Input* temperature_input = NULL; 681 if(reCast<bool,IssmDouble>(dt)){temperature_input = element->GetInput(TemperatureEnum); _assert_(temperature_input);} 682 682 683 683 /* Start looping on the number of gaussian points: */ … … 787 787 element->GetInputValue(&converged,ConvergedEnum); 788 788 if(converged){ 789 element->AddInput 2(TemperatureEnum,values,element->GetElementType());789 element->AddInput(TemperatureEnum,values,element->GetElementType()); 790 790 791 791 IssmDouble* n = xNew<IssmDouble>(numnodes); … … 808 808 case BuddJackaEnum: 809 809 for(i=0;i<numnodes;i++) B[i]=BuddJacka(values[i]); 810 element->AddInput 2(MaterialsRheologyBEnum,&B[0],element->GetElementType());810 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 811 811 break; 812 812 case CuffeyEnum: 813 813 for(i=0;i<numnodes;i++) B[i]=Cuffey(values[i]); 814 element->AddInput 2(MaterialsRheologyBEnum,&B[0],element->GetElementType());814 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 815 815 break; 816 816 case PatersonEnum: 817 817 for(i=0;i<numnodes;i++) B[i]=Paterson(values[i]); 818 element->AddInput 2(MaterialsRheologyBEnum,&B[0],element->GetElementType());818 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 819 819 break; 820 820 case NyeH2OEnum: 821 821 for(i=0;i<numnodes;i++) B[i]=NyeH2O(values[i]); 822 element->AddInput 2(MaterialsRheologyBEnum,&B[0],element->GetElementType());822 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 823 823 break; 824 824 case NyeCO2Enum: 825 825 for(i=0;i<numnodes;i++) B[i]=NyeCO2(values[i]); 826 element->AddInput 2(MaterialsRheologyBEnum,&B[0],element->GetElementType());826 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 827 827 break; 828 828 case ArrheniusEnum:{ 829 829 element->GetVerticesCoordinates(&xyz_list); 830 830 for(i=0;i<numnodes;i++) B[i]=Arrhenius(values[i],surface[i]-xyz_list[i*3+2],n[i]); 831 element->AddInput 2(MaterialsRheologyBEnum,&B[0],element->GetElementType());831 element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType()); 832 832 break; 833 833 } … … 838 838 } 839 839 else{ 840 element->AddInput 2(TemperaturePicardEnum,values,element->GetElementType());840 element->AddInput(TemperaturePicardEnum,values,element->GetElementType()); 841 841 } 842 842 -
issm/trunk-jpl/src/c/analyses/ThermalAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/analyses/UzawaPressureAnalysis.cpp
r25317 r25379 27 27 return 1; 28 28 }/*}}}*/ 29 void UzawaPressureAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/29 void UzawaPressureAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 30 30 31 31 /*Update elements: */ … … 42 42 if(iomodel->my_elements[i]){ 43 43 Element* element=(Element*)elements->GetObjectByOffset(counter); 44 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,finiteelement);44 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement); 45 45 counter++; 46 46 } 47 47 } 48 48 49 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vx",VxEnum,0.);50 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vy",VyEnum,0.);51 if(iomodel->domaintype==Domain3DEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.vz",VzEnum,0.);52 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.pressure",PressureEnum,0.);53 InputUpdateFromConstantx(inputs 2,elements,0.,SigmaNNEnum);49 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum,0.); 50 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum,0.); 51 if(iomodel->domaintype==Domain3DEnum) iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum,0.); 52 iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum,0.); 53 InputUpdateFromConstantx(inputs,elements,0.,SigmaNNEnum); 54 54 }/*}}}*/ 55 55 void UzawaPressureAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/ … … 130 130 IssmDouble dvz[3]; 131 131 132 Input 2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);133 Input 2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);134 Input 2* vz_input = NULL;135 if(dim==3){vz_input=element->GetInput 2(VzEnum); _assert_(vz_input);}132 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 133 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 134 Input* vz_input = NULL; 135 if(dim==3){vz_input=element->GetInput(VzEnum); _assert_(vz_input);} 136 136 137 137 Gauss* gauss = element->NewGauss(5); … … 206 206 IssmDouble* valueslambda = xNewZeroInit<IssmDouble>(numnodessigma); 207 207 IssmDouble* pressure = xNew<IssmDouble>(numnodes); 208 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);209 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);210 Input 2* vz_input = NULL;211 if(dim==3){vz_input = element->GetInput 2(VzEnum); _assert_(vz_input);}208 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 209 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 210 Input* vz_input = NULL; 211 if(dim==3){vz_input = element->GetInput(VzEnum); _assert_(vz_input);} 212 212 element->GetInputListOnNodes(&pressure[0],PressureEnum); 213 213 … … 216 216 values[i] = pressure[i] + solution[doflist[i]]; 217 217 } 218 element->AddInput 2(PressureEnum,values,element->GetElementType());218 element->AddInput(PressureEnum,values,element->GetElementType()); 219 219 220 220 /*Now compute sigmann if on base*/ 221 221 if(element->IsOnBase() && 0){ 222 Input 2* sigmann_input = element->GetInput2(SigmaNNEnum); _assert_(sigmann_input);222 Input* sigmann_input = element->GetInput(SigmaNNEnum); _assert_(sigmann_input); 223 223 if(dim==3) _error_("not implemented yet"); 224 224 … … 231 231 IssmDouble deltalambda[3] = {0.0}; 232 232 IssmDouble* vertexonbase = xNew<IssmDouble>(numnodessigma); 233 Input 2* vertexonbase_input = element->GetInput2(MeshVertexonbaseEnum); _assert_(vertexonbase_input);233 Input* vertexonbase_input = element->GetInput(MeshVertexonbaseEnum); _assert_(vertexonbase_input); 234 234 Gauss* gauss = element->NewGauss(); 235 235 … … 285 285 xDelete<IssmDouble>(basis); 286 286 287 element->AddInput 2(SigmaNNEnum,valueslambda,P2Enum);287 element->AddInput(SigmaNNEnum,valueslambda,P2Enum); 288 288 } 289 289 -
issm/trunk-jpl/src/c/analyses/UzawaPressureAnalysis.h
r25317 r25379 17 17 void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false); 18 18 int DofsPerNode(int** doflist,int domaintype,int approximation); 19 void UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);19 void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type); 20 20 void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum); 21 21 -
issm/trunk-jpl/src/c/classes/Cfdragcoeffabsgrad.cpp
r24379 r25379 21 21 #include "../classes/Params/Parameters.h" 22 22 #include "../classes/gauss/Gauss.h" 23 #include "./Inputs 2/DatasetInput2.h"23 #include "./Inputs/DatasetInput.h" 24 24 /*}}}*/ 25 25 … … 151 151 152 152 /*Get input if it already exists*/ 153 DatasetInput 2 *datasetinput = basalelement->GetDatasetInput2(definitionenum); _assert_(datasetinput);154 Input 2 *drag_input = basalelement->GetInput2(FrictionCoefficientEnum); _assert_(drag_input);153 DatasetInput *datasetinput = basalelement->GetDatasetInput(definitionenum); _assert_(datasetinput); 154 Input *drag_input = basalelement->GetInput(FrictionCoefficientEnum); _assert_(drag_input); 155 155 156 156 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/classes/Cfsurfacelogvel.cpp
r24379 r25379 21 21 #include "../classes/Params/Parameters.h" 22 22 #include "../classes/gauss/Gauss.h" 23 #include "./Inputs 2/DatasetInput2.h"23 #include "./Inputs/DatasetInput.h" 24 24 /*}}}*/ 25 25 … … 162 162 163 163 /*Get model values*/ 164 Input 2 *vx_input = topelement->GetInput2(VxEnum); _assert_(vx_input);165 Input 2*vy_input = NULL;164 Input *vx_input = topelement->GetInput(VxEnum); _assert_(vx_input); 165 Input *vy_input = NULL; 166 166 if(numcomponents==2){ 167 vy_input = topelement->GetInput 2(VyEnum); _assert_(vy_input);167 vy_input = topelement->GetInput(VyEnum); _assert_(vy_input); 168 168 } 169 169 170 170 /*Retrieve all inputs we will be needing: */ 171 DatasetInput 2 *datasetinput = topelement->GetDatasetInput2(definitionenum); _assert_(datasetinput);171 DatasetInput *datasetinput = topelement->GetDatasetInput(definitionenum); _assert_(datasetinput); 172 172 173 173 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/classes/Cfsurfacesquare.cpp
r24379 r25379 21 21 #include "../classes/Params/Parameters.h" 22 22 #include "../classes/gauss/Gauss.h" 23 #include "./Inputs 2/DatasetInput2.h"23 #include "./Inputs/DatasetInput.h" 24 24 /*}}}*/ 25 25 … … 167 167 168 168 /*Retrieve all inputs we will be needing: */ 169 DatasetInput 2 *datasetinput = topelement->GetDatasetInput2(definitionenum); _assert_(datasetinput);170 Input 2 *model_input = topelement->GetInput2(model_enum); _assert_(model_input);169 DatasetInput *datasetinput = topelement->GetDatasetInput(definitionenum); _assert_(datasetinput); 170 Input *model_input = topelement->GetInput(model_enum); _assert_(model_input); 171 171 172 172 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r25365 r25379 15 15 #include "../../shared/shared.h" 16 16 #include "../../modules/SurfaceMassBalancex/SurfaceMassBalancex.h" 17 #include "../Inputs 2/BoolInput2.h"18 #include "../Inputs 2/TransientInput2.h"19 #include "../Inputs 2/ElementInput2.h"20 #include "../Inputs 2/PentaInput2.h"21 #include "../Inputs 2/DatasetInput2.h"22 #include "../Inputs 2/ArrayInput2.h"17 #include "../Inputs/BoolInput.h" 18 #include "../Inputs/TransientInput.h" 19 #include "../Inputs/ElementInput.h" 20 #include "../Inputs/PentaInput.h" 21 #include "../Inputs/DatasetInput.h" 22 #include "../Inputs/ArrayInput.h" 23 23 /*}}}*/ 24 24 #define MAXVERTICES 6 /*Maximum number of vertices per element, currently Penta, to avoid dynamic mem allocation*/ … … 36 36 this->sid = -1; 37 37 this->lid = -1; 38 this->inputs 2= NULL;38 this->inputs = NULL; 39 39 this->nodes = NULL; 40 40 this->vertices = NULL; … … 72 72 this->GetVerticesCoordinates(&xyz_list); 73 73 parameters->FindParam(&dim,DomainDimensionEnum); 74 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);75 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);76 Input 2* vz_input=NULL;77 if(dim==3){vz_input=this->GetInput 2(VzEnum); _assert_(vz_input);}74 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 75 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 76 Input* vz_input=NULL; 77 if(dim==3){vz_input=this->GetInput(VzEnum); _assert_(vz_input);} 78 78 79 79 /*Allocate arrays*/ … … 132 132 133 133 /*Add Stress tensor components into inputs*/ 134 this->AddInput 2(LambdaSEnum,&lambdas[0],P1Enum);134 this->AddInput(LambdaSEnum,&lambdas[0],P1Enum); 135 135 136 136 /*Clean up and return*/ … … 155 155 156 156 /* Retrieve inputs */ 157 Input 2* eps_xx_input=this->GetInput2(StrainRatexxEnum); _assert_(eps_xx_input);158 Input 2* eps_yy_input=this->GetInput2(StrainRateyyEnum); _assert_(eps_yy_input);159 Input 2* eps_xy_input=this->GetInput2(StrainRatexyEnum); _assert_(eps_xy_input);160 Input 2* eps_xz_input=NULL;161 Input 2* eps_yz_input=NULL;162 Input 2* eps_zz_input=NULL;157 Input* eps_xx_input=this->GetInput(StrainRatexxEnum); _assert_(eps_xx_input); 158 Input* eps_yy_input=this->GetInput(StrainRateyyEnum); _assert_(eps_yy_input); 159 Input* eps_xy_input=this->GetInput(StrainRatexyEnum); _assert_(eps_xy_input); 160 Input* eps_xz_input=NULL; 161 Input* eps_yz_input=NULL; 162 Input* eps_zz_input=NULL; 163 163 if(dim==3){ 164 eps_xz_input=this->GetInput 2(StrainRatexzEnum); _assert_(eps_xz_input);165 eps_yz_input=this->GetInput 2(StrainRateyzEnum); _assert_(eps_yz_input);166 eps_zz_input=this->GetInput 2(StrainRatezzEnum); _assert_(eps_zz_input);164 eps_xz_input=this->GetInput(StrainRatexzEnum); _assert_(eps_xz_input); 165 eps_yz_input=this->GetInput(StrainRateyzEnum); _assert_(eps_yz_input); 166 eps_zz_input=this->GetInput(StrainRatezzEnum); _assert_(eps_zz_input); 167 167 } 168 168 … … 172 172 173 173 /* Retrieve domain-dependent inputs */ 174 Input 2* n_input=this->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);175 Input 2* damage_input = NULL;176 Input 2* B_input = NULL;174 Input* n_input=this->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 175 Input* damage_input = NULL; 176 Input* B_input = NULL; 177 177 int domaintype; 178 178 parameters->FindParam(&domaintype,DomainTypeEnum); 179 179 if(domaintype==Domain2DhorizontalEnum){ 180 damage_input = this->GetInput 2(DamageDbarOldEnum); _assert_(damage_input);181 B_input=this->GetInput 2(MaterialsRheologyBbarEnum); _assert_(B_input);180 damage_input = this->GetInput(DamageDbarOldEnum); _assert_(damage_input); 181 B_input=this->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 182 182 } 183 183 else{ 184 damage_input = this->GetInput 2(DamageDOldEnum); _assert_(damage_input);185 B_input=this->GetInput 2(MaterialsRheologyBEnum); _assert_(B_input);184 damage_input = this->GetInput(DamageDOldEnum); _assert_(damage_input); 185 B_input=this->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 186 186 } 187 187 … … 224 224 225 225 /* Add new damage input to DamageEnum and NewDamageEnum */ 226 this->AddInput 2(NewDamageEnum,newD,P1DGEnum);226 this->AddInput(NewDamageEnum,newD,P1DGEnum); 227 227 if(domaintype==Domain2DhorizontalEnum){ 228 this->AddInput 2(DamageDbarEnum,newD,this->GetElementType());228 this->AddInput(DamageDbarEnum,newD,this->GetElementType()); 229 229 } 230 230 else{ 231 this->AddInput 2(DamageDEnum,newD,this->GetElementType());231 this->AddInput(DamageDEnum,newD,this->GetElementType()); 232 232 } 233 233 … … 247 247 this->GetVerticesCoordinates(&xyz_list); 248 248 parameters->FindParam(&dim,DomainDimensionEnum); 249 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);250 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);251 Input 2* vz_input=NULL;252 if(dim==3){vz_input=this->GetInput 2(VzEnum); _assert_(vz_input);}249 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 250 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 251 Input* vz_input=NULL; 252 if(dim==3){vz_input=this->GetInput(VzEnum); _assert_(vz_input);} 253 253 254 254 /*Allocate arrays*/ … … 296 296 297 297 /*Add Stress tensor components into inputs*/ 298 this->AddInput 2(StrainRatexxEnum,eps_xx,P1Enum);299 this->AddInput 2(StrainRatexyEnum,eps_xy,P1Enum);300 this->AddInput 2(StrainRatexzEnum,eps_xz,P1Enum);301 this->AddInput 2(StrainRateyyEnum,eps_yy,P1Enum);302 this->AddInput 2(StrainRateyzEnum,eps_yz,P1Enum);303 this->AddInput 2(StrainRatezzEnum,eps_zz,P1Enum);304 this->AddInput 2(StrainRateeffectiveEnum,eps_ef,P1Enum);298 this->AddInput(StrainRatexxEnum,eps_xx,P1Enum); 299 this->AddInput(StrainRatexyEnum,eps_xy,P1Enum); 300 this->AddInput(StrainRatexzEnum,eps_xz,P1Enum); 301 this->AddInput(StrainRateyyEnum,eps_yy,P1Enum); 302 this->AddInput(StrainRateyzEnum,eps_yz,P1Enum); 303 this->AddInput(StrainRatezzEnum,eps_zz,P1Enum); 304 this->AddInput(StrainRateeffectiveEnum,eps_ef,P1Enum); 305 305 306 306 /*Clean up and return*/ … … 417 417 418 418 _printf_(" inputs\n"); 419 if(inputs 2) inputs2->DeepEcho();420 else _printf_("inputs 2=NULL\n");419 if(inputs) inputs->DeepEcho(); 420 else _printf_("inputs=NULL\n"); 421 421 422 422 return; … … 452 452 453 453 /*Recover present day temperature and precipitation*/ 454 DatasetInput 2* dinput1=this->GetDatasetInput2(SmbTemperaturesPresentdayEnum); _assert_(dinput1);455 DatasetInput 2* dinput2=this->GetDatasetInput2(SmbTemperaturesLgmEnum); _assert_(dinput2);456 DatasetInput 2* dinput3=this->GetDatasetInput2(SmbPrecipitationsPresentdayEnum); _assert_(dinput3);454 DatasetInput* dinput1=this->GetDatasetInput(SmbTemperaturesPresentdayEnum); _assert_(dinput1); 455 DatasetInput* dinput2=this->GetDatasetInput(SmbTemperaturesLgmEnum); _assert_(dinput2); 456 DatasetInput* dinput3=this->GetDatasetInput(SmbPrecipitationsPresentdayEnum); _assert_(dinput3); 457 457 458 458 /*loop over vertices: */ … … 492 492 for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlytemperatures[i*12+imonth]; 493 493 switch(this->ObjectEnum()){ 494 case TriaEnum: this->inputs 2->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;495 case PentaEnum: this->inputs 2->SetPentaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;494 case TriaEnum: this->inputs->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 495 case PentaEnum: this->inputs->SetPentaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 496 496 default: _error_("Not implemented yet"); 497 497 } 498 498 for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlyprec[i*12+imonth]/yts; 499 499 switch(this->ObjectEnum()){ 500 case TriaEnum: this->inputs 2->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;501 case PentaEnum: this->inputs 2->SetPentaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;500 case TriaEnum: this->inputs->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 501 case PentaEnum: this->inputs->SetPentaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 502 502 default: _error_("Not implemented yet"); 503 503 } … … 559 559 560 560 /*Recover present day temperature and precipitation*/ 561 DatasetInput 2*dinput3 = NULL;562 DatasetInput 2*dinput4 = NULL;561 DatasetInput *dinput3 = NULL; 562 DatasetInput *dinput4 = NULL; 563 563 int offset_t,offset_p,N; 564 564 if(!isTemperatureScaled){ … … 568 568 if(offset_t<0) offset_t=0; 569 569 xDelete<IssmDouble>(time_temp_scaled); 570 dinput3=this->GetDatasetInput 2(SmbTemperaturesReconstructedEnum); _assert_(dinput3);570 dinput3=this->GetDatasetInput(SmbTemperaturesReconstructedEnum); _assert_(dinput3); 571 571 } 572 572 if(!isPrecipScaled){ … … 576 576 if(offset_p<0) offset_p=0; 577 577 xDelete<IssmDouble>(time_precip_scaled); 578 dinput4=this->GetDatasetInput 2(SmbPrecipitationsReconstructedEnum); _assert_(dinput4);578 dinput4=this->GetDatasetInput(SmbPrecipitationsReconstructedEnum); _assert_(dinput4); 579 579 } 580 580 581 581 /*Get present day temp and precip (monthly)*/ 582 DatasetInput 2 *dinput1 = this->GetDatasetInput2(SmbTemperaturesPresentdayEnum); _assert_(dinput1);583 DatasetInput 2 *dinput2 = this->GetDatasetInput2(SmbPrecipitationsPresentdayEnum); _assert_(dinput2);582 DatasetInput *dinput1 = this->GetDatasetInput(SmbTemperaturesPresentdayEnum); _assert_(dinput1); 583 DatasetInput *dinput2 = this->GetDatasetInput(SmbPrecipitationsPresentdayEnum); _assert_(dinput2); 584 584 585 585 /*loop over vertices: */ … … 617 617 for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlytemperatures[i*12+imonth]; 618 618 switch(this->ObjectEnum()){ 619 case TriaEnum: this->inputs 2->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;620 case PentaEnum: this->inputs 2->SetPentaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;619 case TriaEnum: this->inputs->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 620 case PentaEnum: this->inputs->SetPentaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 621 621 default: _error_("Not implemented yet"); 622 622 } 623 623 for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlyprec[i*12+imonth]/yts; 624 624 switch(this->ObjectEnum()){ 625 case TriaEnum: this->inputs 2->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;626 case PentaEnum: this->inputs 2->SetPentaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;625 case TriaEnum: this->inputs->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 626 case PentaEnum: this->inputs->SetPentaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 627 627 default: _error_("Not implemented yet"); 628 628 } … … 696 696 switch(this->ObjectEnum()){ 697 697 case TriaEnum: 698 this->AddInput 2(SmbMassBalanceSubstepEnum,&smb[0],P1Enum);699 this->AddInput 2(SmbRunoffSubstepEnum,&runoff[0],P1Enum);698 this->AddInput(SmbMassBalanceSubstepEnum,&smb[0],P1Enum); 699 this->AddInput(SmbRunoffSubstepEnum,&runoff[0],P1Enum); 700 700 break; 701 701 case PentaEnum: 702 this->AddInput 2(SmbMassBalanceSubstepEnum,&smb[0],P1Enum);703 this->AddInput 2(SmbRunoffSubstepEnum,&runoff[0],P1Enum);702 this->AddInput(SmbMassBalanceSubstepEnum,&smb[0],P1Enum); 703 this->AddInput(SmbRunoffSubstepEnum,&runoff[0],P1Enum); 704 704 this->InputExtrude(SmbMassBalanceSubstepEnum,-1); 705 705 this->InputExtrude(SmbRunoffSubstepEnum,-1); … … 726 726 /*Get inputs and parameters*/ 727 727 this->FindParam(&dim,DomainDimensionEnum); 728 Input 2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);729 Input 2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);730 Input 2* vz_input = NULL;728 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 729 Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input); 730 Input* vz_input = NULL; 731 731 if(dim==3){ 732 vz_input = this->GetInput 2(VzEnum); _assert_(vz_input);732 vz_input = this->GetInput(VzEnum); _assert_(vz_input); 733 733 } 734 734 this->GetVerticesCoordinates(&xyz_list); … … 757 757 return divergence; 758 758 }/*}}}*/ 759 void Element::dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/759 void Element::dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ 760 760 761 761 /*Intermediaries*/ … … 794 794 } 795 795 /*}}}*/ 796 void Element::dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/796 void Element::dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 797 797 798 798 /*Intermediaries*/ … … 831 831 } 832 832 /*}}}*/ 833 void Element::dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/833 void Element::dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 834 834 835 835 /*Intermediaries*/ … … 868 868 } 869 869 /*}}}*/ 870 void Element::dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/870 void Element::dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 871 871 872 872 /*Intermediaries*/ … … 923 923 924 924 _printf_(" inputs\n"); 925 if (inputs 2) inputs2->Echo();926 else _printf_("inputs 2=NULL\n");925 if (inputs) inputs->Echo(); 926 else _printf_("inputs=NULL\n"); 927 927 } 928 928 /*}}}*/ … … 1096 1096 /*}}}*/ 1097 1097 void Element::GetInputListOnNodes(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue){/*{{{*/ 1098 Input 2 *input = this->GetInput2(enumtype);1098 Input *input = this->GetInput(enumtype); 1099 1099 this->GetInputListOnNodes(pvalue,input,defaultvalue); 1100 1100 } … … 1102 1102 void Element::GetInputListOnNodes(IssmDouble* pvalue,int enumtype){/*{{{*/ 1103 1103 1104 Input 2 *input = this->GetInput2(enumtype);1104 Input *input = this->GetInput(enumtype); 1105 1105 if(!input) _error_("Input " << EnumToStringx(enumtype) << " not found in element"); 1106 1106 this->GetInputListOnNodes(pvalue,input,0.); … … 1113 1113 1114 1114 int numnodes = this->NumberofNodesVelocity(); 1115 Input 2 *input = this->GetInput2(enumtype);1115 Input *input = this->GetInput(enumtype); 1116 1116 if(!input) _error_("Input " << EnumToStringx(enumtype) << " not found in element"); 1117 1117 … … 1128 1128 1129 1129 /*Recover input*/ 1130 Input 2* input2=this->GetInput2(enumtype);1130 Input* input2=this->GetInput(enumtype); 1131 1131 if(!input2) _error_("input "<<EnumToStringx(enumtype)<<" not found in element"); 1132 1132 this->GetInputListOnVertices(pvalue,input2,0.); … … 1136 1136 1137 1137 /*Recover input*/ 1138 Input 2* input=this->GetInput2(enumtype,time);1138 Input* input=this->GetInput(enumtype,time); 1139 1139 if (!input) _error_("Input " << EnumToStringx(enumtype) << " not found in element"); 1140 1140 this->GetInputListOnVertices(pvalue,input,0.); … … 1142 1142 /*}}}*/ 1143 1143 void Element::GetInputListOnVertices(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue){/*{{{*/ 1144 Input 2* input=this->GetInput2(enumtype);1144 Input* input=this->GetInput(enumtype); 1145 1145 this->GetInputListOnVertices(pvalue,input,defaultvalue); 1146 1146 } … … 1173 1173 void Element::GetInputValue(bool* pvalue,int inputenum){/*{{{*/ 1174 1174 1175 this->inputs 2->GetInputValue(pvalue,inputenum,this->lid);1175 this->inputs->GetInputValue(pvalue,inputenum,this->lid); 1176 1176 1177 1177 }/*}}}*/ 1178 1178 void Element::GetInputValue(int* pvalue,int inputenum){/*{{{*/ 1179 this->inputs2->GetInputValue(pvalue,inputenum,this->lid); 1180 }/*}}}*/ 1181 void Element::GetInput2Value(bool* pvalue,int inputenum){/*{{{*/ 1182 1183 this->inputs2->GetInputValue(pvalue,inputenum,this->lid); 1184 1185 }/*}}}*/ 1186 void Element::GetInput2Value(int* pvalue,int inputenum){/*{{{*/ 1187 1188 this->inputs2->GetInputValue(pvalue,inputenum,this->lid); 1189 1190 }/*}}}*/ 1191 void Element::GetInput2Value(IssmDouble* pvalue,int inputenum){/*{{{*/ 1192 1193 this->inputs2->GetInputValue(pvalue,inputenum,this->lid); 1179 1180 this->inputs->GetInputValue(pvalue,inputenum,this->lid); 1181 1182 }/*}}}*/ 1183 void Element::GetInputValue(IssmDouble* pvalue,int inputenum){/*{{{*/ 1184 1185 this->inputs->GetInputValue(pvalue,inputenum,this->lid); 1194 1186 1195 1187 }/*}}}*/ 1196 1188 void Element::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int inputenum){/*{{{*/ 1197 1189 1198 Input 2* input=this->GetInput2(inputenum);1190 Input* input=this->GetInput(inputenum); 1199 1191 if(!input) _error_("Input " << EnumToStringx(inputenum) << " not found in element"); 1200 1192 input->GetInputValue(pvalue,gauss); … … 1288 1280 1289 1281 /*Get inputs*/ 1290 Input 2* enum_input=this->GetInput2(enum_type); _assert_(enum_input);1282 Input* enum_input=this->GetInput(enum_type); _assert_(enum_input); 1291 1283 1292 1284 /*Ok, we have the values, fill in the array: */ … … 1334 1326 IssmDouble value; 1335 1327 IssmDouble* values = NULL; 1336 Input 2* input = NULL;1328 Input* input = NULL; 1337 1329 1338 1330 switch(type){ 1339 1331 case ElementSIdEnum: 1340 input=this->GetInput 2(input_enum); _assert_(input);1332 input=this->GetInput(input_enum); _assert_(input); 1341 1333 input->GetInputAverage(&value); 1342 1334 vector->SetValue(this->sid,value,INS_VAL); … … 1560 1552 /*}}}*/ 1561 1553 bool Element::HasNodeOnBase(){/*{{{*/ 1562 Input 2* input=this->GetInput2(MeshVertexonbaseEnum); _assert_(input);1554 Input* input=this->GetInput(MeshVertexonbaseEnum); _assert_(input); 1563 1555 return (input->GetInputMax()>0.); 1564 1556 }/*}}}*/ 1565 1557 bool Element::HasNodeOnSurface(){/*{{{*/ 1566 Input 2* input=this->GetInput2(MeshVertexonsurfaceEnum); _assert_(input);1558 Input* input=this->GetInput(MeshVertexonsurfaceEnum); _assert_(input); 1567 1559 return (input->GetInputMax()>0.); 1568 1560 }/*}}}*/ … … 1624 1616 } 1625 1617 /*}}}*/ 1626 void Element::InputCreate(IssmDouble* vector,Inputs 2* inputs2,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code){/*{{{*/1618 void Element::InputCreate(IssmDouble* vector,Inputs* inputs,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code){/*{{{*/ 1627 1619 1628 1620 /*Intermediaries*/ … … 1648 1640 if(M==1){ 1649 1641 values[0]=vector[0]; 1650 this->SetElementInput(inputs 2,vector_enum,vector[0]);1642 this->SetElementInput(inputs,vector_enum,vector[0]); 1651 1643 } 1652 1644 else if(M==iomodel->numberofvertices){ 1653 1645 for(i=0;i<NUM_VERTICES;i++) values[i]=vector[vertexids[i]-1]; 1654 this->SetElementInput(inputs 2,NUM_VERTICES,vertexlids,values,vector_enum);1646 this->SetElementInput(inputs,NUM_VERTICES,vertexlids,values,vector_enum); 1655 1647 } 1656 1648 else if(M==iomodel->numberofvertices+1){ … … 1658 1650 IssmDouble* times = xNew<IssmDouble>(N); 1659 1651 for(t=0;t<N;t++) times[t] = vector[(M-1)*N+t]; 1660 inputs 2->SetTransientInput(vector_enum,times,N);1661 TransientInput 2* transientinput = inputs2->GetTransientInput(vector_enum);1652 inputs->SetTransientInput(vector_enum,times,N); 1653 TransientInput* transientinput = inputs->GetTransientInput(vector_enum); 1662 1654 for(t=0;t<N;t++){ 1663 1655 for(i=0;i<NUM_VERTICES;i++) values[i]=vector[N*(vertexids[i]-1)+t]; … … 1678 1670 1679 1671 if (N==this->GetNumberOfNodes(P1Enum)){ 1680 this->SetElementInput(inputs 2,NUM_VERTICES,vertexlids,values,vector_enum);1672 this->SetElementInput(inputs,NUM_VERTICES,vertexlids,values,vector_enum); 1681 1673 } 1682 1674 else if(N==this->GetNumberOfNodes(P0Enum)){ 1683 this->SetElementInput(inputs 2,vector_enum,values[0]);1675 this->SetElementInput(inputs,vector_enum,values[0]); 1684 1676 } 1685 1677 else if(N==this->GetNumberOfNodes(P1xP2Enum)){ _assert_(this->ObjectEnum()==PentaEnum); 1686 inputs 2->SetPentaInput(vector_enum,P1xP2Enum,this->lid,N,values);1678 inputs->SetPentaInput(vector_enum,P1xP2Enum,this->lid,N,values); 1687 1679 } 1688 1680 else if(N==this->GetNumberOfNodes(P1xP3Enum)){ _assert_(this->ObjectEnum()==PentaEnum); 1689 inputs 2->SetPentaInput(vector_enum,P1xP3Enum,this->lid,N,values);1681 inputs->SetPentaInput(vector_enum,P1xP3Enum,this->lid,N,values); 1690 1682 } 1691 1683 else{ … … 1709 1701 if(M==iomodel->numberofelements){ 1710 1702 if (code==5){ //boolean 1711 this->SetBoolInput(inputs 2,vector_enum,reCast<bool>(vector[this->Sid()]));1703 this->SetBoolInput(inputs,vector_enum,reCast<bool>(vector[this->Sid()])); 1712 1704 } 1713 1705 else if (code==6){ //integer 1714 this->SetIntInput(inputs 2,vector_enum,reCast<int>(vector[this->Sid()]));1706 this->SetIntInput(inputs,vector_enum,reCast<int>(vector[this->Sid()])); 1715 1707 } 1716 1708 else if (code==7){ //IssmDouble 1717 this->SetElementInput(inputs 2,vector_enum,vector[this->Sid()]);1709 this->SetElementInput(inputs,vector_enum,vector[this->Sid()]); 1718 1710 } 1719 1711 else _error_("could not recognize nature of vector from code " << code); … … 1723 1715 IssmDouble* times = xNew<IssmDouble>(N); 1724 1716 for(t=0;t<N;t++) times[t] = vector[(M-1)*N+t]; 1725 inputs 2->SetTransientInput(vector_enum,times,N);1726 TransientInput 2* transientinput = inputs2->GetTransientInput(vector_enum);1717 inputs->SetTransientInput(vector_enum,times,N); 1718 TransientInput* transientinput = inputs->GetTransientInput(vector_enum); 1727 1719 for(t=0;t<N;t++){ 1728 1720 value=vector[N*this->Sid()+t]; … … 1743 1735 IssmDouble* layers = xNewZeroInit<IssmDouble>(N); 1744 1736 for(t=0;t<N;t++) layers[t] = vector[N*this->Sid()+t]; 1745 inputs 2->SetArrayInput(vector_enum,this->lid,layers,N);1737 inputs->SetArrayInput(vector_enum,this->lid,layers,N); 1746 1738 xDelete<IssmDouble>(layers); 1747 1739 } … … 1751 1743 } 1752 1744 /*}}}*/ 1753 void Element::ControlInputCreate(IssmDouble* vector,IssmDouble* min_vector,IssmDouble* max_vector,Inputs 2* inputs2,IoModel* iomodel,int M,int N,IssmDouble scale,int input_enum,int id){/*{{{*/1745 void Element::ControlInputCreate(IssmDouble* vector,IssmDouble* min_vector,IssmDouble* max_vector,Inputs* inputs,IoModel* iomodel,int M,int N,IssmDouble scale,int input_enum,int id){/*{{{*/ 1754 1746 1755 1747 /*Intermediaries*/ … … 1779 1771 values_max[i] = scale*max_vector[vertexids[i]-1]; 1780 1772 } 1781 this->AddControlInput(input_enum,inputs 2,iomodel,values,values_min,values_max,P1Enum,id);1773 this->AddControlInput(input_enum,inputs,iomodel,values,values_min,values_max,P1Enum,id); 1782 1774 } 1783 1775 else if(M==iomodel->numberofelements && N==1){ … … 1785 1777 values_min[0] = scale*min_vector[this->Sid()]; 1786 1778 values_max[0] = scale*max_vector[this->Sid()]; 1787 this->AddControlInput(input_enum,inputs 2,iomodel,values,values_min,values_max,P0Enum,id);1779 this->AddControlInput(input_enum,inputs,iomodel,values,values_min,values_max,P0Enum,id); 1788 1780 } 1789 1781 … … 1835 1827 } 1836 1828 /*}}}*/ 1837 void Element::DatasetInputAdd(int enum_type,IssmDouble* vector,Inputs 2* inputs2,IoModel* iomodel,int M,int N,int vector_type,int input_enum,int code,int input_id){/*{{{*/1829 void Element::DatasetInputAdd(int enum_type,IssmDouble* vector,Inputs* inputs,IoModel* iomodel,int M,int N,int vector_type,int input_enum,int code,int input_id){/*{{{*/ 1838 1830 /*enum_type: the name of the DatasetInput (eg Outputdefinition1) 1839 1831 * vector: information being stored (eg observations) … … 1865 1857 if(M==1){ 1866 1858 values[0]=vector[0]; 1867 //this->AddInput 2(vector_enum,values,P0Enum);1859 //this->AddInput(vector_enum,values,P0Enum); 1868 1860 _error_("not implemented yet"); 1869 1861 } … … 1871 1863 for(i=0;i<NUM_VERTICES;i++) values[i]=vector[vertexids[i]-1]; 1872 1864 switch(this->ObjectEnum()){ 1873 case TriaEnum: inputs 2->SetTriaDatasetInput(enum_type,input_id,P1Enum,NUM_VERTICES,vertexlids,values); break;1874 case PentaEnum: inputs 2->SetPentaDatasetInput(enum_type,input_id,P1Enum,NUM_VERTICES,vertexlids,values); break;1865 case TriaEnum: inputs->SetTriaDatasetInput(enum_type,input_id,P1Enum,NUM_VERTICES,vertexlids,values); break; 1866 case PentaEnum: inputs->SetPentaDatasetInput(enum_type,input_id,P1Enum,NUM_VERTICES,vertexlids,values); break; 1875 1867 default: _error_("Not implemented yet for "<<this->ObjectEnum()); 1876 1868 } … … 1880 1872 IssmDouble* times = xNew<IssmDouble>(N); 1881 1873 for(t=0;t<N;t++) times[t] = vector[(M-1)*N+t]; 1882 TransientInput 2* transientinput = inputs2->SetDatasetTransientInput(enum_type,input_id,times,N);1874 TransientInput* transientinput = inputs->SetDatasetTransientInput(enum_type,input_id,times,N); 1883 1875 for(t=0;t<N;t++){ 1884 1876 for(i=0;i<NUM_VERTICES;i++) values[i]=vector[N*(vertexids[i]-1)+t]; … … 1964 1956 1965 1957 /*update input*/ 1966 this->SetIntInput(this->inputs 2,name,constant);1958 this->SetIntInput(this->inputs,name,constant); 1967 1959 } 1968 1960 /*}}}*/ … … 1982 1974 1983 1975 /*update input*/ 1984 this->SetBoolInput(this->inputs 2,name,constant);1976 this->SetBoolInput(this->inputs,name,constant); 1985 1977 } 1986 1978 /*}}}*/ … … 1997 1989 parameters->FindParam(&migration_style,GroundinglineMigrationEnum); 1998 1990 1999 Input 2* input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);1991 Input* input = this->GetInput(MaskOceanLevelsetEnum); _assert_(input); 2000 1992 2001 1993 if(migration_style==SubelementMigrationEnum){ //Floating if all nodes are floating … … 2017 2009 bool Element::IsGrounded(){/*{{{*/ 2018 2010 2019 Input 2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);2011 Input* input=this->GetInput(MaskOceanLevelsetEnum); _assert_(input); 2020 2012 if(input->GetInputMax() > 0.){ 2021 2013 return true; … … 2026 2018 }/*}}}*/ 2027 2019 bool Element::IsIceInElement(){/*{{{*/ 2028 Input 2* input=this->GetInput2(MaskIceLevelsetEnum); _assert_(input);2020 Input* input=this->GetInput(MaskIceLevelsetEnum); _assert_(input); 2029 2021 return (input->GetInputMin()<0.); 2030 2022 } 2031 2023 /*}}}*/ 2032 2024 bool Element::IsIceOnlyInElement(){/*{{{*/ 2033 Input 2* input=this->GetInput2(MaskIceLevelsetEnum); _assert_(input);2025 Input* input=this->GetInput(MaskIceLevelsetEnum); _assert_(input); 2034 2026 return (input->GetInputMax()<0.); 2035 2027 } 2036 2028 /*}}}*/ 2037 2029 bool Element::IsLandInElement(){/*{{{*/ 2038 Input 2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);2030 Input* input=this->GetInput(MaskOceanLevelsetEnum); _assert_(input); 2039 2031 return (input->GetInputMax()>0.); 2040 2032 } 2041 2033 /*}}}*/ 2042 2034 bool Element::IsOceanInElement(){/*{{{*/ 2043 Input 2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);2035 Input* input=this->GetInput(MaskOceanLevelsetEnum); _assert_(input); 2044 2036 return (input->GetInputMin()<0.); 2045 2037 } … … 2078 2070 this->parameters->FindParam(&mean_tf,&N,BasalforcingsIsmip6AverageTfEnum); _assert_(N==num_basins); 2079 2071 } 2080 Input 2* tf_input = this->GetInput2(BasalforcingsIsmip6TfShelfEnum); _assert_(tf_input);2081 Input 2* meltanomaly_input = this->GetInput2(BasalforcingsIsmip6MeltAnomalyEnum); _assert_(meltanomaly_input);2072 Input* tf_input = this->GetInput(BasalforcingsIsmip6TfShelfEnum); _assert_(tf_input); 2073 Input* meltanomaly_input = this->GetInput(BasalforcingsIsmip6MeltAnomalyEnum); _assert_(meltanomaly_input); 2082 2074 delta_t_basin = delta_t[basinid]; 2083 2075 if(!islocal) mean_tf_basin = mean_tf[basinid]; … … 2100 2092 2101 2093 /*Return basal melt rate*/ 2102 this->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrate,P1DGEnum);2094 this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrate,P1DGEnum); 2103 2095 2104 2096 /*Cleanup and return*/ … … 2144 2136 } 2145 2137 2146 this->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);2138 this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum); 2147 2139 xDelete<IssmDouble>(base); 2148 2140 xDelete<IssmDouble>(perturbation); … … 2171 2163 } 2172 2164 2173 this->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);2165 this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum); 2174 2166 xDelete<IssmDouble>(base); 2175 2167 xDelete<IssmDouble>(deepwaterel); … … 2221 2213 } 2222 2214 2223 this->AddInput 2(BasalforcingsGeothermalfluxEnum,values,P1Enum);2215 this->AddInput(BasalforcingsGeothermalfluxEnum,values,P1Enum); 2224 2216 xDelete<IssmDouble>(xyz_list); 2225 2217 xDelete<IssmDouble>(values); … … 2318 2310 } 2319 2311 } 2320 this->AddInput 2(MaskOceanLevelsetEnum,&phi[0],P1Enum);2312 this->AddInput(MaskOceanLevelsetEnum,&phi[0],P1Enum); 2321 2313 2322 2314 /*Update inputs*/ 2323 this->AddInput 2(SurfaceEnum,&s[0],P1Enum);2324 this->AddInput 2(BaseEnum,&b[0],P1Enum);2315 this->AddInput(SurfaceEnum,&s[0],P1Enum); 2316 this->AddInput(BaseEnum,&b[0],P1Enum); 2325 2317 2326 2318 /*Delete*/ … … 2358 2350 } 2359 2351 2360 this->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);2352 this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum); 2361 2353 xDelete<IssmDouble>(base); 2362 2354 xDelete<IssmDouble>(bed); … … 2397 2389 } 2398 2390 2399 this->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);2391 this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum); 2400 2392 xDelete<IssmDouble>(base); 2401 2393 xDelete<IssmDouble>(values); … … 2430 2422 2431 2423 /*Recover present day temperature and precipitation*/ 2432 DatasetInput 2* dinput1=this->GetDatasetInput2(SmbTemperaturesPresentdayEnum); _assert_(dinput1);2433 DatasetInput 2* dinput2=this->GetDatasetInput2(SmbTemperaturesLgmEnum); _assert_(dinput2);2434 DatasetInput 2* dinput3=this->GetDatasetInput2(SmbPrecipitationsPresentdayEnum); _assert_(dinput3);2435 DatasetInput 2* dinput4=this->GetDatasetInput2(SmbPrecipitationsLgmEnum); _assert_(dinput4);2424 DatasetInput* dinput1=this->GetDatasetInput(SmbTemperaturesPresentdayEnum); _assert_(dinput1); 2425 DatasetInput* dinput2=this->GetDatasetInput(SmbTemperaturesLgmEnum); _assert_(dinput2); 2426 DatasetInput* dinput3=this->GetDatasetInput(SmbPrecipitationsPresentdayEnum); _assert_(dinput3); 2427 DatasetInput* dinput4=this->GetDatasetInput(SmbPrecipitationsLgmEnum); _assert_(dinput4); 2436 2428 2437 2429 /*loop over vertices: */ … … 2466 2458 for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlytemperatures[i*12+imonth]; 2467 2459 switch(this->ObjectEnum()){ 2468 case TriaEnum: this->inputs 2->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;2469 case PentaEnum: this->inputs 2->SetPentaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;2460 case TriaEnum: this->inputs->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 2461 case PentaEnum: this->inputs->SetPentaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 2470 2462 default: _error_("Not implemented yet"); 2471 2463 } 2472 2464 for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlyprec[i*12+imonth]/yts; 2473 2465 switch(this->ObjectEnum()){ 2474 case TriaEnum: this->inputs 2->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;2475 case PentaEnum: this->inputs 2->SetPentaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;2466 case TriaEnum: this->inputs->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 2467 case PentaEnum: this->inputs->SetPentaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break; 2476 2468 default: _error_("Not implemented yet"); 2477 2469 } … … 2523 2515 IssmDouble boxid_max=reCast<IssmDouble>(max_boxid_basin_list[basin_id])+1.; 2524 2516 2525 Input 2* dist_gl_input=this->GetInput2(DistanceToGroundinglineEnum); _assert_(dist_gl_input);2526 Input 2* dist_cf_input=this->GetInput2(DistanceToCalvingfrontEnum); _assert_(dist_cf_input);2517 Input* dist_gl_input=this->GetInput(DistanceToGroundinglineEnum); _assert_(dist_gl_input); 2518 Input* dist_cf_input=this->GetInput(DistanceToCalvingfrontEnum); _assert_(dist_cf_input); 2527 2519 2528 2520 /*Get dist_gl and dist_cf at center of element*/ … … 2551 2543 if(boxid==-1) _error_("No boxid found for element " << this->Sid() << "!"); 2552 2544 2553 this->SetIntInput(this->inputs 2,BasalforcingsPicoBoxIdEnum, boxid);2545 this->SetIntInput(this->inputs,BasalforcingsPicoBoxIdEnum, boxid); 2554 2546 2555 2547 }/*}}}*/ … … 2590 2582 this->GetInputValue(&basinid,BasalforcingsPicoBasinIdEnum); 2591 2583 this->parameters->FindParam(&isplume, BasalforcingsPicoIsplumeEnum); 2592 Input 2 *thickness_input = this->GetInput2(ThicknessEnum); _assert_(thickness_input);2584 Input *thickness_input = this->GetInput(ThicknessEnum); _assert_(thickness_input); 2593 2585 _assert_(basinid<=num_basins); 2594 2586 … … 2614 2606 IssmDouble s1 = soc_farocean/(nu*lambda); 2615 2607 IssmDouble* overturnings = xNew<IssmDouble>(NUM_VERTICES); 2616 Input 2 *overturningC_input = this->GetInput2(BasalforcingsPicoOverturningCoeffEnum); _assert_(overturningC_input);2608 Input *overturningC_input = this->GetInput(BasalforcingsPicoOverturningCoeffEnum); _assert_(overturningC_input); 2617 2609 2618 2610 /* Start looping on the number of verticies and calculate ocean vars */ … … 2637 2629 } 2638 2630 2639 if(!isplume) this->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum);2640 this->AddInput 2(BasalforcingsPicoSubShelfOceanTempEnum,Tocs,P1DGEnum);2641 this->AddInput 2(BasalforcingsPicoSubShelfOceanSalinityEnum,Socs,P1DGEnum);2642 this->AddInput 2(BasalforcingsPicoSubShelfOceanOverturningEnum,overturnings,P1DGEnum);2631 if(!isplume) this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum); 2632 this->AddInput(BasalforcingsPicoSubShelfOceanTempEnum,Tocs,P1DGEnum); 2633 this->AddInput(BasalforcingsPicoSubShelfOceanSalinityEnum,Socs,P1DGEnum); 2634 this->AddInput(BasalforcingsPicoSubShelfOceanOverturningEnum,overturnings,P1DGEnum); 2643 2635 2644 2636 /*Cleanup and return*/ … … 2673 2665 } 2674 2666 2675 if(!isplume) this->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum);2676 this->AddInput 2(BasalforcingsPicoSubShelfOceanTempEnum,Tocs,P1DGEnum);2677 this->AddInput 2(BasalforcingsPicoSubShelfOceanSalinityEnum,Socs,P1DGEnum);2667 if(!isplume) this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum); 2668 this->AddInput(BasalforcingsPicoSubShelfOceanTempEnum,Tocs,P1DGEnum); 2669 this->AddInput(BasalforcingsPicoSubShelfOceanSalinityEnum,Socs,P1DGEnum); 2678 2670 2679 2671 /*Cleanup and return*/ … … 2731 2723 2732 2724 /*Get inputs*/ 2733 Input 2* zgl_input = this->GetInput2(GroundinglineHeightEnum); _assert_(zgl_input);2734 Input 2* toc_input = this->GetInput2(BasalforcingsPicoSubShelfOceanTempEnum); _assert_(toc_input);2735 Input 2* soc_input = this->GetInput2(BasalforcingsPicoSubShelfOceanSalinityEnum); _assert_(soc_input);2736 Input 2* base_input = this->GetInput2(BaseEnum); _assert_(base_input);2737 Input 2* baseslopex_input = this->GetInput2(BaseSlopeXEnum); _assert_(baseslopex_input);2738 Input 2* baseslopey_input = this->GetInput2(BaseSlopeYEnum); _assert_(baseslopey_input);2725 Input* zgl_input = this->GetInput(GroundinglineHeightEnum); _assert_(zgl_input); 2726 Input* toc_input = this->GetInput(BasalforcingsPicoSubShelfOceanTempEnum); _assert_(toc_input); 2727 Input* soc_input = this->GetInput(BasalforcingsPicoSubShelfOceanSalinityEnum); _assert_(soc_input); 2728 Input* base_input = this->GetInput(BaseEnum); _assert_(base_input); 2729 Input* baseslopex_input = this->GetInput(BaseSlopeXEnum); _assert_(baseslopex_input); 2730 Input* baseslopey_input = this->GetInput(BaseSlopeYEnum); _assert_(baseslopey_input); 2739 2731 this->FindParam(&yts, ConstantsYtsEnum); 2740 2732 … … 2786 2778 2787 2779 /*Save computed melt-rate*/ 2788 this->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum);2780 this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum); 2789 2781 2790 2782 /*Cleanup and return*/ … … 2833 2825 2834 2826 /*Get inputs*/ 2835 DatasetInput 2* dinput =this->GetDatasetInput2(SmbMonthlytemperaturesEnum); _assert_(dinput);2836 DatasetInput 2* dinput2=this->GetDatasetInput2(SmbPrecipitationEnum); _assert_(dinput2);2827 DatasetInput* dinput =this->GetDatasetInput(SmbMonthlytemperaturesEnum); _assert_(dinput); 2828 DatasetInput* dinput2=this->GetDatasetInput(SmbPrecipitationEnum); _assert_(dinput2); 2837 2829 2838 2830 /*loop over vertices: */ … … 2866 2858 * This parameter is set, if the user wants to define the 2867 2859 * pdd factors regionally, if issetpddfac==1 in the d18opdd method */ 2868 Input 2* input = NULL;2869 Input 2* input2 = NULL;2860 Input* input = NULL; 2861 Input* input2 = NULL; 2870 2862 if(issetpddfac==1){ 2871 input = this->GetInput 2(SmbPddfacSnowEnum); _assert_(input);2872 input2 = this->GetInput 2(SmbPddfacIceEnum); _assert_(input2);2863 input = this->GetInput(SmbPddfacSnowEnum); _assert_(input); 2864 input2 = this->GetInput(SmbPddfacIceEnum); _assert_(input2); 2873 2865 } 2874 2866 … … 2901 2893 switch(this->ObjectEnum()){ 2902 2894 case TriaEnum: 2903 this->AddInput 2(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum);2904 this->AddInput 2(SmbMassBalanceEnum,&agd[0],P1Enum);2905 this->AddInput 2(SmbAccumulationEnum,&accu[0],P1Enum);2906 this->AddInput 2(SmbMeltEnum,&melt[0],P1Enum);2895 this->AddInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum); 2896 this->AddInput(SmbMassBalanceEnum,&agd[0],P1Enum); 2897 this->AddInput(SmbAccumulationEnum,&accu[0],P1Enum); 2898 this->AddInput(SmbMeltEnum,&melt[0],P1Enum); 2907 2899 break; 2908 2900 case PentaEnum: … … 2911 2903 * the temperatures as they are for the base of the penta and 2912 2904 * yse yearlytemperatures for the top*/ 2913 PentaInput 2* temp_input = xDynamicCast<PentaInput2*>(this->GetInput2(TemperatureEnum)); _assert_(temp_input);2905 PentaInput* temp_input = xDynamicCast<PentaInput*>(this->GetInput(TemperatureEnum)); _assert_(temp_input); 2914 2906 switch(temp_input->GetInputInterpolationType()){ 2915 2907 case P1Enum: … … 2935 2927 if(isenthalpy){ 2936 2928 /*Convert that to enthalpy for the enthalpy model*/ 2937 PentaInput 2* enth_input = xDynamicCast<PentaInput2*>(this->GetInput2(EnthalpyEnum)); _assert_(enth_input);2929 PentaInput* enth_input = xDynamicCast<PentaInput*>(this->GetInput(EnthalpyEnum)); _assert_(enth_input); 2938 2930 switch(enth_input->GetInputInterpolationType()){ 2939 2931 case P1Enum: … … 2956 2948 } 2957 2949 } 2958 this->AddInput 2(SmbMassBalanceEnum,&agd[0],P1Enum);2959 this->AddInput 2(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum);2960 this->AddInput 2(SmbAccumulationEnum,&accu[0],P1Enum);2961 this->AddInput 2(SmbMeltEnum,&melt[0],P1Enum);2950 this->AddInput(SmbMassBalanceEnum,&agd[0],P1Enum); 2951 this->AddInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum); 2952 this->AddInput(SmbAccumulationEnum,&accu[0],P1Enum); 2953 this->AddInput(SmbMeltEnum,&melt[0],P1Enum); 2962 2954 this->InputExtrude(TemperaturePDDEnum,-1); 2963 2955 this->InputExtrude(SmbMassBalanceEnum,-1); … … 3029 3021 3030 3022 /*Get inputs*/ 3031 DatasetInput 2* dinput =this->GetDatasetInput2(SmbMonthlytemperaturesEnum); _assert_(dinput);3032 DatasetInput 2* dinput2=this->GetDatasetInput2(SmbPrecipitationEnum); _assert_(dinput2);3023 DatasetInput* dinput =this->GetDatasetInput(SmbMonthlytemperaturesEnum); _assert_(dinput); 3024 DatasetInput* dinput2=this->GetDatasetInput(SmbPrecipitationEnum); _assert_(dinput2); 3033 3025 3034 3026 /*loop over vertices: */ … … 3077 3069 switch(this->ObjectEnum()){ 3078 3070 case TriaEnum: 3079 //this->AddInput 2(TemperatureEnum,&yearlytemperatures[0],P1Enum);3080 this->AddInput 2(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum);3081 this->AddInput 2(SmbMassBalanceEnum,&smb[0],P1Enum);3082 this->AddInput 2(SmbAccumulationEnum,&accu[0],P1Enum);3083 this->AddInput 2(SmbMeltEnum,&melt[0],P1Enum);3071 //this->AddInput(TemperatureEnum,&yearlytemperatures[0],P1Enum); 3072 this->AddInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum); 3073 this->AddInput(SmbMassBalanceEnum,&smb[0],P1Enum); 3074 this->AddInput(SmbAccumulationEnum,&accu[0],P1Enum); 3075 this->AddInput(SmbMeltEnum,&melt[0],P1Enum); 3084 3076 break; 3085 3077 case PentaEnum: … … 3095 3087 3096 3088 /*FIXME: look at other function Element::PositiveDegreeDay and propagate change! Just assert for now*/ 3097 PentaInput 2* temp_input = xDynamicCast<PentaInput2*>(this->GetInput2(TemperatureEnum)); _assert_(temp_input);3089 PentaInput* temp_input = xDynamicCast<PentaInput*>(this->GetInput(TemperatureEnum)); _assert_(temp_input); 3098 3090 switch(temp_input->GetInputInterpolationType()){ 3099 3091 case P1Enum: … … 3118 3110 if(isenthalpy){ 3119 3111 /*Convert that to enthalpy for the enthalpy model*/ 3120 PentaInput 2* enth_input = xDynamicCast<PentaInput2*>(this->GetInput2(EnthalpyEnum)); _assert_(enth_input);3112 PentaInput* enth_input = xDynamicCast<PentaInput*>(this->GetInput(EnthalpyEnum)); _assert_(enth_input); 3121 3113 switch(enth_input->GetInputInterpolationType()){ 3122 3114 case P1Enum: … … 3141 3133 } 3142 3134 } 3143 this->AddInput 2(SmbMassBalanceEnum,&smb[0],P1Enum);3144 this->AddInput 2(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum);3145 this->AddInput 2(SmbAccumulationEnum,&accu[0],P1Enum);3146 this->AddInput 2(SmbMeltEnum,&melt[0],P1Enum);3135 this->AddInput(SmbMassBalanceEnum,&smb[0],P1Enum); 3136 this->AddInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum); 3137 this->AddInput(SmbAccumulationEnum,&accu[0],P1Enum); 3138 this->AddInput(SmbMeltEnum,&melt[0],P1Enum); 3147 3139 this->InputExtrude(TemperaturePDDEnum,-1); 3148 3140 this->InputExtrude(SmbMassBalanceEnum,-1); … … 3236 3228 case SurfaceCrevasseEnum: this->CalvingCrevasseDepth(); break; 3237 3229 case SigmaVMEnum: this->CalvingRateVonmises(); break; 3238 case PartitioningEnum: this->inputs 2->SetInput(PartitioningEnum,this->lid,IssmComm::GetRank()); break;3230 case PartitioningEnum: this->inputs->SetInput(PartitioningEnum,this->lid,IssmComm::GetRank()); break; 3239 3231 } 3240 3232 3241 3233 /*If this input is not already in Inputs, maybe it needs to be computed?*/ 3242 switch(this->inputs 2->GetInputObjectEnum(output_enum)){3243 case TriaInput 2Enum:3244 case PentaInput 2Enum:3245 case TransientInput 2Enum:{3246 Input 2* input2 = this->GetInput2(output_enum);3234 switch(this->inputs->GetInputObjectEnum(output_enum)){ 3235 case TriaInputEnum: 3236 case PentaInputEnum: 3237 case TransientInputEnum:{ 3238 Input* input2 = this->GetInput(output_enum); 3247 3239 if(!input2) _error_("input "<<EnumToStringx(output_enum)<<" not found in element"); 3248 3240 *pinterpolation = input2->GetResultInterpolation(); … … 3251 3243 } 3252 3244 break; 3253 case BoolInput 2Enum:3245 case BoolInputEnum: 3254 3246 *pinterpolation = P0Enum; 3255 3247 *pnodesperelement = 1; 3256 3248 *parray_size = 1; 3257 3249 break; 3258 case IntInput 2Enum:3250 case IntInputEnum: 3259 3251 *pinterpolation = P0Enum; 3260 3252 *pnodesperelement = 1; 3261 3253 *parray_size = 1; 3262 3254 break; 3263 case ArrayInput 2Enum:{3255 case ArrayInputEnum:{ 3264 3256 int M; 3265 this->inputs 2->GetArray(output_enum,this->lid,NULL,&M);3257 this->inputs->GetArray(output_enum,this->lid,NULL,&M); 3266 3258 *pinterpolation = P0ArrayEnum; 3267 3259 *pnodesperelement = 1; … … 3270 3262 break; 3271 3263 default: 3272 _error_("Input type \""<<EnumToStringx(this->inputs 2->GetInputObjectEnum(output_enum))<<"\" not supported yet (While trying to return "<<EnumToStringx(output_enum)<<")");3264 _error_("Input type \""<<EnumToStringx(this->inputs->GetInputObjectEnum(output_enum))<<"\" not supported yet (While trying to return "<<EnumToStringx(output_enum)<<")"); 3273 3265 } 3274 3266 … … 3281 3273 3282 3274 /*Find input*/ 3283 Input 2* input=this->GetInput2(output_enum);3275 Input* input=this->GetInput(output_enum); 3284 3276 if(!input) _error_("input "<<EnumToStringx(output_enum)<<" not found in element"); 3285 3277 3286 3278 /*Cast to ElementInput*/ 3287 if(input->ObjectEnum()!=TriaInput 2Enum && input->ObjectEnum()!=PentaInput2Enum){3288 _error_("Input "<<EnumToStringx(output_enum)<<" is not an ElementInput 2");3289 } 3290 ElementInput 2* element_input = xDynamicCast<ElementInput2*>(input);3279 if(input->ObjectEnum()!=TriaInputEnum && input->ObjectEnum()!=PentaInputEnum){ 3280 _error_("Input "<<EnumToStringx(output_enum)<<" is not an ElementInput"); 3281 } 3282 ElementInput* element_input = xDynamicCast<ElementInput*>(input); 3291 3283 3292 3284 /*Get Number of nodes and make sure that it is the same as the one provided*/ … … 3302 3294 IssmDouble* array = NULL; 3303 3295 int m; 3304 this->inputs 2->GetArray(output_enum,this->lid,&array,&m);3296 this->inputs->GetArray(output_enum,this->lid,&array,&m); 3305 3297 for(int i=0;i<m;i++) values[this->Sid()*ncols + i] = array[i]; 3306 3298 xDelete<IssmDouble>(array); … … 3313 3305 int sidlist[MAXVERTICES]; 3314 3306 3315 switch(this->inputs 2->GetInputObjectEnum(output_enum)){3316 case TriaInput 2Enum:3317 case PentaInput 2Enum:3318 case TransientInput 2Enum:{3319 3320 Input 2* input2 = this->GetInput2(output_enum);3307 switch(this->inputs->GetInputObjectEnum(output_enum)){ 3308 case TriaInputEnum: 3309 case PentaInputEnum: 3310 case TransientInputEnum:{ 3311 3312 Input* input2 = this->GetInput(output_enum); 3321 3313 if(!input2) _error_("input "<<EnumToStringx(output_enum)<<" not found in element"); 3322 3314 … … 3348 3340 } 3349 3341 break; 3350 case BoolInput 2Enum:3342 case BoolInputEnum: 3351 3343 bool bvalue; 3352 this->GetInput 2Value(&bvalue,output_enum);3344 this->GetInputValue(&bvalue,output_enum); 3353 3345 vector->SetValue(this->Sid(),reCast<IssmDouble>(bvalue),INS_VAL); 3354 3346 break; 3355 case IntInput 2Enum:3347 case IntInputEnum: 3356 3348 int ivalue; 3357 this->GetInput 2Value(&ivalue,output_enum);3349 this->GetInputValue(&ivalue,output_enum); 3358 3350 vector->SetValue(this->Sid(),reCast<IssmDouble>(ivalue),INS_VAL); 3359 3351 break; 3360 3352 default: 3361 _error_("Input type \""<<EnumToStringx(this->inputs 2->GetInputObjectEnum(output_enum))<<"\" not supported yet");3353 _error_("Input type \""<<EnumToStringx(this->inputs->GetInputObjectEnum(output_enum))<<"\" not supported yet"); 3362 3354 } 3363 3355 3364 3356 } /*}}}*/ 3365 void Element::SetBoolInput(Inputs 2* inputs2,int enum_in,bool value){/*{{{*/3366 3367 _assert_(inputs 2);3368 inputs 2->SetInput(enum_in,this->lid,value);3369 3370 } 3371 /*}}}*/ 3372 void Element::SetIntInput(Inputs 2* inputs2,int enum_in,int value){/*{{{*/3373 3374 _assert_(inputs 2);3375 inputs 2->SetInput(enum_in,this->lid,value);3357 void Element::SetBoolInput(Inputs* inputs,int enum_in,bool value){/*{{{*/ 3358 3359 _assert_(inputs); 3360 inputs->SetInput(enum_in,this->lid,value); 3361 3362 } 3363 /*}}}*/ 3364 void Element::SetIntInput(Inputs* inputs,int enum_in,int value){/*{{{*/ 3365 3366 _assert_(inputs); 3367 inputs->SetInput(enum_in,this->lid,value); 3376 3368 3377 3369 } … … 3434 3426 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 3435 3427 if(analysis_type==StressbalanceAnalysisEnum){ 3436 this->GetInput 2Value(&approximation,ApproximationEnum);3428 this->GetInputValue(&approximation,ApproximationEnum); 3437 3429 if(approximation==SSAHOApproximationEnum || approximation==SSAFSApproximationEnum){ 3438 3430 parameters->FindParam(&numlayers,MeshNumberoflayersEnum); … … 3499 3491 for (int iday = 0; iday < 365; iday++){ 3500 3492 /* Retrieve inputs: */ 3501 Input 2* dailysnowfall_input = this->GetInput2(SmbDailysnowfallEnum,time_yr+(iday+1)/365.*yts); _assert_(dailysnowfall_input);3502 Input 2* dailyrainfall_input = this->GetInput2(SmbDailyrainfallEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyrainfall_input);3503 Input 2* dailydlradiation_input = this->GetInput2(SmbDailydlradiationEnum,time_yr+(iday+1)/365.*yts); _assert_(dailydlradiation_input);3504 Input 2* dailydsradiation_input = this->GetInput2(SmbDailydsradiationEnum,time_yr+(iday+1)/365.*yts); _assert_(dailydsradiation_input);3505 Input 2* dailywindspeed_input = this->GetInput2(SmbDailywindspeedEnum,time_yr+(iday+1)/365.*yts); _assert_(dailywindspeed_input);3506 Input 2* dailypressure_input = this->GetInput2(SmbDailypressureEnum,time_yr+(iday+1)/365.*yts); _assert_(dailypressure_input);3507 Input 2* dailyairdensity_input = this->GetInput2(SmbDailyairdensityEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyairdensity_input);3508 Input 2* dailyairhumidity_input = this->GetInput2(SmbDailyairhumidityEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyairhumidity_input);3509 Input 2* dailytemperature_input = this->GetInput2(SmbDailytemperatureEnum,time_yr+(iday+1)/365.*yts); _assert_(dailytemperature_input);3493 Input* dailysnowfall_input = this->GetInput(SmbDailysnowfallEnum,time_yr+(iday+1)/365.*yts); _assert_(dailysnowfall_input); 3494 Input* dailyrainfall_input = this->GetInput(SmbDailyrainfallEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyrainfall_input); 3495 Input* dailydlradiation_input = this->GetInput(SmbDailydlradiationEnum,time_yr+(iday+1)/365.*yts); _assert_(dailydlradiation_input); 3496 Input* dailydsradiation_input = this->GetInput(SmbDailydsradiationEnum,time_yr+(iday+1)/365.*yts); _assert_(dailydsradiation_input); 3497 Input* dailywindspeed_input = this->GetInput(SmbDailywindspeedEnum,time_yr+(iday+1)/365.*yts); _assert_(dailywindspeed_input); 3498 Input* dailypressure_input = this->GetInput(SmbDailypressureEnum,time_yr+(iday+1)/365.*yts); _assert_(dailypressure_input); 3499 Input* dailyairdensity_input = this->GetInput(SmbDailyairdensityEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyairdensity_input); 3500 Input* dailyairhumidity_input = this->GetInput(SmbDailyairhumidityEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyairhumidity_input); 3501 Input* dailytemperature_input = this->GetInput(SmbDailytemperatureEnum,time_yr+(iday+1)/365.*yts); _assert_(dailytemperature_input); 3510 3502 3511 3503 for(int iv=0;iv<NUM_VERTICES;iv++){ … … 3550 3542 switch(this->ObjectEnum()){ 3551 3543 case TriaEnum: 3552 this->AddInput 2(TemperatureSEMICEnum,&tsurf_out[0],P1Enum); // TODO add TemperatureSEMICEnum to EnumDefinitions3553 this->AddInput 2(SmbMassBalanceEnum,&smb_out[0],P1Enum);3554 this->AddInput 2(SmbAccumulationEnum,&saccu_out[0],P1Enum);3555 this->AddInput 2(SmbMeltEnum,&smelt_out[0],P1Enum);3544 this->AddInput(TemperatureSEMICEnum,&tsurf_out[0],P1Enum); // TODO add TemperatureSEMICEnum to EnumDefinitions 3545 this->AddInput(SmbMassBalanceEnum,&smb_out[0],P1Enum); 3546 this->AddInput(SmbAccumulationEnum,&saccu_out[0],P1Enum); 3547 this->AddInput(SmbMeltEnum,&smelt_out[0],P1Enum); 3556 3548 break; 3557 3549 case PentaEnum: … … 3711 3703 /*}}}*/ 3712 3704 /*Retrieve inputs: {{{*/ 3713 Input 2 *zTop_input = this->GetInput2(SmbZTopEnum); _assert_(zTop_input);3714 Input 2 *dzTop_input = this->GetInput2(SmbDzTopEnum); _assert_(dzTop_input);3715 Input 2 *dzMin_input = this->GetInput2(SmbDzMinEnum); _assert_(dzMin_input);3716 Input 2 *zMax_input = this->GetInput2(SmbZMaxEnum); _assert_(zMax_input);3717 Input 2 *zMin_input = this->GetInput2(SmbZMinEnum); _assert_(zMin_input);3718 Input 2 *zY_input = this->GetInput2(SmbZYEnum); _assert_(zY_input);3719 Input 2 *Tmean_input = this->GetInput2(SmbTmeanEnum); _assert_(Tmean_input);3720 Input 2 *Vmean_input = this->GetInput2(SmbVmeanEnum); _assert_(Vmean_input);3721 Input 2 *C_input = this->GetInput2(SmbCEnum); _assert_(C_input);3722 Input 2 *Tz_input = this->GetInput2(SmbTzEnum); _assert_(Tz_input);3723 Input 2 *Vz_input = this->GetInput2(SmbVzEnum); _assert_(Vz_input);3724 Input 2*EC_input = NULL;3705 Input *zTop_input = this->GetInput(SmbZTopEnum); _assert_(zTop_input); 3706 Input *dzTop_input = this->GetInput(SmbDzTopEnum); _assert_(dzTop_input); 3707 Input *dzMin_input = this->GetInput(SmbDzMinEnum); _assert_(dzMin_input); 3708 Input *zMax_input = this->GetInput(SmbZMaxEnum); _assert_(zMax_input); 3709 Input *zMin_input = this->GetInput(SmbZMinEnum); _assert_(zMin_input); 3710 Input *zY_input = this->GetInput(SmbZYEnum); _assert_(zY_input); 3711 Input *Tmean_input = this->GetInput(SmbTmeanEnum); _assert_(Tmean_input); 3712 Input *Vmean_input = this->GetInput(SmbVmeanEnum); _assert_(Vmean_input); 3713 Input *C_input = this->GetInput(SmbCEnum); _assert_(C_input); 3714 Input *Tz_input = this->GetInput(SmbTzEnum); _assert_(Tz_input); 3715 Input *Vz_input = this->GetInput(SmbVzEnum); _assert_(Vz_input); 3716 Input *EC_input = NULL; 3725 3717 3726 3718 /*Retrieve input values:*/ … … 3747 3739 //dz[i] << "\n"); 3748 3740 3749 this->inputs 2->GetArray(SmbDziniEnum,this->lid,&dzini,&m);3750 this->inputs 2->GetArray(SmbDiniEnum,this->lid,&dini,&m);3751 this->inputs 2->GetArray(SmbReiniEnum,this->lid,&reini,&m);3752 this->inputs 2->GetArray(SmbGdniniEnum,this->lid,&gdnini,&m);3753 this->inputs 2->GetArray(SmbGspiniEnum,this->lid,&gspini,&m);3754 this->inputs 2->GetArray(SmbWiniEnum,this->lid,&Wini,&m);3755 this->inputs 2->GetArray(SmbAiniEnum,this->lid,&aini,&m);3756 this->inputs 2->GetArray(SmbTiniEnum,this->lid,&Tini,&m);3757 EC_input = this->GetInput 2(SmbECiniEnum); _assert_(EC_input);3741 this->inputs->GetArray(SmbDziniEnum,this->lid,&dzini,&m); 3742 this->inputs->GetArray(SmbDiniEnum,this->lid,&dini,&m); 3743 this->inputs->GetArray(SmbReiniEnum,this->lid,&reini,&m); 3744 this->inputs->GetArray(SmbGdniniEnum,this->lid,&gdnini,&m); 3745 this->inputs->GetArray(SmbGspiniEnum,this->lid,&gspini,&m); 3746 this->inputs->GetArray(SmbWiniEnum,this->lid,&Wini,&m); 3747 this->inputs->GetArray(SmbAiniEnum,this->lid,&aini,&m); 3748 this->inputs->GetArray(SmbTiniEnum,this->lid,&Tini,&m); 3749 EC_input = this->GetInput(SmbECiniEnum); _assert_(EC_input); 3758 3750 EC_input->GetInputAverage(&EC); 3759 3751 3760 3752 /*Retrieve the correct value of m (without the zeroes at the end)*/ 3761 this->GetInput 2Value(&m,SmbSizeiniEnum);3753 this->GetInputValue(&m,SmbSizeiniEnum); 3762 3754 3763 3755 if(m==2){ //Snow properties are initialized with default values. Vertical grid has to be initialized too … … 3799 3791 3800 3792 /*Flag the initialization:*/ 3801 this->SetBoolInput(this->inputs 2,SmbIsInitializedEnum,true);3793 this->SetBoolInput(this->inputs,SmbIsInitializedEnum,true); 3802 3794 } 3803 3795 else{ 3804 3796 /*Recover inputs: */ 3805 this->inputs 2->GetArray(SmbDzEnum,this->lid,&dz,&m);3806 this->inputs 2->GetArray(SmbDEnum,this->lid,&d,&m);3807 this->inputs 2->GetArray(SmbReEnum,this->lid,&re,&m);3808 this->inputs 2->GetArray(SmbGdnEnum,this->lid,&gdn,&m);3809 this->inputs 2->GetArray(SmbGspEnum,this->lid,&gsp,&m);3810 this->inputs 2->GetArray(SmbWEnum,this->lid,&W,&m);3811 this->inputs 2->GetArray(SmbAEnum,this->lid,&a,&m);3812 this->inputs 2->GetArray(SmbTEnum,this->lid,&T,&m);3813 EC_input = this->GetInput 2(SmbECDtEnum); _assert_(EC_input);3797 this->inputs->GetArray(SmbDzEnum,this->lid,&dz,&m); 3798 this->inputs->GetArray(SmbDEnum,this->lid,&d,&m); 3799 this->inputs->GetArray(SmbReEnum,this->lid,&re,&m); 3800 this->inputs->GetArray(SmbGdnEnum,this->lid,&gdn,&m); 3801 this->inputs->GetArray(SmbGspEnum,this->lid,&gsp,&m); 3802 this->inputs->GetArray(SmbWEnum,this->lid,&W,&m); 3803 this->inputs->GetArray(SmbAEnum,this->lid,&a,&m); 3804 this->inputs->GetArray(SmbTEnum,this->lid,&T,&m); 3805 EC_input = this->GetInput(SmbECDtEnum); _assert_(EC_input); 3814 3806 EC_input->GetInputAverage(&EC); 3815 3807 … … 3833 3825 /*Get daily accumulated inputs {{{*/ 3834 3826 if (count>1){ 3835 Input 2 *sumEC_input = this->GetInput2(SmbECEnum); _assert_(sumEC_input);3836 Input 2 *sumM_input = this->GetInput2(SmbMeltEnum); _assert_(sumM_input);3837 Input 2 *sumR_input = this->GetInput2(SmbRunoffEnum); _assert_(sumR_input);3838 Input 2 *sumP_input = this->GetInput2(SmbPrecipitationEnum); _assert_(sumP_input);3839 Input 2 *ULW_input = this->GetInput2(SmbMeanULWEnum); _assert_(ULW_input);3840 Input 2 *LW_input = this->GetInput2(SmbNetLWEnum); _assert_(LW_input);3841 Input 2 *SW_input = this->GetInput2(SmbNetSWEnum); _assert_(SW_input);3842 Input 2 *LHF_input = this->GetInput2(SmbMeanLHFEnum); _assert_(LHF_input);3843 Input 2 *SHF_input = this->GetInput2(SmbMeanSHFEnum); _assert_(SHF_input);3844 Input 2 *DzAdd_input = this->GetInput2(SmbDzAddEnum); _assert_(DzAdd_input);3845 Input 2 *MassAdd_input = this->GetInput2(SmbMAddEnum); _assert_(MassAdd_input);3846 Input 2 *InitMass_input = this->GetInput2(SmbMInitnum); _assert_(InitMass_input);3847 Input 2 *sumMsurf_input = this->GetInput2(SmbMSurfEnum); _assert_(sumMsurf_input);3827 Input *sumEC_input = this->GetInput(SmbECEnum); _assert_(sumEC_input); 3828 Input *sumM_input = this->GetInput(SmbMeltEnum); _assert_(sumM_input); 3829 Input *sumR_input = this->GetInput(SmbRunoffEnum); _assert_(sumR_input); 3830 Input *sumP_input = this->GetInput(SmbPrecipitationEnum); _assert_(sumP_input); 3831 Input *ULW_input = this->GetInput(SmbMeanULWEnum); _assert_(ULW_input); 3832 Input *LW_input = this->GetInput(SmbNetLWEnum); _assert_(LW_input); 3833 Input *SW_input = this->GetInput(SmbNetSWEnum); _assert_(SW_input); 3834 Input *LHF_input = this->GetInput(SmbMeanLHFEnum); _assert_(LHF_input); 3835 Input *SHF_input = this->GetInput(SmbMeanSHFEnum); _assert_(SHF_input); 3836 Input *DzAdd_input = this->GetInput(SmbDzAddEnum); _assert_(DzAdd_input); 3837 Input *MassAdd_input = this->GetInput(SmbMAddEnum); _assert_(MassAdd_input); 3838 Input *InitMass_input = this->GetInput(SmbMInitnum); _assert_(InitMass_input); 3839 Input *sumMsurf_input = this->GetInput(SmbMSurfEnum); _assert_(sumMsurf_input); 3848 3840 3849 3841 ULW_input->GetInputAverage(&meanULW); … … 3870 3862 3871 3863 // Get time forcing inputs 3872 Input 2 *Ta_input = this->GetInput2(SmbTaEnum,timeinputs); _assert_(Ta_input);3873 Input 2 *V_input = this->GetInput2(SmbVEnum,timeinputs); _assert_(V_input);3874 Input 2 *Dlwr_input= this->GetInput2(SmbDlwrfEnum,timeinputs); _assert_(Dlwr_input);3875 Input 2 *Dswr_input= this->GetInput2(SmbDswrfEnum,timeinputs); _assert_(Dswr_input);3876 Input 2 *P_input = this->GetInput2(SmbPEnum,timeinputs); _assert_(P_input);3877 Input 2 *eAir_input= this->GetInput2(SmbEAirEnum,timeinputs); _assert_(eAir_input);3878 Input 2 *pAir_input= this->GetInput2(SmbPAirEnum,timeinputs); _assert_(pAir_input);3879 Input 2 *teValue_input= this->GetInput2(SmbTeValueEnum,timeinputs); _assert_(teValue_input);3880 Input 2 *aValue_input= this->GetInput2(SmbAValueEnum,timeinputs); _assert_(aValue_input);3864 Input *Ta_input = this->GetInput(SmbTaEnum,timeinputs); _assert_(Ta_input); 3865 Input *V_input = this->GetInput(SmbVEnum,timeinputs); _assert_(V_input); 3866 Input *Dlwr_input= this->GetInput(SmbDlwrfEnum,timeinputs); _assert_(Dlwr_input); 3867 Input *Dswr_input= this->GetInput(SmbDswrfEnum,timeinputs); _assert_(Dswr_input); 3868 Input *P_input = this->GetInput(SmbPEnum,timeinputs); _assert_(P_input); 3869 Input *eAir_input= this->GetInput(SmbEAirEnum,timeinputs); _assert_(eAir_input); 3870 Input *pAir_input= this->GetInput(SmbPAirEnum,timeinputs); _assert_(pAir_input); 3871 Input *teValue_input= this->GetInput(SmbTeValueEnum,timeinputs); _assert_(teValue_input); 3872 Input *aValue_input= this->GetInput(SmbAValueEnum,timeinputs); _assert_(aValue_input); 3881 3873 3882 3874 /*extract daily data:{{{*/ … … 3994 3986 3995 3987 /*Save generated inputs: */ 3996 this->inputs 2->SetArrayInput(SmbDzEnum,this->lid,dz,m);3997 this->inputs 2->SetArrayInput(SmbDEnum,this->lid,d,m);3998 this->inputs 2->SetArrayInput(SmbReEnum,this->lid,re,m);3999 this->inputs 2->SetArrayInput(SmbGdnEnum,this->lid,gdn,m);4000 this->inputs 2->SetArrayInput(SmbGspEnum,this->lid,gsp,m);4001 this->inputs 2->SetArrayInput(SmbTEnum,this->lid,T,m);4002 this->inputs 2->SetArrayInput(SmbWEnum,this->lid,W,m);4003 this->inputs 2->SetArrayInput(SmbAEnum,this->lid,a,m);3988 this->inputs->SetArrayInput(SmbDzEnum,this->lid,dz,m); 3989 this->inputs->SetArrayInput(SmbDEnum,this->lid,d,m); 3990 this->inputs->SetArrayInput(SmbReEnum,this->lid,re,m); 3991 this->inputs->SetArrayInput(SmbGdnEnum,this->lid,gdn,m); 3992 this->inputs->SetArrayInput(SmbGspEnum,this->lid,gsp,m); 3993 this->inputs->SetArrayInput(SmbTEnum,this->lid,T,m); 3994 this->inputs->SetArrayInput(SmbWEnum,this->lid,W,m); 3995 this->inputs->SetArrayInput(SmbAEnum,this->lid,a,m); 4004 3996 this->SetElementInput(SmbECEnum,sumEC/dt/rho_ice); 4005 3997 this->SetElementInput(SmbMassBalanceEnum,(sumP + sumEC -sumR)/dt/rho_ice); … … 4043 4035 } 4044 4036 /*}}}*/ 4045 void Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/4037 void Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 4046 4038 4047 4039 /*Intermediaries*/ … … 4063 4055 4064 4056 }/*}}}*/ 4065 void Element::StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/4057 void Element::StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ 4066 4058 /*Compute the 3d Strain Rate (6 components): 4067 4059 * … … 4092 4084 4093 4085 }/*}}}*/ 4094 void Element::StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/4086 void Element::StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 4095 4087 /*Compute the 3d Blatter/HOStrain Rate (5 components): 4096 4088 * … … 4122 4114 4123 4115 }/*}}}*/ 4124 void Element::StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/4116 void Element::StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 4125 4117 /*Compute the 2d Blatter/HOStrain Rate (2 components): 4126 4118 * … … 4146 4138 4147 4139 }/*}}}*/ 4148 void Element::StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/4140 void Element::StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 4149 4141 4150 4142 /*Intermediaries*/ … … 4165 4157 4166 4158 }/*}}}*/ 4167 void Element::StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input){/*{{{*/4159 void Element::StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input){/*{{{*/ 4168 4160 4169 4161 /*Intermediaries*/ … … 4201 4193 /*Retrieve all inputs and parameters*/ 4202 4194 this->GetVerticesCoordinatesBase(&xyz_list); 4203 Input 2* sigma_xx_input = this->GetInput2(StressTensorxxEnum); _assert_(sigma_xx_input);4204 Input 2* sigma_yy_input = this->GetInput2(StressTensoryyEnum); _assert_(sigma_yy_input);4205 Input 2* sigma_xy_input = this->GetInput2(StressTensorxyEnum); _assert_(sigma_xy_input);4206 Input 2* sigma_xz_input = NULL;4207 Input 2* sigma_yz_input = NULL;4208 Input 2* sigma_zz_input = NULL;4195 Input* sigma_xx_input = this->GetInput(StressTensorxxEnum); _assert_(sigma_xx_input); 4196 Input* sigma_yy_input = this->GetInput(StressTensoryyEnum); _assert_(sigma_yy_input); 4197 Input* sigma_xy_input = this->GetInput(StressTensorxyEnum); _assert_(sigma_xy_input); 4198 Input* sigma_xz_input = NULL; 4199 Input* sigma_yz_input = NULL; 4200 Input* sigma_zz_input = NULL; 4209 4201 if(dim==3){ 4210 sigma_xz_input = this->GetInput 2(StressTensorxzEnum); _assert_(sigma_xz_input);4211 sigma_yz_input = this->GetInput 2(StressTensoryzEnum); _assert_(sigma_yz_input);4212 sigma_zz_input = this->GetInput 2(StressTensorzzEnum); _assert_(sigma_zz_input);4202 sigma_xz_input = this->GetInput(StressTensorxzEnum); _assert_(sigma_xz_input); 4203 sigma_yz_input = this->GetInput(StressTensoryzEnum); _assert_(sigma_yz_input); 4204 sigma_zz_input = this->GetInput(StressTensorzzEnum); _assert_(sigma_zz_input); 4213 4205 } 4214 4206 … … 4260 4252 4261 4253 /*Create input*/ 4262 this->AddInput 2(StressMaxPrincipalEnum,maxprincipal,P1Enum);4254 this->AddInput(StressMaxPrincipalEnum,maxprincipal,P1Enum); 4263 4255 4264 4256 /*Clean up and return*/ … … 4544 4536 /*Retrieve all inputs and parameters*/ 4545 4537 this->GetVerticesCoordinates(&xyz_list); 4546 Input 2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);4547 Input 2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);4548 Input 2* vz_input = this->GetInput2(VzEnum); _assert_(vz_input);4538 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 4539 Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input); 4540 Input* vz_input = this->GetInput(VzEnum); _assert_(vz_input); 4549 4541 4550 4542 /*loop over vertices: */ … … 4559 4551 4560 4552 /*Create PentaVertex input, which will hold the basal friction:*/ 4561 this->AddInput 2(ViscousHeatingEnum,viscousheating,P1Enum);4553 this->AddInput(ViscousHeatingEnum,viscousheating,P1Enum); 4562 4554 4563 4555 /*Clean up and return*/ -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r25318 r25379 23 23 class Materials; 24 24 class Material; 25 class Inputs2;26 25 class Inputs; 27 class Input 2;26 class Inputs; 28 27 class Input; 29 class ElementInput2; 30 class DatasetInput2; 28 class Input; 29 class ElementInput; 30 class DatasetInput; 31 31 class IoModel; 32 32 class SealevelMasks; … … 45 45 int sid; 46 46 int lid; 47 Inputs 2 *inputs2;47 Inputs *inputs; 48 48 Node **nodes; 49 49 Vertex **vertices; … … 75 75 void SmbGradCompParameterization(void); 76 76 IssmDouble Divergence(void); 77 void dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input);78 void dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);79 void dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);80 void dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);77 void dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 78 void dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 79 void dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 80 void dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 81 81 void Echo(); 82 82 void FindParam(bool* pvalue,int paramenum); … … 101 101 void GetInputValue(bool* pvalue,int enum_type); 102 102 void GetInputValue(int* pvalue,int enum_type); 103 void GetInput2Value(bool* pvalue,int enum_type); 104 void GetInput2Value(int* pvalue,int enum_type); 105 void GetInput2Value(IssmDouble* pvalue,int enum_type); 103 void GetInputValue(IssmDouble* pvalue,int enum_type); 106 104 void GetInputValue(IssmDouble* pvalue,Gauss* gauss,int enum_type); 107 105 Node* GetNode(int nodeindex); … … 130 128 IssmDouble IceVolumeAboveFloatation(IssmDouble* mask, bool scaled); 131 129 int Id(); 132 void InputCreate(IssmDouble* vector,Inputs 2* inputs2,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code);133 void ControlInputCreate(IssmDouble* doublearray,IssmDouble* independents_min,IssmDouble* independents_max,Inputs 2*inputs2,IoModel* iomodel,int M,int N,IssmDouble scale,int input_enum,int id);134 void DatasetInputAdd(int enum_type,IssmDouble* vector,Inputs 2* inputs2,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code,int input_enum);130 void InputCreate(IssmDouble* vector,Inputs* inputs,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code); 131 void ControlInputCreate(IssmDouble* doublearray,IssmDouble* independents_min,IssmDouble* independents_max,Inputs*inputs,IoModel* iomodel,int M,int N,IssmDouble scale,int input_enum,int id); 132 void DatasetInputAdd(int enum_type,IssmDouble* vector,Inputs* inputs,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code,int input_enum); 135 133 void InputUpdateFromConstant(IssmDouble constant, int name); 136 134 void InputUpdateFromConstant(int constant, int name); … … 167 165 void ResultToVector(Vector<IssmDouble>* vector,int output_enum); 168 166 void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum); 169 void SetBoolInput(Inputs 2* inputs2,int enum_in,bool value);170 171 void SetIntInput(Inputs 2* inputs2,int enum_in,int value);167 void SetBoolInput(Inputs* inputs,int enum_in,bool value); 168 169 void SetIntInput(Inputs* inputs,int enum_in,int value); 172 170 void SmbSemic(); 173 171 int Sid(); 174 172 void SmbGemb(IssmDouble timeinputs, int count); 175 void StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);176 void StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input);177 void StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);178 void StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);179 void StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);180 void StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input);173 void StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 174 void StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 175 void StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 176 void StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 177 void StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 178 void StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input); 181 179 void StressMaxPrincipalCreateInput(void); 182 180 IssmDouble TotalFloatingBmb(IssmDouble* mask, bool scaled); … … 213 211 214 212 /*Virtual functions*/ 215 virtual void AddBasalInput 2(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented");};216 virtual void AddInput 2(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented");};217 virtual void AddControlInput(int input_enum,Inputs 2* inputs2,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id){_error_("not supported yet");};218 virtual void DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs 2* inputs2,IoModel* iomodel,int input_enum){_error_("not supported");};213 virtual void AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented");}; 214 virtual void AddInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented");}; 215 virtual void AddControlInput(int input_enum,Inputs* inputs,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id){_error_("not supported yet");}; 216 virtual void DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs* inputs,IoModel* iomodel,int input_enum){_error_("not supported");}; 219 217 virtual void AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part)=0; 220 218 virtual void BasalNodeIndices(int* pnumindices,int** pindices,int finiteelement){_error_("not implemented yet");}; … … 230 228 virtual void ComputeStressTensor(void)=0; 231 229 virtual void ComputeEsaStrainAndVorticity(void)=0; 232 virtual void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters,Inputs 2* inputs2in)=0;230 virtual void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters,Inputs* inputsin)=0; 233 231 virtual void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp)=0; 234 232 virtual void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp)=0; … … 247 245 virtual IssmDouble GetIcefrontArea(){_error_("not implemented");}; 248 246 virtual void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum)=0; 249 virtual DatasetInput 2* GetDatasetInput2(int inputenum){_error_("not implemented");};250 virtual Input 2* GetInput2(int inputenum)=0;251 virtual Input 2* GetInput2(int inputenum,IssmDouble time)=0;252 virtual Input 2* GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method)=0;247 virtual DatasetInput* GetDatasetInput(int inputenum){_error_("not implemented");}; 248 virtual Input* GetInput(int inputenum)=0; 249 virtual Input* GetInput(int inputenum,IssmDouble time)=0; 250 virtual Input* GetInput(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method)=0; 253 251 virtual void GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype){_error_("not implemented yet");}; 254 252 virtual void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){_error_("not implemented yet");}; 255 virtual void GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value)=0;256 virtual void GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value)=0;253 virtual void GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value)=0; 254 virtual void GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value)=0; 257 255 virtual void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level)=0; 258 256 virtual void GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues)=0; … … 332 330 virtual void RignotMeltParameterization(void){_error_("not implemented yet");}; 333 331 virtual void SetElementInput(int enum_in,IssmDouble values){_error_("not implemented yet");}; 334 virtual void SetElementInput(Inputs 2* inputs2,int enum_in,IssmDouble values){_error_("not implemented yet");};335 virtual void SetElementInput(Inputs 2* inputs2,int numindices,int* indices,IssmDouble* values,int enum_in){_error_("not implemented yet");};332 virtual void SetElementInput(Inputs* inputs,int enum_in,IssmDouble values){_error_("not implemented yet");}; 333 virtual void SetElementInput(Inputs* inputs,int numindices,int* indices,IssmDouble* values,int enum_in){_error_("not implemented yet");}; 336 334 virtual void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset,int M,int N)=0; 337 335 virtual void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters)=0; … … 352 350 virtual IssmDouble TotalGroundedBmb(bool scaled)=0; 353 351 virtual IssmDouble TotalSmb(bool scaled)=0; 354 virtual void Update(Inputs 2* inputs2,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finite_element)=0;352 virtual void Update(Inputs* inputs,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finite_element)=0; 355 353 virtual void UpdateConstraintsExtrudeFromBase(void)=0; 356 354 virtual void UpdateConstraintsExtrudeFromTop(void)=0; … … 362 360 virtual void VerticalSegmentIndices(int** pindices,int* pnumseg)=0; 363 361 virtual void VerticalSegmentIndicesBase(int** pindices,int* pnumseg)=0; 364 virtual void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input){_error_("not implemented yet");};362 virtual void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not implemented yet");}; 365 363 virtual void WriteFieldIsovalueSegment(DataSet* segments,int fieldenum,IssmDouble fieldvalue){_error_("not implemented yet");}; 366 364 -
issm/trunk-jpl/src/c/classes/Elements/Elements.cpp
r24335 r25379 34 34 35 35 /*Object management*/ 36 void Elements::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs 2* inputs2){/*{{{*/36 void Elements::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs* inputs){/*{{{*/ 37 37 38 38 vector<Object*>::iterator object; … … 40 40 for(object=objects.begin() ; object < objects.end(); object++ ){ 41 41 Element* element=xDynamicCast<Element*>((*object)); 42 element->Configure(elements,loads,nodes,vertices,materials,parameters,inputs 2);42 element->Configure(elements,loads,nodes,vertices,materials,parameters,inputs); 43 43 } 44 44 -
issm/trunk-jpl/src/c/classes/Elements/Elements.h
r24335 r25379 24 24 25 25 /*numerics*/ 26 void Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs 2* inputs2);26 void Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs* inputs); 27 27 int MaxNumNodes(void); 28 28 int NumberOfElements(void); -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r25319 r25379 12 12 13 13 #include "../classes.h" 14 #include "../Inputs 2/PentaInput2.h"15 #include "../Inputs 2/ControlInput2.h"16 #include "../Inputs 2/TransientInput2.h"17 #include "../Inputs 2/DatasetInput2.h"14 #include "../Inputs/PentaInput.h" 15 #include "../Inputs/ControlInput.h" 16 #include "../Inputs/TransientInput.h" 17 #include "../Inputs/DatasetInput.h" 18 18 #include "../../shared/shared.h" 19 19 /*}}}*/ … … 160 160 161 161 /*Other*/ 162 void Penta::AddBasalInput 2(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/163 164 _assert_(this->inputs 2);162 void Penta::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/ 163 164 _assert_(this->inputs); 165 165 if(!IsOnBase()) return; 166 166 else{ … … 173 173 Penta* penta=this; 174 174 for(;;){ 175 penta->AddInput 2(input_enum,&extrudedvalues[0],interpolation_enum);175 penta->AddInput(input_enum,&extrudedvalues[0],interpolation_enum); 176 176 if (penta->IsOnSurface()) break; 177 177 penta=penta->GetUpperPenta(); _assert_(penta->Id()!=this->id); … … 183 183 } 184 184 /*}}}*/ 185 void Penta::AddInput 2(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/185 void Penta::AddInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/ 186 186 187 187 /**/ … … 189 189 190 190 /*Call inputs method*/ 191 _assert_(this->inputs 2);191 _assert_(this->inputs); 192 192 switch(interpolation_enum){ 193 193 case P1Enum: 194 194 for(int i=0;i<NUMVERTICES;i++) vertexlids[i]=this->vertices[i]->lid; 195 inputs 2->SetPentaInput(input_enum,interpolation_enum,NUMVERTICES,vertexlids,values);195 inputs->SetPentaInput(input_enum,interpolation_enum,NUMVERTICES,vertexlids,values); 196 196 break; 197 197 case P1DGEnum: 198 inputs 2->SetPentaInput(input_enum,interpolation_enum,this->lid,NUMVERTICES,values);198 inputs->SetPentaInput(input_enum,interpolation_enum,this->lid,NUMVERTICES,values); 199 199 break; 200 200 default: 201 inputs 2->SetPentaInput(input_enum,interpolation_enum,this->lid,this->GetNumberOfNodes(interpolation_enum),values);202 } 203 204 } 205 /*}}}*/ 206 void Penta::AddControlInput(int input_enum,Inputs 2* inputs2,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id){/*{{{*/201 inputs->SetPentaInput(input_enum,interpolation_enum,this->lid,this->GetNumberOfNodes(interpolation_enum),values); 202 } 203 204 } 205 /*}}}*/ 206 void Penta::AddControlInput(int input_enum,Inputs* inputs,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id){/*{{{*/ 207 207 208 208 /*Intermediaries*/ … … 218 218 switch(interpolation_enum){ 219 219 case P1Enum: 220 inputs 2->SetPentaControlInput(input_enum,PentaInput2Enum,interpolation_enum,id,NUMVERTICES,vertexlids,values,values_min,values_max);220 inputs->SetPentaControlInput(input_enum,PentaInputEnum,interpolation_enum,id,NUMVERTICES,vertexlids,values,values_min,values_max); 221 221 break; 222 222 default: … … 226 226 } 227 227 /*}}}*/ 228 void Penta::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs 2* inputs2,IoModel* iomodel,int input_enum){/*{{{*/228 void Penta::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs* inputs,IoModel* iomodel,int input_enum){/*{{{*/ 229 229 230 230 /*Intermediaries*/ … … 248 248 for(int i=0;i<num_inputs;i++){ 249 249 for(int j=0;j<NUMVERTICES;j++) nodeinputs[j]=array[vertexsids[j]*N+i]; 250 inputs 2->SetPentaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs);250 inputs->SetPentaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs); 251 251 } 252 252 } … … 285 285 286 286 /*Retrieve all inputs and parameters we will need*/ 287 Input 2* vx_input = this->GetInput2(VxAverageEnum); _assert_(vx_input);288 Input 2* vy_input = this->GetInput2(VyAverageEnum); _assert_(vy_input);289 Input 2* gr_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input);290 Input 2* bs_input = this->GetInput2(BaseEnum); _assert_(bs_input);291 Input 2* B_input = this->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);292 Input 2* n_input = this->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);293 Input 2* smax_fl_input = this->GetInput2(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input);294 Input 2* smax_gr_input = this->GetInput2(CalvingStressThresholdGroundediceEnum); _assert_(smax_gr_input);295 Input 2* sl_input = this->GetInput2(SealevelEnum); _assert_(sl_input);287 Input* vx_input = this->GetInput(VxAverageEnum); _assert_(vx_input); 288 Input* vy_input = this->GetInput(VyAverageEnum); _assert_(vy_input); 289 Input* gr_input = this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input); 290 Input* bs_input = this->GetInput(BaseEnum); _assert_(bs_input); 291 Input* B_input = this->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 292 Input* n_input = this->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 293 Input* smax_fl_input = this->GetInput(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input); 294 Input* smax_gr_input = this->GetInput(CalvingStressThresholdGroundediceEnum); _assert_(smax_gr_input); 295 Input* sl_input = this->GetInput(SealevelEnum); _assert_(sl_input); 296 296 297 297 /* Start looping on the number of vertices: */ … … 347 347 348 348 /*Add input*/ 349 this->AddBasalInput 2(CalvingratexEnum,&calvingratex[0],P1DGEnum);350 this->AddBasalInput 2(CalvingrateyEnum,&calvingratey[0],P1DGEnum);351 this->AddBasalInput 2(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);352 this->AddBasalInput 2(SigmaVMEnum,&sigma_vm[0],P1DGEnum);349 this->AddBasalInput(CalvingratexEnum,&calvingratex[0],P1DGEnum); 350 this->AddBasalInput(CalvingrateyEnum,&calvingratey[0],P1DGEnum); 351 this->AddBasalInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum); 352 this->AddBasalInput(SigmaVMEnum,&sigma_vm[0],P1DGEnum); 353 353 354 354 this->InputExtrude(CalvingratexEnum,-1); … … 377 377 378 378 /*Retrieve all inputs and parameters we will need*/ 379 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);380 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);381 Input 2* strainparallel_input=this->GetInput2(StrainRateparallelEnum); _assert_(strainparallel_input);382 Input 2* strainperpendicular_input=this->GetInput2(StrainRateperpendicularEnum); _assert_(strainperpendicular_input);383 Input 2* levermanncoeff_input=this->GetInput2(CalvinglevermannCoeffEnum); _assert_(levermanncoeff_input);379 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 380 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 381 Input* strainparallel_input=this->GetInput(StrainRateparallelEnum); _assert_(strainparallel_input); 382 Input* strainperpendicular_input=this->GetInput(StrainRateperpendicularEnum); _assert_(strainperpendicular_input); 383 Input* levermanncoeff_input=this->GetInput(CalvinglevermannCoeffEnum); _assert_(levermanncoeff_input); 384 384 385 385 /* Start looping on the number of vertices: */ … … 406 406 407 407 /*Add input*/ 408 this->AddBasalInput 2(CalvingratexEnum,&calvingratex[0],P1DGEnum);409 this->AddBasalInput 2(CalvingrateyEnum,&calvingratey[0],P1DGEnum);410 this->AddBasalInput 2(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);408 this->AddBasalInput(CalvingratexEnum,&calvingratex[0],P1DGEnum); 409 this->AddBasalInput(CalvingrateyEnum,&calvingratey[0],P1DGEnum); 410 this->AddBasalInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum); 411 411 412 412 /*Clean up and return*/ … … 420 420 if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){ 421 421 IssmDouble flux_per_area=0; 422 this->AddInput 2(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);422 this->AddInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum); 423 423 } 424 424 else{ … … 508 508 IssmDouble calvingratex,calvingratey,thickness,Jdet,flux_per_area; 509 509 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 510 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);511 Input 2* calvingratex_input=NULL;512 Input 2* calvingratey_input=NULL;513 calvingratex_input=this->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);514 calvingratey_input=this->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);510 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 511 Input* calvingratex_input=NULL; 512 Input* calvingratey_input=NULL; 513 calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 514 calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 515 515 516 516 /*Start looping on Gaussian points*/ … … 530 530 } 531 531 532 this->AddInput 2(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);532 this->AddInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum); 533 533 534 534 /*Clean up and return*/ … … 542 542 if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){ 543 543 IssmDouble flux_per_area=0; 544 this->AddInput 2(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);544 this->AddInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum); 545 545 } 546 546 else{ … … 630 630 IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet,flux_per_area; 631 631 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 632 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);633 Input 2* calvingratex_input=NULL;634 Input 2* calvingratey_input=NULL;635 Input 2* vx_input=NULL;636 Input 2* vy_input=NULL;637 Input 2* meltingrate_input=NULL;638 calvingratex_input=this->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);639 calvingratey_input=this->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);640 vx_input=this->GetInput 2(VxEnum); _assert_(vx_input);641 vy_input=this->GetInput 2(VyEnum); _assert_(vy_input);642 meltingrate_input=this->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);632 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 633 Input* calvingratex_input=NULL; 634 Input* calvingratey_input=NULL; 635 Input* vx_input=NULL; 636 Input* vy_input=NULL; 637 Input* meltingrate_input=NULL; 638 calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 639 calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 640 vx_input=this->GetInput(VxEnum); _assert_(vx_input); 641 vy_input=this->GetInput(VyEnum); _assert_(vy_input); 642 meltingrate_input=this->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 643 643 644 644 /*Start looping on Gaussian points*/ … … 664 664 } 665 665 666 this->AddInput 2(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);666 this->AddInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum); 667 667 668 668 /*Clean up and return*/ … … 693 693 /*retrive parameters: */ 694 694 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 695 this-> GetInput2Value(&approximation,ApproximationEnum);695 this->Element::GetInputValue(&approximation,ApproximationEnum); 696 696 697 697 /*Check analysis_types*/ … … 717 717 718 718 /*Retrieve all inputs we will be needing: */ 719 Input 2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);720 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);721 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);722 Input 2* vz_input=this->GetInput2(VzEnum); _assert_(vz_input);719 Input* pressure_input=this->GetInput(PressureEnum); _assert_(pressure_input); 720 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 721 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 722 Input* vz_input=this->GetInput(VzEnum); _assert_(vz_input); 723 723 724 724 /* Start looping on the number of gaussian points: */ … … 777 777 778 778 /*Retrieve all inputs we will be needing: */ 779 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);780 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);781 Input 2* vz_input=this->GetInput2(VzEnum); _assert_(vz_input);779 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 780 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 781 Input* vz_input=this->GetInput(VzEnum); _assert_(vz_input); 782 782 783 783 /* Start looping on the number of vertices: */ … … 805 805 806 806 /*Add Stress tensor components into inputs*/ 807 this->AddInput 2(DeviatoricStressxxEnum,&tau_xx[0],P1DGEnum);808 this->AddInput 2(DeviatoricStressxyEnum,&tau_xy[0],P1DGEnum);809 this->AddInput 2(DeviatoricStressxzEnum,&tau_xz[0],P1DGEnum);810 this->AddInput 2(DeviatoricStressyyEnum,&tau_yy[0],P1DGEnum);811 this->AddInput 2(DeviatoricStressyzEnum,&tau_yz[0],P1DGEnum);812 this->AddInput 2(DeviatoricStresszzEnum,&tau_zz[0],P1DGEnum);813 this->AddInput 2(DeviatoricStresseffectiveEnum,&tau_eff[0],P1DGEnum);807 this->AddInput(DeviatoricStressxxEnum,&tau_xx[0],P1DGEnum); 808 this->AddInput(DeviatoricStressxyEnum,&tau_xy[0],P1DGEnum); 809 this->AddInput(DeviatoricStressxzEnum,&tau_xz[0],P1DGEnum); 810 this->AddInput(DeviatoricStressyyEnum,&tau_yy[0],P1DGEnum); 811 this->AddInput(DeviatoricStressyzEnum,&tau_yz[0],P1DGEnum); 812 this->AddInput(DeviatoricStresszzEnum,&tau_zz[0],P1DGEnum); 813 this->AddInput(DeviatoricStresseffectiveEnum,&tau_eff[0],P1DGEnum); 814 814 815 815 /*Clean up and return*/ … … 834 834 835 835 /*Retrieve all inputs we will be needing: */ 836 Input 2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);837 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);838 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);839 Input 2* vz_input=this->GetInput2(VzEnum); _assert_(vz_input);836 Input* pressure_input=this->GetInput(PressureEnum); _assert_(pressure_input); 837 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 838 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 839 Input* vz_input=this->GetInput(VzEnum); _assert_(vz_input); 840 840 841 841 /* Start looping on the number of vertices: */ … … 859 859 860 860 /*Add Stress tensor components into inputs*/ 861 this->AddInput 2(StressTensorxxEnum,&sigma_xx[0],P1DGEnum);862 this->AddInput 2(StressTensorxyEnum,&sigma_xy[0],P1DGEnum);863 this->AddInput 2(StressTensorxzEnum,&sigma_xz[0],P1DGEnum);864 this->AddInput 2(StressTensoryyEnum,&sigma_yy[0],P1DGEnum);865 this->AddInput 2(StressTensoryzEnum,&sigma_yz[0],P1DGEnum);866 this->AddInput 2(StressTensorzzEnum,&sigma_zz[0],P1DGEnum);861 this->AddInput(StressTensorxxEnum,&sigma_xx[0],P1DGEnum); 862 this->AddInput(StressTensorxyEnum,&sigma_xy[0],P1DGEnum); 863 this->AddInput(StressTensorxzEnum,&sigma_xz[0],P1DGEnum); 864 this->AddInput(StressTensoryyEnum,&sigma_yy[0],P1DGEnum); 865 this->AddInput(StressTensoryzEnum,&sigma_yz[0],P1DGEnum); 866 this->AddInput(StressTensorzzEnum,&sigma_zz[0],P1DGEnum); 867 867 868 868 /*Clean up and return*/ … … 870 870 } 871 871 /*}}}*/ 872 void Penta::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin,Inputs 2* inputs2in){/*{{{*/872 void Penta::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin,Inputs* inputsin){/*{{{*/ 873 873 874 874 int analysis_counter; … … 896 896 /*point parameters to real dataset: */ 897 897 this->parameters=parametersin; 898 this->inputs 2=inputs2in;898 this->inputs=inputsin; 899 899 } 900 900 /*}}}*/ … … 908 908 if(control_enum==DamageDbarEnum) control_enum = DamageDEnum; 909 909 910 ElementInput 2* input=this->inputs2->GetControlInput2Data(control_enum,"gradient"); _assert_(input);910 ElementInput* input=this->inputs->GetControlInputData(control_enum,"gradient"); _assert_(input); 911 911 this->GetVerticesLidList(&lidlist[0]); 912 912 GradientIndexing(&idlist[0],control_index); 913 913 914 914 /*Get values on vertices*/ 915 if(input->ObjectEnum()==PentaInput 2Enum && input->GetInputInterpolationType()==P1Enum){915 if(input->ObjectEnum()==PentaInputEnum && input->GetInputInterpolationType()==P1Enum){ 916 916 _assert_(N==1); 917 917 for(int i=0;i<NUMVERTICES;i++){ … … 920 920 input->SetInput(P1Enum,NUMVERTICES,&lidlist[0],&values[0]); 921 921 } 922 else if(input->ObjectEnum()==PentaInput 2Enum && input->GetInputInterpolationType()==P0Enum){922 else if(input->ObjectEnum()==PentaInputEnum && input->GetInputInterpolationType()==P0Enum){ 923 923 _assert_(N==1); 924 924 input->SetInput(P0Enum,this->lid,gradient[idlist[0]]); 925 925 } 926 else if(input->ObjectEnum()==TransientInput 2Enum){926 else if(input->ObjectEnum()==TransientInputEnum){ 927 927 for(int n=0;n<N;n++){ 928 928 _error_("not implemented"); … … 948 948 if(control_enum==MaterialsRheologyBbarEnum) control_enum = MaterialsRheologyBEnum; 949 949 if(control_enum==DamageDbarEnum) control_enum = DamageDEnum; 950 ElementInput 2* control_value = this->inputs2->GetControlInput2Data(control_enum,"value"); _assert_(control_value);951 ElementInput 2* control_gradient = this->inputs2->GetControlInput2Data(control_enum,"gradient"); _assert_(control_gradient);950 ElementInput* control_value = this->inputs->GetControlInputData(control_enum,"value"); _assert_(control_value); 951 ElementInput* control_gradient = this->inputs->GetControlInputData(control_enum,"gradient"); _assert_(control_gradient); 952 952 953 953 if(control_interp==P1Enum){ … … 1015 1015 1016 1016 /*Update Levelset*/ 1017 this->AddInput 2(distanceenum,&ls[0],P1Enum);1017 this->AddInput(distanceenum,&ls[0],P1Enum); 1018 1018 } 1019 1019 /*}}}*/ … … 1022 1022 1023 1023 /*Get transient input time steps*/ 1024 TransientInput 2* transient_input = this->inputs2->GetTransientInput(transientinput_enum);1025 PentaInput 2* averaged_input = transient_input->GetPentaInput(start_time,end_time,averaging_method);1026 Input 2* averaged_copy = averaged_input->copy();1024 TransientInput* transient_input = this->inputs->GetTransientInput(transientinput_enum); 1025 PentaInput* averaged_input = transient_input->GetPentaInput(start_time,end_time,averaging_method); 1026 Input* averaged_copy = averaged_input->copy(); 1027 1027 1028 1028 averaged_copy->ChangeEnum(averagedinput_enum); 1029 this->inputs 2->AddInput(averaged_copy);1029 this->inputs->AddInput(averaged_copy); 1030 1030 } 1031 1031 /*}}}*/ … … 1044 1044 /*Get input:*/ 1045 1045 IssmDouble vel; 1046 Input 2* vel_input=this->GetInput2(VelEnum); _assert_(vel_input);1046 Input* vel_input=this->GetInput(VelEnum); _assert_(vel_input); 1047 1047 vel_input->GetInputAverage(&vel); 1048 1048 … … 1107 1107 1108 1108 if(scaled==true){ 1109 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);1109 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 1110 1110 scalefactor_input->GetInputAverage(&scalefactor); 1111 1111 floatingarea=floatingarea*scalefactor; … … 1121 1121 1122 1122 int approximation; 1123 this-> GetInput2Value(&approximation,ApproximationEnum);1123 this->Element::GetInputValue(&approximation,ApproximationEnum); 1124 1124 if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum || approximation==SSAHOApproximationEnum || approximation==HOFSApproximationEnum){ 1125 1125 _error_("Cannot compute contact condition for non FS elements"); … … 1146 1146 1147 1147 /*Retrieve all inputs we will be needing: */ 1148 Input 2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);1149 Input 2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);1150 Input 2* vz_input = this->GetInput2(VzEnum); _assert_(vz_input);1148 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 1149 Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input); 1150 Input* vz_input = this->GetInput(VzEnum); _assert_(vz_input); 1151 1151 1152 1152 /*1. Recover stresses at the base*/ … … 1565 1565 xDelete<int>(indicesfront); 1566 1566 }/*}}}*/ 1567 Input 2* Penta::GetInput2(int inputenum){/*{{{*/1567 Input* Penta::GetInput(int inputenum){/*{{{*/ 1568 1568 1569 1569 /*Get Input from dataset*/ 1570 PentaInput 2* input = this->inputs2->GetPentaInput(inputenum);1570 PentaInput* input = this->inputs->GetPentaInput(inputenum); 1571 1571 if(!input) return input; 1572 1572 … … 1592 1592 return input; 1593 1593 }/*}}}*/ 1594 Input 2* Penta::GetInput2(int inputenum,IssmDouble time){/*{{{*/1594 Input* Penta::GetInput(int inputenum,IssmDouble time){/*{{{*/ 1595 1595 1596 1596 /*Get Input from dataset*/ 1597 PentaInput 2* input = this->inputs2->GetPentaInput(inputenum,time);1597 PentaInput* input = this->inputs->GetPentaInput(inputenum,time); 1598 1598 if(!input) return input; 1599 1599 … … 1619 1619 return input; 1620 1620 }/*}}}*/ 1621 void Penta::GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value){/*{{{*/1621 void Penta::GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/ 1622 1622 1623 1623 /*Checks in debugging mode*/ … … 1637 1637 } 1638 1638 /*}}}*/ 1639 void Penta::GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value){/*{{{*/1639 void Penta::GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/ 1640 1640 1641 1641 /*Checks in debugging mode*/ … … 1659 1659 } 1660 1660 /*}}}*/ 1661 DatasetInput 2* Penta::GetDatasetInput2(int inputenum){/*{{{*/1662 1663 DatasetInput 2* datasetinput = this->inputs2->GetDatasetInput2(inputenum);1661 DatasetInput* Penta::GetDatasetInput(int inputenum){/*{{{*/ 1662 1663 DatasetInput* datasetinput = this->inputs->GetDatasetInput(inputenum); 1664 1664 if(!datasetinput) return NULL; 1665 1665 1666 1666 for(int i=0;i<datasetinput->GetNumIds();i++){ 1667 1667 1668 PentaInput 2* input = datasetinput->GetPentaInputByOffset(i); _assert_(input);1668 PentaInput* input = datasetinput->GetPentaInputByOffset(i); _assert_(input); 1669 1669 1670 1670 /*Intermediaries*/ … … 1689 1689 void Penta::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){/*{{{*/ 1690 1690 1691 Input 2* input=this->GetInput2(enumtype);1691 Input* input=this->GetInput(enumtype); 1692 1692 if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria"); 1693 1693 … … 1703 1703 void Penta::GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype){/*{{{*/ 1704 1704 1705 Input 2* input=this->GetInput2(enumtype);1705 Input* input=this->GetInput(enumtype); 1706 1706 if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria"); 1707 1707 … … 1835 1835 /*Get input*/ 1836 1836 if(control_enum==MaterialsRheologyBbarEnum) control_enum=MaterialsRheologyBEnum; 1837 ElementInput 2* input=this->inputs2->GetControlInput2Data(control_enum,data); _assert_(input);1837 ElementInput* input=this->inputs->GetControlInputData(control_enum,data); _assert_(input); 1838 1838 1839 1839 /*Lid list once for all*/ … … 1843 1843 /*Check what input we are dealing with*/ 1844 1844 switch(input->ObjectEnum()){ 1845 case PentaInput 2Enum:1845 case PentaInputEnum: 1846 1846 { 1847 1847 IssmDouble values[NUMVERTICES]; 1848 1848 int idlist[NUMVERTICES]; 1849 1849 1850 PentaInput 2* triainput = xDynamicCast<PentaInput2*>(input);1850 PentaInput* triainput = xDynamicCast<PentaInput*>(input); 1851 1851 1852 1852 /*Create list of indices and values for global vector*/ … … 1870 1870 case TransientInputEnum: 1871 1871 { 1872 TransientInput 2* transientinput = xDynamicCast<TransientInput2*>(input);1872 TransientInput* transientinput = xDynamicCast<TransientInput*>(input); 1873 1873 int N = transientinput->numtimesteps; 1874 1874 int* M = NULL; … … 1902 1902 /*Get input*/ 1903 1903 if(control_enum==MaterialsRheologyBbarEnum) control_enum=MaterialsRheologyBEnum; 1904 ElementInput 2* input=this->inputs2->GetControlInput2Data(control_enum,data); _assert_(input);1904 ElementInput* input=this->inputs->GetControlInputData(control_enum,data); _assert_(input); 1905 1905 1906 1906 /*Lid list once for all*/ … … 1910 1910 /*Check what input we are dealing with*/ 1911 1911 switch(input->ObjectEnum()){ 1912 case PentaInput 2Enum:1912 case PentaInputEnum: 1913 1913 { 1914 1914 IssmDouble values[NUMVERTICES]; 1915 1915 int idlist[NUMVERTICES]; 1916 1916 1917 PentaInput 2* triainput = xDynamicCast<PentaInput2*>(input);1917 PentaInput* triainput = xDynamicCast<PentaInput*>(input); 1918 1918 1919 1919 /*Create list of indices and values for global vector*/ … … 1937 1937 case TransientInputEnum: 1938 1938 { 1939 TransientInput 2* transientinput = xDynamicCast<TransientInput2*>(input);1939 TransientInput* transientinput = xDynamicCast<TransientInput*>(input); 1940 1940 int N = transientinput->numtimesteps; 1941 1941 int* M = NULL; … … 2002 2002 2003 2003 if(scaled==true){ 2004 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);2004 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 2005 2005 scalefactor_input->GetInputAverage(&scalefactor); 2006 2006 groundedarea=groundedarea*scalefactor; … … 2108 2108 IssmDouble vx,vy,thickness,Jdet; 2109 2109 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 2110 Input 2 *thickness_input = this->GetInput2(ThicknessEnum); _assert_(thickness_input);2111 Input 2 *vx_input = this->GetInput2(VxAverageEnum); _assert_(vx_input);2112 Input 2 *vy_input = this->GetInput2(VyAverageEnum); _assert_(vy_input);2110 Input *thickness_input = this->GetInput(ThicknessEnum); _assert_(thickness_input); 2111 Input *vx_input = this->GetInput(VxAverageEnum); _assert_(vx_input); 2112 Input *vy_input = this->GetInput(VyAverageEnum); _assert_(vy_input); 2113 2113 2114 2114 /*Start looping on Gaussian points*/ … … 2228 2228 IssmDouble vx,vy,thickness,Jdet; 2229 2229 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 2230 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);2231 Input 2* vx_input=NULL;2232 Input 2* vy_input=NULL;2233 vx_input=this->GetInput 2(VxAverageEnum); _assert_(vx_input);2234 vy_input=this->GetInput 2(VyAverageEnum); _assert_(vy_input);2230 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 2231 Input* vx_input=NULL; 2232 Input* vy_input=NULL; 2233 vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input); 2234 vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input); 2235 2235 2236 2236 /*Start looping on Gaussian points*/ … … 2270 2270 2271 2271 if(scaled==true){ //scale for area projection correction 2272 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);2272 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 2273 2273 scalefactor_input->GetInputAverage(&scalefactor); 2274 2274 base=base*scalefactor; … … 2300 2300 base = 1./2.*fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1])); 2301 2301 if(scaled==true){ 2302 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);2302 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 2303 2303 scalefactor_input->GetInputAverage(&scalefactor); 2304 2304 base=base*scalefactor; … … 2306 2306 2307 2307 /*Now get the average height above floatation*/ 2308 Input 2* surface_input = this->GetInput2(SurfaceEnum); _assert_(surface_input);2309 Input 2* base_input = this->GetInput2(BaseEnum); _assert_(base_input);2310 Input 2* bed_input = this->GetInput2(BedEnum); _assert_(bed_input);2308 Input* surface_input = this->GetInput(SurfaceEnum); _assert_(surface_input); 2309 Input* base_input = this->GetInput(BaseEnum); _assert_(base_input); 2310 Input* bed_input = this->GetInput(BedEnum); _assert_(bed_input); 2311 2311 if(!bed_input) _error_("Could not find bed"); 2312 2312 surface_input->GetInputAverage(&surface); … … 2326 2326 int lidlist[NUMVERTICES]; 2327 2327 IssmDouble intz[NUMVERTICES] = {0.}; 2328 Input 2*original_input = NULL;2329 Input 2*depth_averaged_input = NULL;2328 Input *original_input = NULL; 2329 Input *depth_averaged_input = NULL; 2330 2330 2331 2331 /*Are we on the base? If not, return*/ … … 2341 2341 2342 2342 /*Step1: Get original input (to be depth-avegaged): */ 2343 original_input=penta->GetInput 2(original_enum);2343 original_input=penta->GetInput(original_enum); 2344 2344 if(!original_input) _error_("could not find input with enum " << EnumToStringx(original_enum)); 2345 2345 … … 2379 2379 switch(original_input->ObjectEnum()){ 2380 2380 case PentaInputEnum: 2381 case PentaInput2Enum:2382 2381 case ControlInputEnum: 2383 this->inputs 2->SetPentaInput(average_enum,P1Enum,NUMVERTICES,lidlist,&total[0]);2382 this->inputs->SetPentaInput(average_enum,P1Enum,NUMVERTICES,lidlist,&total[0]); 2384 2383 break; 2385 2384 default: … … 2391 2390 2392 2391 _assert_(start==-1 || start==+1); 2393 _assert_(this->inputs 2);2392 _assert_(this->inputs); 2394 2393 2395 2394 /*Are we on the the boundary we want to be?*/ … … 2398 2397 2399 2398 /*Get original input*/ 2400 DatasetInput 2* dinput = this->inputs2->GetDatasetInput2(enum_type);2399 DatasetInput* dinput = this->inputs->GetDatasetInput(enum_type); 2401 2400 2402 2401 int lidlist[NUMVERTICES]; … … 2405 2404 for(int id=0;id<dinput->GetNumIds();id++){ 2406 2405 2407 PentaInput 2* pentainput = dinput->GetPentaInputByOffset(id);2406 PentaInput* pentainput = dinput->GetPentaInputByOffset(id); 2408 2407 pentainput->Serve(NUMVERTICES,&lidlist[0]); 2409 2408 … … 2449 2448 2450 2449 _assert_(start==-1 || start==+1); 2451 _assert_(this->inputs 2);2450 _assert_(this->inputs); 2452 2451 2453 2452 /*Are we on the the boundary we want to be?*/ … … 2456 2455 2457 2456 /*Get original input*/ 2458 ElementInput 2* input = this->inputs2->GetControlInput2Data(enum_type,"value");2459 if(input->ObjectEnum()!=PentaInput 2Enum) _error_("not supported yet");2460 PentaInput 2* pentainput = xDynamicCast<PentaInput2*>(input);2461 ElementInput 2* input2 = this->inputs2->GetControlInput2Data(enum_type,"savedvalues");2462 if(input->ObjectEnum()!=PentaInput 2Enum) _error_("not supported yet");2463 PentaInput 2* pentainput2= xDynamicCast<PentaInput2*>(input2);2457 ElementInput* input = this->inputs->GetControlInputData(enum_type,"value"); 2458 if(input->ObjectEnum()!=PentaInputEnum) _error_("not supported yet"); 2459 PentaInput* pentainput = xDynamicCast<PentaInput*>(input); 2460 ElementInput* input2 = this->inputs->GetControlInputData(enum_type,"savedvalues"); 2461 if(input->ObjectEnum()!=PentaInputEnum) _error_("not supported yet"); 2462 PentaInput* pentainput2= xDynamicCast<PentaInput*>(input2); 2464 2463 /*FIXME: this should not be necessary*/ 2465 ElementInput 2* input3 = this->inputs2->GetControlInput2Data(enum_type,"gradient");2466 if(input->ObjectEnum()!=PentaInput 2Enum) _error_("not supported yet");2467 PentaInput 2* pentainput3= xDynamicCast<PentaInput2*>(input3);2464 ElementInput* input3 = this->inputs->GetControlInputData(enum_type,"gradient"); 2465 if(input->ObjectEnum()!=PentaInputEnum) _error_("not supported yet"); 2466 PentaInput* pentainput3= xDynamicCast<PentaInput*>(input3); 2468 2467 2469 2468 int lidlist[NUMVERTICES]; … … 2530 2529 2531 2530 _assert_(start==-1 || start==+1); 2532 _assert_(this->inputs 2);2531 _assert_(this->inputs); 2533 2532 2534 2533 /*Are we on the the boundary we want to be?*/ … … 2538 2537 2539 2538 /*Get original input*/ 2540 Input 2* input = this->GetInput2(enum_type);2541 if(input->ObjectEnum()!=PentaInput 2Enum) _error_("not supported yet");2542 PentaInput 2* pentainput = xDynamicCast<PentaInput2*>(input);2539 Input* input = this->GetInput(enum_type); 2540 if(input->ObjectEnum()!=PentaInputEnum) _error_("not supported yet"); 2541 PentaInput* pentainput = xDynamicCast<PentaInput*>(input); 2543 2542 2544 2543 if(pentainput->GetInterpolation()==P1Enum || pentainput->GetInterpolation()==P1DGEnum){ … … 2559 2558 2560 2559 /*Add input of the basal element to penta->inputs*/ 2561 penta->AddInput 2(enum_type,&extrudedvalues[0],pentainput->GetInterpolation());2560 penta->AddInput(enum_type,&extrudedvalues[0],pentainput->GetInterpolation()); 2562 2561 2563 2562 /*Stop if we have reached the surface/base*/ … … 2623 2622 2624 2623 /*Add input to the element: */ 2625 this->AddInput 2(enum_type,values,this->element_type);2624 this->AddInput(enum_type,values,this->element_type); 2626 2625 2627 2626 /*Free ressources:*/ … … 2657 2656 for(;;){ 2658 2657 /*Add input to the element: */ 2659 penta->AddInput 2(enum_type,values,P1Enum);2658 penta->AddInput(enum_type,values,P1Enum); 2660 2659 2661 2660 /*Stop if we have reached the surface*/ … … 2688 2687 } 2689 2688 /*update input*/ 2690 inputs 2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);2689 inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values); 2691 2690 return; 2692 2691 … … 2696 2695 } 2697 2696 /*update input*/ 2698 inputs 2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);2697 inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values); 2699 2698 return; 2700 2699 … … 2704 2703 } 2705 2704 /*update input*/ 2706 inputs 2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);2705 inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values); 2707 2706 return; 2708 2707 … … 2718 2717 } 2719 2718 /*Add input to the element: */ 2720 inputs 2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);2719 inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values); 2721 2720 2722 2721 /*Free ressources:*/ … … 2731 2730 } 2732 2731 /*Add input to the element: */ 2733 inputs 2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);2732 inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values); 2734 2733 2735 2734 /*Free ressources:*/ … … 3007 3006 3008 3007 /*First, serarch the input: */ 3009 Input 2* data=this->GetInput2(natureofdataenum);3008 Input* data=this->GetInput(natureofdataenum); 3010 3009 3011 3010 /*figure out if we have the vertex id: */ … … 3162 3161 if(this->element_type==MINIcondensedEnum){ 3163 3162 int approximation; 3164 this-> GetInput2Value(&approximation,ApproximationEnum);3163 this->Element::GetInputValue(&approximation,ApproximationEnum); 3165 3164 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 3166 3165 //Do nothing, condensation already done in PVectorCoupling … … 3186 3185 if(analysis_type==StressbalanceAnalysisEnum){ 3187 3186 int approximation; 3188 this-> GetInput2Value(&approximation,ApproximationEnum);3187 this->Element::GetInputValue(&approximation,ApproximationEnum); 3189 3188 if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){ 3190 3189 //Do nothing condensatino already done for Stokes part … … 3219 3218 3220 3219 /*For FS only: we want the CS to be tangential to the bedrock*/ 3221 this-> GetInput2Value(&approximation,ApproximationEnum);3220 this->Element::GetInputValue(&approximation,ApproximationEnum); 3222 3221 if(!IsOnBase() || (approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum)) return; 3223 3222 … … 3226 3225 3227 3226 /*Get inputs*/ 3228 Input 2* slopex_input=this->GetInput2(BedSlopeXEnum); _assert_(slopex_input);3229 Input 2* slopey_input=this->GetInput2(BedSlopeYEnum); _assert_(slopey_input);3230 Input 2* groundedicelevelset_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input);3227 Input* slopex_input=this->GetInput(BedSlopeXEnum); _assert_(slopex_input); 3228 Input* slopey_input=this->GetInput(BedSlopeYEnum); _assert_(slopey_input); 3229 Input* groundedicelevelset_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input); 3231 3230 3232 3231 /*Loop over basal nodes and update their CS*/ … … 3305 3304 3306 3305 /*Get inputs*/ 3307 Input 2* bed_input = this->GetInput2(BedEnum); _assert_(bed_input);3308 Input 2* qsg_input = this->GetInput2(FrontalForcingsSubglacialDischargeEnum); _assert_(qsg_input);3309 Input 2* TF_input = this->GetInput2(FrontalForcingsThermalForcingEnum); _assert_(TF_input);3306 Input* bed_input = this->GetInput(BedEnum); _assert_(bed_input); 3307 Input* qsg_input = this->GetInput(FrontalForcingsSubglacialDischargeEnum); _assert_(qsg_input); 3308 Input* TF_input = this->GetInput(FrontalForcingsThermalForcingEnum); _assert_(TF_input); 3310 3309 Element::GetInputListOnVertices(&basinid[0],FrontalForcingsBasinIdEnum); 3311 3310 … … 3340 3339 3341 3340 /*Add input*/ 3342 this->AddInput 2(CalvingMeltingrateEnum,&meltrates[0],P1Enum);3341 this->AddInput(CalvingMeltingrateEnum,&meltrates[0],P1Enum); 3343 3342 3344 3343 this->InputExtrude(CalvingMeltingrateEnum,-1); … … 3351 3350 void Penta::SetElementInput(int enum_in,IssmDouble value){/*{{{*/ 3352 3351 3353 this->SetElementInput(this->inputs 2,enum_in,value);3354 3355 } 3356 /*}}}*/ 3357 void Penta::SetElementInput(Inputs 2* inputs2,int enum_in,IssmDouble value){/*{{{*/3358 3359 _assert_(inputs 2);3360 inputs 2->SetPentaInput(enum_in,P0Enum,this->lid,value);3361 3362 } 3363 /*}}}*/ 3364 void Penta::SetElementInput(Inputs 2* inputs2,int numindices,int* indices,IssmDouble* values,int enum_in){/*{{{*/3365 3366 _assert_(inputs 2);3367 inputs 2->SetPentaInput(enum_in,P1Enum,numindices,indices,values);3352 this->SetElementInput(this->inputs,enum_in,value); 3353 3354 } 3355 /*}}}*/ 3356 void Penta::SetElementInput(Inputs* inputs,int enum_in,IssmDouble value){/*{{{*/ 3357 3358 _assert_(inputs); 3359 inputs->SetPentaInput(enum_in,P0Enum,this->lid,value); 3360 3361 } 3362 /*}}}*/ 3363 void Penta::SetElementInput(Inputs* inputs,int numindices,int* indices,IssmDouble* values,int enum_in){/*{{{*/ 3364 3365 _assert_(inputs); 3366 inputs->SetPentaInput(enum_in,P1Enum,numindices,indices,values); 3368 3367 3369 3368 } … … 3390 3389 3391 3390 /*Prepare index list*/ 3392 ElementInput 2* input=this->inputs2->GetControlInput2Data(control_enum,"value"); _assert_(input);3391 ElementInput* input=this->inputs->GetControlInputData(control_enum,"value"); _assert_(input); 3393 3392 this->GetVerticesLidList(&lidlist[0]); 3394 3393 GradientIndexing(&idlist[0],control_index); 3395 3394 3396 3395 /*Get values on vertices*/ 3397 if(input->ObjectEnum()==PentaInput 2Enum && input->GetInputInterpolationType()==P1Enum){3396 if(input->ObjectEnum()==PentaInputEnum && input->GetInputInterpolationType()==P1Enum){ 3398 3397 _assert_(N==1); 3399 3398 for(int i=0;i<NUMVERTICES;i++){ … … 3402 3401 input->SetInput(P1Enum,NUMVERTICES,&lidlist[0],&values[0]); 3403 3402 } 3404 else if(input->ObjectEnum()==PentaInput 2Enum && input->GetInputInterpolationType()==P0Enum){3403 else if(input->ObjectEnum()==PentaInputEnum && input->GetInputInterpolationType()==P0Enum){ 3405 3404 _assert_(N==1); 3406 3405 input->SetInput(P0Enum,this->lid,vector[idlist[0]]); 3407 3406 } 3408 else if(input->ObjectEnum()==TransientInput 2Enum){3407 else if(input->ObjectEnum()==TransientInputEnum){ 3409 3408 for(int n=0;n<N;n++){ 3410 3409 _error_("not implemented"); … … 3487 3486 tria->lid=this->lid; 3488 3487 tria->parameters=this->parameters; 3489 tria->inputs 2=this->inputs2;3488 tria->inputs=this->inputs; 3490 3489 tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED) 3491 3490 this->SpawnTriaHook(xDynamicCast<ElementHook*>(tria),index1,index2,index3); … … 3567 3566 3568 3567 /*Retrieve all inputs we will need*/ 3569 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);3570 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);3571 Input 2* vz_input=this->GetInput2(VzEnum); _assert_(vz_input);3568 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 3569 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 3570 Input* vz_input=this->GetInput(VzEnum); _assert_(vz_input); 3572 3571 3573 3572 /* Start looping on the number of vertices: */ … … 3592 3591 3593 3592 /*Add input*/ 3594 this->AddInput 2(StrainRateparallelEnum,&strainparallel[0],P1DGEnum);3593 this->AddInput(StrainRateparallelEnum,&strainparallel[0],P1DGEnum); 3595 3594 3596 3595 /*Clean up and return*/ … … 3614 3613 3615 3614 /*Retrieve all inputs we will need*/ 3616 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);3617 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);3618 Input 2* vz_input=this->GetInput2(VzEnum); _assert_(vz_input);3615 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 3616 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 3617 Input* vz_input=this->GetInput(VzEnum); _assert_(vz_input); 3619 3618 3620 3619 /* Start looping on the number of vertices: */ … … 3639 3638 3640 3639 /*Add input*/ 3641 this->AddInput 2(StrainRateperpendicularEnum,&strainperpendicular[0],P1DGEnum);3640 this->AddInput(StrainRateperpendicularEnum,&strainperpendicular[0],P1DGEnum); 3642 3641 3643 3642 /*Clean up and return*/ … … 3671 3670 3672 3671 /*Retrieve all inputs we will need*/ 3673 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);3674 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);3675 Input 2* vel_input=this->GetInput2(VelEnum); _assert_(vel_input);3676 Input 2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);3677 Input 2* deviaxx_input=this->GetInput2(DeviatoricStressxxEnum); _assert_(deviaxx_input);3678 Input 2* deviaxy_input=this->GetInput2(DeviatoricStressxyEnum); _assert_(deviaxy_input);3679 Input 2* deviayy_input=this->GetInput2(DeviatoricStressyyEnum); _assert_(deviayy_input);3680 Input 2* surface_input=this->GetInput2(SurfaceEnum); _assert_(surface_input);3681 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);3672 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 3673 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 3674 Input* vel_input=this->GetInput(VelEnum); _assert_(vel_input); 3675 Input* pressure_input=this->GetInput(PressureEnum); _assert_(pressure_input); 3676 Input* deviaxx_input=this->GetInput(DeviatoricStressxxEnum); _assert_(deviaxx_input); 3677 Input* deviaxy_input=this->GetInput(DeviatoricStressxyEnum); _assert_(deviaxy_input); 3678 Input* deviayy_input=this->GetInput(DeviatoricStressyyEnum); _assert_(deviayy_input); 3679 Input* surface_input=this->GetInput(SurfaceEnum); _assert_(surface_input); 3680 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 3682 3681 3683 3682 /* Start looping on the number of 2D vertices: */ … … 3719 3718 3720 3719 /*Add input*/ 3721 this->AddInput 2(StressIntensityFactorEnum,&ki[0],P1Enum);3720 this->AddInput(StressIntensityFactorEnum,&ki[0],P1Enum); 3722 3721 this->InputExtrude(StressIntensityFactorEnum,-1); 3723 3722 } … … 3730 3729 3731 3730 /*retrieve inputs :*/ 3732 this-> GetInput2Value(&approximation,ApproximationEnum);3731 this->Element::GetInputValue(&approximation,ApproximationEnum); 3733 3732 3734 3733 /*If on water, return 0: */ … … 3769 3768 3770 3769 /*Get for Vx and Vy, the max of abs value: */ 3771 Input 2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);3772 Input 2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);3773 Input 2* vz_input = this->GetInput2(VzEnum); _assert_(vz_input);3770 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 3771 Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input); 3772 Input* vz_input = this->GetInput(VzEnum); _assert_(vz_input); 3774 3773 IssmDouble maxabsvx = vx_input->GetInputMaxAbs(); 3775 3774 IssmDouble maxabsvy = vy_input->GetInputMaxAbs(); … … 3896 3895 IssmDouble calvingratex,calvingratey,thickness,Jdet; 3897 3896 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 3898 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);3899 Input 2* calvingratex_input=NULL;3900 Input 2* calvingratey_input=NULL;3901 calvingratex_input=this->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);3902 calvingratey_input=this->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);3897 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 3898 Input* calvingratex_input=NULL; 3899 Input* calvingratey_input=NULL; 3900 calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 3901 calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 3903 3902 3904 3903 /*Start looping on Gaussian points*/ … … 4017 4016 IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet; 4018 4017 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 4019 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);4020 Input 2* calvingratex_input=NULL;4021 Input 2* calvingratey_input=NULL;4022 Input 2* vx_input=NULL;4023 Input 2* vy_input=NULL;4024 Input 2* meltingrate_input=NULL;4025 calvingratex_input=this->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);4026 calvingratey_input=this->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);4027 vx_input=this->GetInput 2(VxAverageEnum); _assert_(vx_input);4028 vy_input=this->GetInput 2(VyAverageEnum); _assert_(vy_input);4029 meltingrate_input=this->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);4018 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 4019 Input* calvingratex_input=NULL; 4020 Input* calvingratey_input=NULL; 4021 Input* vx_input=NULL; 4022 Input* vy_input=NULL; 4023 Input* meltingrate_input=NULL; 4024 calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 4025 calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 4026 vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input); 4027 vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input); 4028 meltingrate_input=this->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 4030 4029 4031 4030 /*Start looping on Gaussian points*/ … … 4069 4068 /*Get material parameters :*/ 4070 4069 rho_ice=FindParam(MaterialsRhoIceEnum); 4071 Input 2* floatingmelt_input = this->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input);4072 Input 2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);4073 Input 2* scalefactor_input = NULL;4070 Input* floatingmelt_input = this->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input); 4071 Input* gllevelset_input = this->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 4072 Input* scalefactor_input = NULL; 4074 4073 if(scaled==true){ 4075 scalefactor_input = this->GetInput 2(MeshScaleFactorEnum); _assert_(scalefactor_input);4074 scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 4076 4075 } 4077 4076 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); … … 4114 4113 /*Get material parameters :*/ 4115 4114 rho_ice=FindParam(MaterialsRhoIceEnum); 4116 Input 2* groundedmelt_input = this->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input);4117 Input 2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);4118 Input 2* scalefactor_input = NULL;4115 Input* groundedmelt_input = this->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input); 4116 Input* gllevelset_input = this->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 4117 Input* scalefactor_input = NULL; 4119 4118 if(scaled==true){ 4120 scalefactor_input = this->GetInput 2(MeshScaleFactorEnum); _assert_(scalefactor_input);4119 scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 4121 4120 } 4122 4121 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); … … 4164 4163 4165 4164 /*Now get the average SMB over the element*/ 4166 Input 2* smb_input = this->GetInput2(SmbMassBalanceEnum); _assert_(smb_input);4165 Input* smb_input = this->GetInput(SmbMassBalanceEnum); _assert_(smb_input); 4167 4166 4168 4167 smb_input->GetInputAverage(&smb); 4169 4168 if(scaled==true){ 4170 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);4169 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 4171 4170 scalefactor_input->GetInputAverage(&scalefactor);// average scalefactor on element 4172 4171 } … … 4180 4179 } 4181 4180 /*}}}*/ 4182 void Penta::Update(Inputs 2* inputs2,int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/4181 void Penta::Update(Inputs* inputs,int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/ 4183 4182 4184 4183 /*Intermediaries*/ … … 4571 4570 if(iomodel->Data("md.initialization.vz") && iomodel->Data("md.flowequation.borderFS")){ 4572 4571 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data("md.initialization.vz")[penta_vertex_ids[i]-1]*iomodel->Data("md.flowequation.borderFS")[penta_vertex_ids[i]-1]; 4573 this->SetElementInput(inputs 2,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);4572 this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum); 4574 4573 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data("md.initialization.vz")[penta_vertex_ids[i]-1]*(1-iomodel->Data("md.flowequation.borderFS")[penta_vertex_ids[i]-1]); 4575 this->SetElementInput(inputs 2,NUMVERTICES,vertexlids,nodeinputs,VzHOEnum);4574 this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzHOEnum); 4576 4575 } 4577 4576 else{ 4578 4577 for(i=0;i<6;i++)nodeinputs[i]=0; 4579 this->SetElementInput(inputs 2,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);4580 this->SetElementInput(inputs 2,NUMVERTICES,vertexlids,nodeinputs,VzHOEnum);4578 this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum); 4579 this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzHOEnum); 4581 4580 } 4582 4581 } … … 4587 4586 if(iomodel->Data("md.initialization.vz") && iomodel->Data("md.flowequation.borderFS")){ 4588 4587 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data("md.initialization.vz")[penta_vertex_ids[i]-1]*iomodel->Data("md.flowequation.borderFS")[penta_vertex_ids[i]-1]; 4589 this->SetElementInput(inputs 2,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);4588 this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum); 4590 4589 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data("md.initialization.vz")[penta_vertex_ids[i]-1]*(1-iomodel->Data("md.flowequation.borderFS")[penta_vertex_ids[i]-1]); 4591 this->SetElementInput(inputs 2,NUMVERTICES,vertexlids,nodeinputs,VzSSAEnum);4590 this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzSSAEnum); 4592 4591 } 4593 4592 else{ 4594 4593 for(i=0;i<6;i++)nodeinputs[i]=0; 4595 this->SetElementInput(inputs 2,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);4596 this->SetElementInput(inputs 2,NUMVERTICES,vertexlids,nodeinputs,VzSSAEnum);4594 this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum); 4595 this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzSSAEnum); 4597 4596 } 4598 4597 } … … 4612 4611 4613 4612 this->parameters->FindParam(&extrusioninput,InputToExtrudeEnum); 4614 Input 2* input = this->GetInput2(extrusioninput); _assert_(extrusioninput);4615 Input 2* onbase = this->GetInput2(MeshVertexonbaseEnum); _assert_(onbase);4613 Input* input = this->GetInput(extrusioninput); _assert_(extrusioninput); 4614 Input* onbase = this->GetInput(MeshVertexonbaseEnum); _assert_(onbase); 4616 4615 4617 4616 GaussPenta* gauss=new GaussPenta(); … … 4637 4636 4638 4637 this->parameters->FindParam(&extrusioninput,InputToExtrudeEnum); 4639 Input 2* input = this->GetInput2(extrusioninput); _assert_(extrusioninput);4638 Input* input = this->GetInput(extrusioninput); _assert_(extrusioninput); 4640 4639 4641 4640 GaussPenta* gauss=new GaussPenta(); … … 4705 4704 } 4706 4705 /*}}}*/ 4707 void Penta::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/4706 void Penta::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ 4708 4707 4709 4708 /*Intermediaries*/ … … 4736 4735 4737 4736 /*Branch according to whether we have a transient or not input: */ 4738 type=this->inputs 2->GetInputObjectEnum(name);4739 if(type==PentaInput 2Enum){4737 type=this->inputs->GetInputObjectEnum(name); 4738 if(type==PentaInputEnum){ 4740 4739 /*Figure out if we are P0 or P1 interpolation: */ 4741 PentaInput 2* pentainput = this->inputs2->GetPentaInput(name);4742 PentaInput 2* pentainput2 = this->inputs2->GetPentaInput(DummyEnum);4740 PentaInput* pentainput = this->inputs->GetPentaInput(name); 4741 PentaInput* pentainput2 = this->inputs->GetPentaInput(DummyEnum); 4743 4742 interp=pentainput->GetInterpolation(); 4744 4743 … … 4766 4765 else _error_("Penta::InputScaleFromDakota error message: input interpolation " << EnumToStringx(interp) << " not supported yet!"); 4767 4766 } 4768 else if(type==TransientInput 2Enum){4767 else if(type==TransientInputEnum){ 4769 4768 4770 4769 4771 4770 IssmDouble* steps=NULL; 4772 4771 int nsteps; 4773 TransientInput 2* transientinput = NULL;4774 TransientInput 2* transientinput2 = NULL;4772 TransientInput* transientinput = NULL; 4773 TransientInput* transientinput2 = NULL; 4775 4774 4776 4775 /*retrieve transient input:*/ 4777 transientinput= this->inputs 2->GetTransientInput(name);4778 transientinput2= this->inputs 2->GetTransientInput(DummyEnum);4776 transientinput= this->inputs->GetTransientInput(name); 4777 transientinput2= this->inputs->GetTransientInput(DummyEnum); 4779 4778 4780 4779 /*retrieve time steps: */ … … 4791 4790 /*go through the transient inputs, and update:*/ 4792 4791 for (int i=0;i<nsteps;i++){ 4793 PentaInput 2* pentainput=transientinput->GetPentaInput(i);4794 PentaInput 2* pentainput2=transientinput2->GetPentaInput(i);4792 PentaInput* pentainput=transientinput->GetPentaInput(i); 4793 PentaInput* pentainput2=transientinput2->GetPentaInput(i); 4795 4794 interp=pentainput->GetInterpolation(); 4796 4795 … … 4829 4828 /*Check that name is an element input*/ 4830 4829 if(!IsInputEnum(name)) _error_("Enum "<<EnumToStringx(name)<<" is not in IsInput"); 4831 TransientInput 2* transientinput = inputs2->GetTransientInput(name);4830 TransientInput* transientinput = inputs->GetTransientInput(name); 4832 4831 4833 4832 switch(type){ … … 4955 4954 4956 4955 /*Add new inputs: */ 4957 this->AddInput 2(ThicknessEnum,thickness,P1Enum);4958 this->AddInput 2(BaseEnum,bed,P1Enum);4959 this->AddInput 2(SurfaceEnum,surface,P1Enum);4956 this->AddInput(ThicknessEnum,thickness,P1Enum); 4957 this->AddInput(BaseEnum,bed,P1Enum); 4958 this->AddInput(SurfaceEnum,surface,P1Enum); 4960 4959 break; 4961 4960 4962 4961 default: 4963 this->AddInput 2(name,values,P1Enum);4962 this->AddInput(name,values,P1Enum); 4964 4963 } 4965 4964 break; … … 4969 4968 /*Get value for the element: */ 4970 4969 value=vector[this->Sid()]; //careful, vector of values here is not parallel distributed, but serial distributed (from a serial Dakota core!) 4971 this->AddInput 2(name,&value,P0Enum);4970 this->AddInput(name,&value,P0Enum); 4972 4971 break; 4973 4972 -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r25318 r25379 44 44 /*}}}*/ 45 45 /*Penta routines:{{{*/ 46 void AddBasalInput 2(int input_enum, IssmDouble* values, int interpolation_enum);47 void AddInput 2(int input_enum, IssmDouble* values, int interpolation_enum);48 void AddControlInput(int input_enum,Inputs 2* inputs2,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id);46 void AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum); 47 void AddInput(int input_enum, IssmDouble* values, int interpolation_enum); 48 void AddControlInput(int input_enum,Inputs* inputs,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id); 49 49 void ControlInputExtrude(int enum_type,int start); 50 50 void DatasetInputExtrude(int enum_type,int start); 51 void DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs 2* inputs2,IoModel* iomodel,int input_enum);51 void DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs* inputs,IoModel* iomodel,int input_enum); 52 52 void AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part); 53 53 void BasalNodeIndices(int* pnumindices,int** pindices,int finiteelement); … … 62 62 void ComputeSigmaNN(){_error_("not implemented yet");}; 63 63 void ComputeStressTensor(); 64 void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters,Inputs 2* inputs2in);64 void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters,Inputs* inputsin); 65 65 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp); 66 66 void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp); … … 83 83 IssmDouble GetIcefrontArea(); 84 84 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum); 85 Input 2* GetInput2(int enumtype);86 Input 2* GetInput2(int enumtype,IssmDouble time);87 Input 2* GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");};88 void GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value);89 void GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value);90 DatasetInput 2* GetDatasetInput2(int inputenum);85 Input* GetInput(int enumtype); 86 Input* GetInput(int enumtype,IssmDouble time); 87 Input* GetInput(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");}; 88 void GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value); 89 void GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value); 90 DatasetInput* GetDatasetInput(int inputenum); 91 91 void GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype); 92 92 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype); … … 164 164 void RignotMeltParameterization(); 165 165 void SetElementInput(int enum_in,IssmDouble values); 166 void SetElementInput(Inputs 2* inputs2,int enum_in,IssmDouble values);167 void SetElementInput(Inputs 2* inputs2,int numindices,int* indices,IssmDouble* values,int enum_in);166 void SetElementInput(Inputs* inputs,int enum_in,IssmDouble values); 167 void SetElementInput(Inputs* inputs,int numindices,int* indices,IssmDouble* values,int enum_in); 168 168 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset, int M,int N); 169 169 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters); … … 185 185 IssmDouble TotalGroundedBmb(bool scaled); 186 186 IssmDouble TotalSmb(bool scaled); 187 void Update(Inputs 2* inputs,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);187 void Update(Inputs* inputs,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement); 188 188 void UpdateConstraintsExtrudeFromBase(void); 189 189 void UpdateConstraintsExtrudeFromTop(void); … … 195 195 void VerticalSegmentIndices(int** pindices,int* pnumseg); 196 196 void VerticalSegmentIndicesBase(int** pindices,int* pnumseg); 197 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input);197 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 198 198 199 199 #ifdef _HAVE_DAKOTA_ -
issm/trunk-jpl/src/c/classes/Elements/Seg.cpp
r24861 r25379 13 13 #include <string.h> 14 14 #include "../classes.h" 15 #include "../Inputs 2/SegInput2.h"16 #include "../Inputs 2/TriaInput2.h"15 #include "../Inputs/SegInput.h" 16 #include "../Inputs/TriaInput.h" 17 17 #include "../../shared/shared.h" 18 18 /*}}}*/ … … 186 186 *pxyz_front=xyz_front; 187 187 }/*}}}*/ 188 Input 2* Seg::GetInput2(int inputenum){/*{{{*/188 Input* Seg::GetInput(int inputenum){/*{{{*/ 189 189 190 190 if(this->iscollapsed){ 191 TriaInput 2* input = this->inputs2->GetTriaInput(inputenum);191 TriaInput* input = this->inputs->GetTriaInput(inputenum); 192 192 if(!input) return input; 193 193 … … 221 221 } 222 222 else{ 223 SegInput 2* input = this->inputs2->GetSegInput(inputenum);223 SegInput* input = this->inputs->GetSegInput(inputenum); 224 224 if(!input) return input; 225 225 … … 252 252 } 253 253 }/*}}}*/ 254 Input 2* Seg::GetInput2(int inputenum,IssmDouble time){/*{{{*/254 Input* Seg::GetInput(int inputenum,IssmDouble time){/*{{{*/ 255 255 _error_("not implemented yet"); 256 256 }/*}}}*/ … … 301 301 302 302 }/*}}}*/ 303 void Seg::GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value){/*{{{*/303 void Seg::GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/ 304 304 305 305 /*Checks in debugging mode*/ … … 319 319 } 320 320 /*}}}*/ 321 void Seg::GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value){/*{{{*/321 void Seg::GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/ 322 322 323 323 /*Checks in debugging mode*/ -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r25318 r25379 49 49 void ComputeSigmaNN(){_error_("not implemented yet");}; 50 50 void ComputeStressTensor(){_error_("not implemented yet");}; 51 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs 2* inputs2in){_error_("not implemented yet");};51 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs* inputsin){_error_("not implemented yet");}; 52 52 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp){_error_("not implemented yet");}; 53 53 void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp){_error_("not implemented yet");}; … … 62 62 IssmDouble GetGroundedPortion(IssmDouble* xyz_list); 63 63 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum); 64 Input 2* GetInput2(int enumtype);65 Input 2* GetInput2(int enumtype,IssmDouble time);66 Input 2* GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");};67 void GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value);68 void GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value);64 Input* GetInput(int enumtype); 65 Input* GetInput(int enumtype,IssmDouble time); 66 Input* GetInput(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");}; 67 void GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value); 68 void GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value); 69 69 void GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype){_error_("not implemented yet");}; 70 70 void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented");}; … … 149 149 IssmDouble TotalGroundedBmb(bool scaled){_error_("not implemented yet");}; 150 150 IssmDouble TotalSmb(bool scaled){_error_("not implemented yet");}; 151 void Update(Inputs 2* inputs2,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement){_error_("not implemented yet");};151 void Update(Inputs* inputs,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement){_error_("not implemented yet");}; 152 152 void UpdateConstraintsExtrudeFromBase(){_error_("not implemented");}; 153 153 void UpdateConstraintsExtrudeFromTop(){_error_("not implemented");}; -
issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
r25239 r25379 13 13 #include <string.h> 14 14 #include "../classes.h" 15 #include "../Inputs 2/ElementInput2.h"15 #include "../Inputs/ElementInput.h" 16 16 #include "../../shared/shared.h" 17 17 /*}}}*/ … … 135 135 /*}}}*/ 136 136 137 void Tetra::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin,Inputs 2* inputs2in){/*{{{*/137 void Tetra::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin,Inputs* inputsin){/*{{{*/ 138 138 139 139 int analysis_counter; … … 159 159 /*point parameters to real dataset: */ 160 160 this->parameters=parametersin; 161 this->inputs 2=inputs2in;161 this->inputs=inputsin; 162 162 } 163 163 /*}}}*/ … … 257 257 } 258 258 /*}}}*/ 259 Input 2* Tetra::GetInput2(int inputenum){/*{{{*/259 Input* Tetra::GetInput(int inputenum){/*{{{*/ 260 260 _error_("not implemented yet"); 261 261 }/*}}}*/ 262 Input 2* Tetra::GetInput2(int inputenum,IssmDouble time){/*{{{*/262 Input* Tetra::GetInput(int inputenum,IssmDouble time){/*{{{*/ 263 263 _error_("not implemented yet"); 264 264 }/*}}}*/ 265 void Tetra::GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value){/*{{{*/265 void Tetra::GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/ 266 266 267 267 /*Checks in debugging mode*/ … … 281 281 } 282 282 /*}}}*/ 283 void Tetra::GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value){/*{{{*/283 void Tetra::GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/ 284 284 285 285 /*Checks in debugging mode*/ … … 305 305 void Tetra::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){/*{{{*/ 306 306 307 Input 2* input=this->GetInput2(enumtype);307 Input* input=this->GetInput(enumtype); 308 308 if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria"); 309 309 … … 442 442 443 443 /*Add input to the element: */ 444 this->AddInput 2(enum_type,values,this->element_type);444 this->AddInput(enum_type,values,this->element_type); 445 445 446 446 /*Free ressources:*/ … … 690 690 691 691 /*For FS only: we want the CS to be tangential to the bedrock*/ 692 this-> GetInput2Value(&approximation,ApproximationEnum);692 this->Element::GetInputValue(&approximation,ApproximationEnum); 693 693 if(!HasNodeOnBase() || approximation!=FSApproximationEnum) return; 694 694 695 695 //printf("element number %i \n",this->id); 696 696 /*Get inputs*/ 697 Input 2* slopex_input=this->GetInput2(BedSlopeXEnum); _assert_(slopex_input);698 Input 2* slopey_input=this->GetInput2(BedSlopeYEnum); _assert_(slopey_input);699 Input 2* groundedicelevelset_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input);697 Input* slopex_input=this->GetInput(BedSlopeXEnum); _assert_(slopex_input); 698 Input* slopey_input=this->GetInput(BedSlopeYEnum); _assert_(slopey_input); 699 Input* groundedicelevelset_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input); 700 700 vertexonbase = xNew<IssmDouble>(numnodes); 701 701 this->GetInputListOnNodesVelocity(&vertexonbase[0],MeshVertexonbaseEnum); … … 814 814 } 815 815 /*}}}*/ 816 void Tetra::Update(Inputs 2* inputs2,int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/816 void Tetra::Update(Inputs* inputs,int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/ 817 817 818 818 /*Intermediaries*/ … … 942 942 } 943 943 /*}}}*/ 944 void Tetra::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/944 void Tetra::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ 945 945 946 946 /*Intermediaries*/ -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r25318 r25379 47 47 void ComputeDeviatoricStressTensor(){_error_("not implemented yet");}; 48 48 void ComputeEsaStrainAndVorticity(){_error_("not implemented yet!");}; 49 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs 2* inputs2in);49 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs* inputsin); 50 50 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp){_error_("not implemented yet");}; 51 51 void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp){_error_("not implemented yet");}; … … 66 66 IssmDouble GetGroundedPortion(IssmDouble* xyz_list){_error_("not implemented yet");}; 67 67 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented yet");}; 68 Input 2* GetInput2(int enumtype);69 Input 2* GetInput2(int enumtype,IssmDouble time);70 Input 2* GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");};71 void GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value);72 void GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value);68 Input* GetInput(int enumtype); 69 Input* GetInput(int enumtype,IssmDouble time); 70 Input* GetInput(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");}; 71 void GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value); 72 void GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value); 73 73 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype); 74 74 void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented yet");}; … … 156 156 IssmDouble TotalGroundedBmb(bool scaled){_error_("not implemented yet");}; 157 157 IssmDouble TotalSmb(bool scaled){_error_("not implemented yet");}; 158 void Update(Inputs 2* inputs2,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);158 void Update(Inputs* inputs,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement); 159 159 void UpdateConstraintsExtrudeFromBase(){_error_("not implemented");}; 160 160 void UpdateConstraintsExtrudeFromTop(){_error_("not implemented");}; … … 166 166 void VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");}; 167 167 void VerticalSegmentIndicesBase(int** pindices,int* pnumseg){_error_("not implemented yet");}; 168 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input);168 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 169 169 170 170 #ifdef _HAVE_GIA_ -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r25323 r25379 15 15 //#include <gsl_cblas.h> 16 16 #include "../classes.h" 17 #include "../Inputs 2/TriaInput2.h"18 #include "../Inputs 2/PentaInput2.h"19 #include "../Inputs 2/ControlInput2.h"20 #include "../Inputs 2/DatasetInput2.h"21 #include "../Inputs 2/TransientInput2.h"17 #include "../Inputs/TriaInput.h" 18 #include "../Inputs/PentaInput.h" 19 #include "../Inputs/ControlInput.h" 20 #include "../Inputs/DatasetInput.h" 21 #include "../Inputs/TransientInput.h" 22 22 #include "../../shared/shared.h" 23 23 #ifdef _HAVE_GIA_ … … 163 163 164 164 /*Other*/ 165 void Tria::AddBasalInput 2(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/165 void Tria::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/ 166 166 167 167 /*Call inputs method*/ 168 _assert_(this->inputs 2);168 _assert_(this->inputs); 169 169 170 170 int domaintype; … … 172 172 switch(domaintype){ 173 173 case Domain2DhorizontalEnum: 174 this->AddInput 2(input_enum,values,interpolation_enum);174 this->AddInput(input_enum,values,interpolation_enum); 175 175 break; 176 176 case Domain2DverticalEnum:{ … … 183 183 } 184 184 /*}}}*/ 185 void Tria::AddInput 2(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/185 void Tria::AddInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/ 186 186 187 187 /*Intermediaries*/ … … 189 189 190 190 /*Call inputs method*/ 191 if(!this->inputs 2){191 if(!this->inputs){ 192 192 int* temp = xNew<int>(3); 193 _error_("inputs 2not set");194 } 195 _assert_(this->inputs 2);193 _error_("inputs not set"); 194 } 195 _assert_(this->inputs); 196 196 switch(interpolation_enum){ 197 197 case P1Enum: 198 198 for(int i=0;i<NUMVERTICES;i++) vertexlids[i]=this->vertices[i]->lid; 199 inputs 2->SetTriaInput(input_enum,interpolation_enum,NUMVERTICES,vertexlids,values);199 inputs->SetTriaInput(input_enum,interpolation_enum,NUMVERTICES,vertexlids,values); 200 200 break; 201 201 case P1DGEnum: 202 202 for(int i=0;i<NUMVERTICES;i++) vertexlids[i]=this->vertices[i]->lid; 203 inputs 2->SetTriaInput(input_enum,interpolation_enum,this->lid,NUMVERTICES,values);203 inputs->SetTriaInput(input_enum,interpolation_enum,this->lid,NUMVERTICES,values); 204 204 break; 205 205 default: 206 inputs 2->SetTriaInput(input_enum,interpolation_enum,this->lid,this->GetNumberOfNodes(interpolation_enum),values);207 } 208 209 } 210 /*}}}*/ 211 void Tria::AddControlInput(int input_enum,Inputs 2* inputs2,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id){/*{{{*/206 inputs->SetTriaInput(input_enum,interpolation_enum,this->lid,this->GetNumberOfNodes(interpolation_enum),values); 207 } 208 209 } 210 /*}}}*/ 211 void Tria::AddControlInput(int input_enum,Inputs* inputs,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id){/*{{{*/ 212 212 213 213 /*Intermediaries*/ … … 223 223 switch(interpolation_enum){ 224 224 case P0Enum: 225 inputs 2->SetTriaControlInput(input_enum,TriaInput2Enum,interpolation_enum,id,1,&this->lid,values,values_min,values_max);225 inputs->SetTriaControlInput(input_enum,TriaInputEnum,interpolation_enum,id,1,&this->lid,values,values_min,values_max); 226 226 break; 227 227 case P1Enum: 228 inputs 2->SetTriaControlInput(input_enum,TriaInput2Enum,interpolation_enum,id,NUMVERTICES,vertexlids,values,values_min,values_max);228 inputs->SetTriaControlInput(input_enum,TriaInputEnum,interpolation_enum,id,NUMVERTICES,vertexlids,values,values_min,values_max); 229 229 break; 230 230 default: … … 234 234 } 235 235 /*}}}*/ 236 void Tria::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs 2* inputs2,IoModel* iomodel,int input_enum){/*{{{*/236 void Tria::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs* inputs,IoModel* iomodel,int input_enum){/*{{{*/ 237 237 238 238 /*Intermediaries*/ … … 256 256 for(int i=0;i<num_inputs;i++){ 257 257 for(int j=0;j<NUMVERTICES;j++) nodeinputs[j]=array[vertexsids[j]*N+i]; 258 inputs 2->SetTriaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs);258 inputs->SetTriaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs); 259 259 } 260 260 } … … 315 315 316 316 /*Retrieve all inputs and parameters we will need*/ 317 Input 2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);318 Input 2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);319 Input 2* B_input = this->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);320 Input 2* gr_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input);321 Input 2* bs_input = this->GetInput2(BaseEnum); _assert_(bs_input);322 Input 2* smax_fl_input = this->GetInput2(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input);323 Input 2* smax_gr_input = this->GetInput2(CalvingStressThresholdGroundediceEnum); _assert_(smax_gr_input);324 Input 2* n_input = this->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);325 Input 2* sl_input = this->GetInput2(SealevelEnum); _assert_(sl_input);317 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 318 Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input); 319 Input* B_input = this->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 320 Input* gr_input = this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input); 321 Input* bs_input = this->GetInput(BaseEnum); _assert_(bs_input); 322 Input* smax_fl_input = this->GetInput(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input); 323 Input* smax_gr_input = this->GetInput(CalvingStressThresholdGroundediceEnum); _assert_(smax_gr_input); 324 Input* n_input = this->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 325 Input* sl_input = this->GetInput(SealevelEnum); _assert_(sl_input); 326 326 327 327 … … 384 384 385 385 /*Add input*/ 386 this->AddInput 2(CalvingratexEnum,&calvingratex[0],P1DGEnum);387 this->AddInput 2(CalvingrateyEnum,&calvingratey[0],P1DGEnum);388 this->AddInput 2(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);389 this->AddInput 2(SigmaVMEnum,&sigma_vm[0],P1DGEnum);386 this->AddInput(CalvingratexEnum,&calvingratex[0],P1DGEnum); 387 this->AddInput(CalvingrateyEnum,&calvingratey[0],P1DGEnum); 388 this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum); 389 this->AddInput(SigmaVMEnum,&sigma_vm[0],P1DGEnum); 390 390 391 391 /*Clean up and return*/ … … 415 415 IssmDouble constant_g = this->FindParam(ConstantsGEnum); 416 416 417 Input 2* H_input = this->GetInput2(ThicknessEnum); _assert_(H_input);418 Input 2* bed_input = this->GetInput2(BedEnum); _assert_(bed_input);419 Input 2* surface_input = this->GetInput2(SurfaceEnum); _assert_(surface_input);420 Input 2* strainrateparallel_input = this->GetInput2(StrainRateparallelEnum); _assert_(strainrateparallel_input);421 Input 2* strainrateeffective_input = this->GetInput2(StrainRateeffectiveEnum); _assert_(strainrateeffective_input);422 Input 2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);423 Input 2* vy_input = this->GetInput2(VxEnum); _assert_(vy_input);424 Input 2* waterheight_input = this->GetInput2(WaterheightEnum); _assert_(waterheight_input);425 Input 2* s_xx_input = this->GetInput2(DeviatoricStressxxEnum); _assert_(s_xx_input);426 Input 2* s_xy_input = this->GetInput2(DeviatoricStressxyEnum); _assert_(s_xy_input);427 Input 2* s_yy_input = this->GetInput2(DeviatoricStressyyEnum); _assert_(s_yy_input);428 Input 2* B_input = this->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);429 Input 2* n_input = this->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);417 Input* H_input = this->GetInput(ThicknessEnum); _assert_(H_input); 418 Input* bed_input = this->GetInput(BedEnum); _assert_(bed_input); 419 Input* surface_input = this->GetInput(SurfaceEnum); _assert_(surface_input); 420 Input* strainrateparallel_input = this->GetInput(StrainRateparallelEnum); _assert_(strainrateparallel_input); 421 Input* strainrateeffective_input = this->GetInput(StrainRateeffectiveEnum); _assert_(strainrateeffective_input); 422 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 423 Input* vy_input = this->GetInput(VxEnum); _assert_(vy_input); 424 Input* waterheight_input = this->GetInput(WaterheightEnum); _assert_(waterheight_input); 425 Input* s_xx_input = this->GetInput(DeviatoricStressxxEnum); _assert_(s_xx_input); 426 Input* s_xy_input = this->GetInput(DeviatoricStressxyEnum); _assert_(s_xy_input); 427 Input* s_yy_input = this->GetInput(DeviatoricStressyyEnum); _assert_(s_yy_input); 428 Input* B_input = this->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 429 Input* n_input = this->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 430 430 431 431 /*Loop over all elements of this partition*/ … … 484 484 } 485 485 486 this->AddInput 2(SurfaceCrevasseEnum,&surface_crevasse[0],P1DGEnum);487 this->AddInput 2(BasalCrevasseEnum,&basal_crevasse[0],P1DGEnum);488 this->AddInput 2(CrevasseDepthEnum,&crevasse_depth[0],P1DGEnum);486 this->AddInput(SurfaceCrevasseEnum,&surface_crevasse[0],P1DGEnum); 487 this->AddInput(BasalCrevasseEnum,&basal_crevasse[0],P1DGEnum); 488 this->AddInput(CrevasseDepthEnum,&crevasse_depth[0],P1DGEnum); 489 489 490 490 delete gauss; … … 506 506 507 507 /*Retrieve all inputs and parameters we will need*/ 508 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);509 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);510 Input 2* bs_input = this->GetInput2(BaseEnum); _assert_(bs_input);511 Input 2* strainparallel_input=this->GetInput2(StrainRateparallelEnum); _assert_(strainparallel_input);512 Input 2* strainperpendicular_input=this->GetInput2(StrainRateperpendicularEnum);_assert_(strainperpendicular_input);513 Input 2* levermanncoeff_input=this->GetInput2(CalvinglevermannCoeffEnum); _assert_(levermanncoeff_input);508 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 509 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 510 Input* bs_input = this->GetInput(BaseEnum); _assert_(bs_input); 511 Input* strainparallel_input=this->GetInput(StrainRateparallelEnum); _assert_(strainparallel_input); 512 Input* strainperpendicular_input=this->GetInput(StrainRateperpendicularEnum);_assert_(strainperpendicular_input); 513 Input* levermanncoeff_input=this->GetInput(CalvinglevermannCoeffEnum); _assert_(levermanncoeff_input); 514 514 515 515 /* Start looping on the number of vertices: */ … … 539 539 540 540 /*Add input*/ 541 this->AddInput 2(CalvingratexEnum,&calvingratex[0],P1DGEnum);542 this->AddInput 2(CalvingrateyEnum,&calvingratey[0],P1DGEnum);543 this->AddInput 2(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);541 this->AddInput(CalvingratexEnum,&calvingratex[0],P1DGEnum); 542 this->AddInput(CalvingrateyEnum,&calvingratey[0],P1DGEnum); 543 this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum); 544 544 545 545 /*Clean up and return*/ … … 553 553 if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){ 554 554 IssmDouble flux_per_area=0; 555 this->AddInput 2(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);555 this->AddInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum); 556 556 } 557 557 else{ … … 649 649 IssmDouble calvingratex,calvingratey,thickness,Jdet,flux_per_area; 650 650 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 651 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);652 Input 2* calvingratex_input=NULL;653 Input 2* calvingratey_input=NULL;651 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 652 Input* calvingratex_input=NULL; 653 Input* calvingratey_input=NULL; 654 654 if(domaintype==Domain2DhorizontalEnum){ 655 calvingratex_input=this->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);656 calvingratey_input=this->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);655 calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 656 calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 657 657 } 658 658 else{ 659 calvingratex_input=this->GetInput 2(CalvingratexAverageEnum); _assert_(calvingratex_input);660 calvingratey_input=this->GetInput 2(CalvingrateyAverageEnum); _assert_(calvingratey_input);659 calvingratex_input=this->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 660 calvingratey_input=this->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 661 661 } 662 662 … … 677 677 } 678 678 679 this->AddInput 2(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);679 this->AddInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum); 680 680 681 681 /*Clean up and return*/ … … 689 689 if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){ 690 690 IssmDouble flux_per_area=0; 691 this->AddInput 2(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);691 this->AddInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum); 692 692 } 693 693 else{ … … 786 786 IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet,flux_per_area; 787 787 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 788 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);789 Input 2* calvingratex_input=NULL;790 Input 2* calvingratey_input=NULL;791 Input 2* vx_input=NULL;792 Input 2* vy_input=NULL;793 Input 2* meltingrate_input=NULL;788 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 789 Input* calvingratex_input=NULL; 790 Input* calvingratey_input=NULL; 791 Input* vx_input=NULL; 792 Input* vy_input=NULL; 793 Input* meltingrate_input=NULL; 794 794 if(domaintype==Domain2DhorizontalEnum){ 795 calvingratex_input=this->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);796 calvingratey_input=this->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);797 vx_input=this->GetInput 2(VxEnum); _assert_(vx_input);798 vy_input=this->GetInput 2(VyEnum); _assert_(vy_input);799 meltingrate_input=this->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);795 calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 796 calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 797 vx_input=this->GetInput(VxEnum); _assert_(vx_input); 798 vy_input=this->GetInput(VyEnum); _assert_(vy_input); 799 meltingrate_input=this->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 800 800 } 801 801 else{ 802 calvingratex_input=this->GetInput 2(CalvingratexAverageEnum); _assert_(calvingratex_input);803 calvingratey_input=this->GetInput 2(CalvingrateyAverageEnum); _assert_(calvingratey_input);802 calvingratex_input=this->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 803 calvingratey_input=this->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 804 804 } 805 805 … … 826 826 } 827 827 828 this->AddInput 2(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);828 this->AddInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum); 829 829 830 830 /*Clean up and return*/ … … 861 861 /*Get approximation*/ 862 862 int approximation; 863 this-> GetInput2Value(&approximation,ApproximationEnum);863 this->Element::GetInputValue(&approximation,ApproximationEnum); 864 864 865 865 /* Get node coordinates and dof list: */ … … 868 868 /*Retrieve all inputs we will be needing: */ 869 869 this->FindParam(&domaintype,DomainTypeEnum); 870 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);871 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);870 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 871 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 872 872 873 873 /* Start looping on the number of vertices: */ … … 903 903 904 904 /*Add Stress tensor components into inputs*/ 905 this->AddInput 2(DeviatoricStressxxEnum,&tau_xx[0],P1DGEnum);906 this->AddInput 2(DeviatoricStressxyEnum,&tau_xy[0],P1DGEnum);907 this->AddInput 2(DeviatoricStressxzEnum,&tau_xz[0],P1DGEnum);908 this->AddInput 2(DeviatoricStressyyEnum,&tau_yy[0],P1DGEnum);909 this->AddInput 2(DeviatoricStressyzEnum,&tau_yz[0],P1DGEnum);910 this->AddInput 2(DeviatoricStresszzEnum,&tau_zz[0],P1DGEnum);911 this->AddInput 2(DeviatoricStresseffectiveEnum,&tau_e[0],P1DGEnum);912 this->AddInput 2(DeviatoricStress1Enum,&tau_1[0],P1DGEnum);913 this->AddInput 2(DeviatoricStress2Enum,&tau_2[0],P1DGEnum);905 this->AddInput(DeviatoricStressxxEnum,&tau_xx[0],P1DGEnum); 906 this->AddInput(DeviatoricStressxyEnum,&tau_xy[0],P1DGEnum); 907 this->AddInput(DeviatoricStressxzEnum,&tau_xz[0],P1DGEnum); 908 this->AddInput(DeviatoricStressyyEnum,&tau_yy[0],P1DGEnum); 909 this->AddInput(DeviatoricStressyzEnum,&tau_yz[0],P1DGEnum); 910 this->AddInput(DeviatoricStresszzEnum,&tau_zz[0],P1DGEnum); 911 this->AddInput(DeviatoricStresseffectiveEnum,&tau_e[0],P1DGEnum); 912 this->AddInput(DeviatoricStress1Enum,&tau_1[0],P1DGEnum); 913 this->AddInput(DeviatoricStress2Enum,&tau_2[0],P1DGEnum); 914 914 915 915 /*Clean up and return*/ … … 931 931 932 932 /*Retrieve all inputs we will be needing: */ 933 Input 2* vx_input=this->GetInput2(EsaXmotionEnum); _assert_(vx_input);934 Input 2* vy_input=this->GetInput2(EsaYmotionEnum); _assert_(vy_input);933 Input* vx_input=this->GetInput(EsaXmotionEnum); _assert_(vx_input); 934 Input* vy_input=this->GetInput(EsaYmotionEnum); _assert_(vy_input); 935 935 936 936 /* Start looping on the number of vertices: */ … … 950 950 951 951 /*Add Stress tensor components into inputs*/ 952 this->AddInput 2(EsaStrainratexxEnum,&strain_xx[0],P1DGEnum);953 this->AddInput 2(EsaStrainrateyyEnum,&strain_yy[0],P1DGEnum);954 this->AddInput 2(EsaStrainratexyEnum,&strain_xy[0],P1DGEnum);955 this->AddInput 2(EsaRotationrateEnum,&vorticity_xy[0],P1DGEnum);952 this->AddInput(EsaStrainratexxEnum,&strain_xx[0],P1DGEnum); 953 this->AddInput(EsaStrainrateyyEnum,&strain_yy[0],P1DGEnum); 954 this->AddInput(EsaStrainratexyEnum,&strain_xy[0],P1DGEnum); 955 this->AddInput(EsaRotationrateEnum,&vorticity_xy[0],P1DGEnum); 956 956 957 957 /*Clean up and return*/ … … 963 963 if(!IsOnBase()){ 964 964 IssmDouble sigma_nn[3]={0.}; 965 this->AddInput 2(SigmaNNEnum,&sigma_nn[0],P1Enum);965 this->AddInput(SigmaNNEnum,&sigma_nn[0],P1Enum); 966 966 return; 967 967 } … … 983 983 this->FindParam(&domaintype,DomainTypeEnum); 984 984 if(domaintype==Domain2DhorizontalEnum) _error_("stress tensor calculation not supported for mesh of type " <<EnumToStringx(domaintype)<<", extrude mesh or call ComputeDeviatoricStressTensor"); 985 Input 2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);986 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);987 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);985 Input* pressure_input=this->GetInput(PressureEnum); _assert_(pressure_input); 986 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 987 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 988 988 989 989 /* Start looping on the number of vertices: */ … … 1010 1010 1011 1011 /*Add Stress tensor components into inputs*/ 1012 this->AddInput 2(SigmaNNEnum,&sigma_nn[0],P1Enum);1012 this->AddInput(SigmaNNEnum,&sigma_nn[0],P1Enum); 1013 1013 1014 1014 /*Clean up and return*/ … … 1039 1039 this->FindParam(&domaintype,DomainTypeEnum); 1040 1040 if(domaintype==Domain2DhorizontalEnum) _error_("stress tensor calculation not supported for mesh of type " <<EnumToStringx(domaintype)<<", extrude mesh or call ComputeDeviatoricStressTensor"); 1041 Input 2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);1042 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);1043 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);1041 Input* pressure_input=this->GetInput(PressureEnum); _assert_(pressure_input); 1042 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 1043 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 1044 1044 1045 1045 /* Start looping on the number of vertices: */ … … 1060 1060 1061 1061 /*Add Stress tensor components into inputs*/ 1062 this->AddInput 2(StressTensorxxEnum,&sigma_xx[0],P1DGEnum);1063 this->AddInput 2(StressTensorxyEnum,&sigma_xy[0],P1DGEnum);1064 this->AddInput 2(StressTensorxzEnum,&sigma_xz[0],P1DGEnum);1065 this->AddInput 2(StressTensoryyEnum,&sigma_yy[0],P1DGEnum);1066 this->AddInput 2(StressTensoryzEnum,&sigma_yz[0],P1DGEnum);1067 this->AddInput 2(StressTensorzzEnum,&sigma_zz[0],P1DGEnum);1062 this->AddInput(StressTensorxxEnum,&sigma_xx[0],P1DGEnum); 1063 this->AddInput(StressTensorxyEnum,&sigma_xy[0],P1DGEnum); 1064 this->AddInput(StressTensorxzEnum,&sigma_xz[0],P1DGEnum); 1065 this->AddInput(StressTensoryyEnum,&sigma_yy[0],P1DGEnum); 1066 this->AddInput(StressTensoryzEnum,&sigma_yz[0],P1DGEnum); 1067 this->AddInput(StressTensorzzEnum,&sigma_zz[0],P1DGEnum); 1068 1068 1069 1069 /*Clean up and return*/ … … 1071 1071 } 1072 1072 /*}}}*/ 1073 void Tria::Configure(Elements* elementsin, Loads* loadsin,Nodes* nodesin,Vertices *verticesin,Materials* materialsin, Parameters* parametersin,Inputs 2* inputs2in){/*{{{*/1073 void Tria::Configure(Elements* elementsin, Loads* loadsin,Nodes* nodesin,Vertices *verticesin,Materials* materialsin, Parameters* parametersin,Inputs* inputsin){/*{{{*/ 1074 1074 1075 1075 /*go into parameters and get the analysis_counter: */ … … 1098 1098 /*point parameters to real dataset: */ 1099 1099 this->parameters=parametersin; 1100 this->inputs 2=inputs2in;1100 this->inputs=inputsin; 1101 1101 }/*}}}*/ 1102 1102 void Tria::ControlInputSetGradient(IssmDouble* gradient,int control_enum,int control_index,int offset,int M,int N,int interp){/*{{{*/ … … 1106 1106 int idlist[NUMVERTICES]; 1107 1107 1108 ElementInput 2* input=this->inputs2->GetControlInput2Data(control_enum,"gradient"); _assert_(input);1108 ElementInput* input=this->inputs->GetControlInputData(control_enum,"gradient"); _assert_(input); 1109 1109 this->GetVerticesLidList(&lidlist[0]); 1110 1110 GradientIndexing(&idlist[0],control_index); 1111 1111 1112 1112 /*Get values on vertices*/ 1113 if(input->ObjectEnum()==TriaInput 2Enum && input->GetInputInterpolationType()==P1Enum){1113 if(input->ObjectEnum()==TriaInputEnum && input->GetInputInterpolationType()==P1Enum){ 1114 1114 _assert_(N==1); 1115 1115 for(int i=0;i<NUMVERTICES;i++){ … … 1118 1118 input->SetInput(P1Enum,NUMVERTICES,&lidlist[0],&values[0]); 1119 1119 } 1120 else if(input->ObjectEnum()==TriaInput 2Enum && input->GetInputInterpolationType()==P0Enum){1120 else if(input->ObjectEnum()==TriaInputEnum && input->GetInputInterpolationType()==P0Enum){ 1121 1121 _assert_(N==1); 1122 1122 input->SetInput(P0Enum,this->lid,gradient[idlist[0]]); 1123 1123 } 1124 else if(input->ObjectEnum()==TransientInput 2Enum){1124 else if(input->ObjectEnum()==TransientInputEnum){ 1125 1125 for(int n=0;n<N;n++){ 1126 1126 _error_("not implemented"); … … 1143 1143 1144 1144 /*Get relevant inputs*/ 1145 ElementInput 2* control_value = this->inputs2->GetControlInput2Data(control_enum,"value"); _assert_(control_value);1146 ElementInput 2* control_gradient = this->inputs2->GetControlInput2Data(control_enum,"gradient"); _assert_(control_gradient);1145 ElementInput* control_value = this->inputs->GetControlInputData(control_enum,"value"); _assert_(control_value); 1146 ElementInput* control_gradient = this->inputs->GetControlInputData(control_enum,"gradient"); _assert_(control_gradient); 1147 1147 1148 1148 if(control_interp==P1Enum){ … … 1210 1210 1211 1211 /*Update Levelset*/ 1212 this->AddInput 2(distanceenum,&ls[0],P1Enum);1212 this->AddInput(distanceenum,&ls[0],P1Enum); 1213 1213 } 1214 1214 /*}}}*/ … … 1300 1300 /*Get input:*/ 1301 1301 IssmDouble vel; 1302 Input 2* vel_input=this->GetInput2(VelEnum); _assert_(vel_input);1302 Input* vel_input=this->GetInput(VelEnum); _assert_(vel_input); 1303 1303 vel_input->GetInputAverage(&vel); 1304 1304 … … 1356 1356 floatingarea=(1-phi)*this->GetArea(); 1357 1357 if(scaled==true){ 1358 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);1358 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 1359 1359 scalefactor_input->GetInputAverage(&scalefactor); 1360 1360 floatingarea=floatingarea*scalefactor; … … 1371 1371 1372 1372 int approximation; 1373 this-> GetInput2Value(&approximation,ApproximationEnum);1373 this->Element::GetInputValue(&approximation,ApproximationEnum); 1374 1374 1375 1375 if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum || approximation==SSAHOApproximationEnum){ … … 1394 1394 GetVerticesCoordinates(&xyz_list); 1395 1395 /*Retrieve all inputs we will be needing: */ 1396 Input 2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);1397 Input 2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);1396 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 1397 Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input); 1398 1398 1399 1399 /*1. Recover stresses at the base*/ … … 1897 1897 *pxyz_front=xyz_front; 1898 1898 }/*}}}*/ 1899 Input 2* Tria::GetInput2(int inputenum){/*{{{*/1899 Input* Tria::GetInput(int inputenum){/*{{{*/ 1900 1900 1901 1901 /*Get Input from dataset*/ 1902 1902 if(this->iscollapsed){ 1903 PentaInput 2* input = this->inputs2->GetPentaInput(inputenum);1903 PentaInput* input = this->inputs->GetPentaInput(inputenum); 1904 1904 if(!input) return input; 1905 1905 … … 1908 1908 } 1909 1909 else{ 1910 TriaInput 2* input = this->inputs2->GetTriaInput(inputenum);1910 TriaInput* input = this->inputs->GetTriaInput(inputenum); 1911 1911 if(!input) return input; 1912 1912 … … 1915 1915 } 1916 1916 }/*}}}*/ 1917 Input 2* Tria::GetInput2(int inputenum,IssmDouble time){/*{{{*/1917 Input* Tria::GetInput(int inputenum,IssmDouble time){/*{{{*/ 1918 1918 1919 1919 /*Get Input from dataset*/ 1920 1920 if(this->iscollapsed){ 1921 PentaInput 2* input = this->inputs2->GetPentaInput(inputenum,time);1921 PentaInput* input = this->inputs->GetPentaInput(inputenum,time); 1922 1922 if(!input) return input; 1923 1923 … … 1926 1926 } 1927 1927 else{ 1928 TriaInput 2* input = this->inputs2->GetTriaInput(inputenum,time);1928 TriaInput* input = this->inputs->GetTriaInput(inputenum,time); 1929 1929 if(!input) return input; 1930 1930 … … 1933 1933 } 1934 1934 }/*}}}*/ 1935 Input 2* Tria::GetInput2(int inputenum,IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/1935 Input* Tria::GetInput(int inputenum,IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/ 1936 1936 1937 1937 /*Get Input from dataset*/ 1938 1938 if(this->iscollapsed){ 1939 PentaInput 2* input = this->inputs2->GetPentaInput(inputenum,start_time,end_time,averaging_method);1939 PentaInput* input = this->inputs->GetPentaInput(inputenum,start_time,end_time,averaging_method); 1940 1940 if(!input) return input; 1941 1941 … … 1944 1944 } 1945 1945 else{ 1946 TriaInput 2* input = this->inputs2->GetTriaInput(inputenum,start_time,end_time,averaging_method);1946 TriaInput* input = this->inputs->GetTriaInput(inputenum,start_time,end_time,averaging_method); 1947 1947 if(!input) return input; 1948 1948 … … 1951 1951 } 1952 1952 }/*}}}*/ 1953 void Tria::GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value){/*{{{*/1953 void Tria::GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/ 1954 1954 1955 1955 /*Checks in debugging mode*/ … … 1969 1969 } 1970 1970 /*}}}*/ 1971 void Tria::GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value){/*{{{*/1971 void Tria::GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/ 1972 1972 1973 1973 /*Checks in debugging mode*/ … … 1991 1991 } 1992 1992 /*}}}*/ 1993 void Tria::InputServe(Input 2* input_in){/*{{{*/1993 void Tria::InputServe(Input* input_in){/*{{{*/ 1994 1994 1995 1995 /*Return NULL pointer if input is NULL*/ … … 1998 1998 /*Get Input from dataset*/ 1999 1999 if(this->iscollapsed){ 2000 _assert_(input_in->ObjectEnum()==PentaInput 2Enum);2001 PentaInput 2* input = xDynamicCast<PentaInput2*>(input_in);2000 _assert_(input_in->ObjectEnum()==PentaInputEnum); 2001 PentaInput* input = xDynamicCast<PentaInput*>(input_in); 2002 2002 2003 2003 /*Intermediaries*/ … … 2030 2030 } 2031 2031 else{ 2032 _assert_(input_in->ObjectEnum()==TriaInput 2Enum);2033 TriaInput 2* input = xDynamicCast<TriaInput2*>(input_in);2032 _assert_(input_in->ObjectEnum()==TriaInputEnum); 2033 TriaInput* input = xDynamicCast<TriaInput*>(input_in); 2034 2034 2035 2035 /*Intermediaries*/ … … 2061 2061 } 2062 2062 }/*}}}*/ 2063 DatasetInput 2* Tria::GetDatasetInput2(int inputenum){/*{{{*/2064 2065 DatasetInput 2* datasetinput = this->inputs2->GetDatasetInput2(inputenum);2063 DatasetInput* Tria::GetDatasetInput(int inputenum){/*{{{*/ 2064 2065 DatasetInput* datasetinput = this->inputs->GetDatasetInput(inputenum); 2066 2066 if(!datasetinput) return NULL; 2067 2067 … … 2071 2071 if(this->iscollapsed){ 2072 2072 2073 PentaInput 2* input = datasetinput->GetPentaInputByOffset(i); _assert_(input);2073 PentaInput* input = datasetinput->GetPentaInputByOffset(i); _assert_(input); 2074 2074 2075 2075 /*Intermediaries*/ … … 2102 2102 else{ 2103 2103 2104 TriaInput 2* input = datasetinput->GetTriaInputByOffset(i); _assert_(input);2104 TriaInput* input = datasetinput->GetTriaInputByOffset(i); _assert_(input); 2105 2105 2106 2106 /*Intermediaries*/ … … 2138 2138 2139 2139 /*Get transient input time steps*/ 2140 TransientInput 2* transient_input = this->inputs2->GetTransientInput(transientinput_enum);2141 TriaInput 2* averaged_input = transient_input->GetTriaInput(start_time,end_time,averaging_method);2142 Input 2* averaged_copy = averaged_input->copy();2140 TransientInput* transient_input = this->inputs->GetTransientInput(transientinput_enum); 2141 TriaInput* averaged_input = transient_input->GetTriaInput(start_time,end_time,averaging_method); 2142 Input* averaged_copy = averaged_input->copy(); 2143 2143 2144 2144 averaged_copy->ChangeEnum(averagedinput_enum); 2145 this->inputs 2->AddInput(averaged_copy);2145 this->inputs->AddInput(averaged_copy); 2146 2146 } 2147 2147 /*}}}*/ … … 2151 2151 int numtimesteps; 2152 2152 IssmDouble *timesteps = NULL; 2153 TransientInput 2* transient_input = this->inputs2->GetTransientInput(input_enum);2153 TransientInput* transient_input = this->inputs->GetTransientInput(input_enum); 2154 2154 2155 2155 transient_input->GetAllTimes(×teps,&numtimesteps); … … 2171 2171 for(int i=0;i<numsteps;i++){ 2172 2172 if((iscurrenttime_included==false) && (i==(numsteps-1))){ 2173 Input 2* input = this->GetInput2(input_enum,currenttime);2173 Input* input = this->GetInput(input_enum,currenttime); 2174 2174 input->GetInputAverage(&values[i]); 2175 2175 times[i]=currenttime; 2176 2176 } 2177 2177 else{ 2178 TriaInput 2* input = transient_input->GetTriaInput(i);2178 TriaInput* input = transient_input->GetTriaInput(i); 2179 2179 this->InputServe(input); 2180 2180 input->GetInputAverage(&values[i]); … … 2191 2191 void Tria::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){/*{{{*/ 2192 2192 2193 Input 2* input=this->GetInput2(enumtype);2193 Input* input=this->GetInput(enumtype); 2194 2194 if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria"); 2195 2195 … … 2205 2205 void Tria::GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype){/*{{{*/ 2206 2206 2207 Input 2* input=this->GetInput2(enumtype);2207 Input* input=this->GetInput(enumtype); 2208 2208 if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria"); 2209 2209 … … 2419 2419 2420 2420 /*Get input (either in element or material)*/ 2421 ElementInput 2* input=this->inputs2->GetControlInput2Data(control_enum,data); _assert_(input);2421 ElementInput* input=this->inputs->GetControlInputData(control_enum,data); _assert_(input); 2422 2422 2423 2423 /*Intermediaries*/ … … 2441 2441 /*Flag as collapsed for later use*/ 2442 2442 if(this->iscollapsed){ 2443 xDynamicCast<PentaInput 2*>(input)->SetServeCollapsed(true);2443 xDynamicCast<PentaInput*>(input)->SetServeCollapsed(true); 2444 2444 } 2445 2445 … … 2459 2459 2460 2460 /*Get input*/ 2461 ElementInput 2* input=this->inputs2->GetControlInput2Data(control_enum,data); _assert_(input);2461 ElementInput* input=this->inputs->GetControlInputData(control_enum,data); _assert_(input); 2462 2462 2463 2463 /*Lid list once for all*/ … … 2467 2467 /*Check what input we are dealing with*/ 2468 2468 switch(input->ObjectEnum()){ 2469 case TriaInput 2Enum:2469 case TriaInputEnum: 2470 2470 { 2471 2471 IssmDouble values[NUMVERTICES]; 2472 2472 int idlist[NUMVERTICES]; 2473 2473 2474 TriaInput 2* triainput = xDynamicCast<TriaInput2*>(input);2474 TriaInput* triainput = xDynamicCast<TriaInput*>(input); 2475 2475 2476 2476 /*Create list of indices and values for global vector*/ … … 2494 2494 case TransientInputEnum: 2495 2495 { 2496 TransientInput 2* transientinput = xDynamicCast<TransientInput2*>(input);2496 TransientInput* transientinput = xDynamicCast<TransientInput*>(input); 2497 2497 int N = transientinput->numtimesteps; 2498 2498 int* M = NULL; … … 2573 2573 groundedarea=phi*this->GetArea(); 2574 2574 if(scaled==true){ 2575 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);2575 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 2576 2576 scalefactor_input->GetInputAverage(&scalefactor); 2577 2577 groundedarea=groundedarea*scalefactor; … … 2653 2653 IssmDouble vx,vy,thickness,Jdet; 2654 2654 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 2655 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);2656 Input 2* vx_input=NULL;2657 Input 2* vy_input=NULL;2655 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 2656 Input* vx_input=NULL; 2657 Input* vy_input=NULL; 2658 2658 if(domaintype==Domain2DhorizontalEnum){ 2659 vx_input=this->GetInput 2(VxEnum); _assert_(vx_input);2660 vy_input=this->GetInput 2(VyEnum); _assert_(vy_input);2659 vx_input=this->GetInput(VxEnum); _assert_(vx_input); 2660 vy_input=this->GetInput(VyEnum); _assert_(vy_input); 2661 2661 } 2662 2662 else{ 2663 vx_input=this->GetInput 2(VxAverageEnum); _assert_(vx_input);2664 vy_input=this->GetInput 2(VyAverageEnum); _assert_(vy_input);2663 vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input); 2664 vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input); 2665 2665 } 2666 2666 … … 2782 2782 IssmDouble vx,vy,thickness,Jdet; 2783 2783 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 2784 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);2785 Input 2* vx_input=NULL;2786 Input 2* vy_input=NULL;2784 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 2785 Input* vx_input=NULL; 2786 Input* vy_input=NULL; 2787 2787 if(domaintype==Domain2DhorizontalEnum){ 2788 vx_input=this->GetInput 2(VxEnum); _assert_(vx_input);2789 vy_input=this->GetInput 2(VyEnum); _assert_(vy_input);2788 vx_input=this->GetInput(VxEnum); _assert_(vx_input); 2789 vy_input=this->GetInput(VyEnum); _assert_(vy_input); 2790 2790 } 2791 2791 else{ 2792 vx_input=this->GetInput 2(VxAverageEnum); _assert_(vx_input);2793 vy_input=this->GetInput 2(VyAverageEnum); _assert_(vy_input);2792 vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input); 2793 vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input); 2794 2794 } 2795 2795 … … 2909 2909 IssmDouble vx,vy,thickness,Jdet; 2910 2910 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 2911 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);2912 Input 2* vx_input=NULL;2913 Input 2* vy_input=NULL;2911 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 2912 Input* vx_input=NULL; 2913 Input* vy_input=NULL; 2914 2914 if(domaintype==Domain2DhorizontalEnum){ 2915 vx_input=this->GetInput 2(VxEnum); _assert_(vx_input);2916 vy_input=this->GetInput 2(VyEnum); _assert_(vy_input);2915 vx_input=this->GetInput(VxEnum); _assert_(vx_input); 2916 vy_input=this->GetInput(VyEnum); _assert_(vy_input); 2917 2917 } 2918 2918 else{ 2919 vx_input=this->GetInput 2(VxAverageEnum); _assert_(vx_input);2920 vy_input=this->GetInput 2(VyAverageEnum); _assert_(vy_input);2919 vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input); 2920 vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input); 2921 2921 } 2922 2922 … … 3015 3015 area_base=this->GetArea(); 3016 3016 if(scaled==true){ 3017 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);3017 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 3018 3018 scalefactor_input->GetInputAverage(&scalefactor); 3019 3019 area_base=area_base*scalefactor; … … 3021 3021 3022 3022 /*Now get the average height*/ 3023 Input 2* surface_input = this->GetInput2(SurfaceEnum); _assert_(surface_input);3024 Input 2* base_input = this->GetInput2(BaseEnum); _assert_(base_input);3023 Input* surface_input = this->GetInput(SurfaceEnum); _assert_(surface_input); 3024 Input* base_input = this->GetInput(BaseEnum); _assert_(base_input); 3025 3025 surface_input->GetInputAverage(&surface); 3026 3026 base_input->GetInputAverage(&base); … … 3059 3059 base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1])); 3060 3060 if(scaled==true){ 3061 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);3061 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 3062 3062 scalefactor_input->GetInputAverage(&scalefactor); 3063 3063 base=base*scalefactor; … … 3065 3065 3066 3066 /*Now get the average height and bathymetry*/ 3067 Input 2* surface_input = this->GetInput2(SurfaceEnum); _assert_(surface_input);3068 Input 2* base_input = this->GetInput2(BaseEnum); _assert_(base_input);3069 Input 2* bed_input = this->GetInput2(BedEnum); _assert_(bed_input);3067 Input* surface_input = this->GetInput(SurfaceEnum); _assert_(surface_input); 3068 Input* base_input = this->GetInput(BaseEnum); _assert_(base_input); 3069 Input* bed_input = this->GetInput(BedEnum); _assert_(bed_input); 3070 3070 if(!bed_input) _error_("Could not find bed"); 3071 3071 surface_input->GetInputAverage(&surface); … … 3080 3080 3081 3081 /*New input*/ 3082 Input 2* oldinput=NULL;3083 Input 2* newinput=NULL;3082 Input* oldinput=NULL; 3083 Input* newinput=NULL; 3084 3084 3085 3085 /*copy input of enum_type*/ 3086 oldinput=this->GetInput 2(enum_type);3086 oldinput=this->GetInput(enum_type); 3087 3087 if(!oldinput)_error_("could not find old input with enum: " << EnumToStringx(enum_type)); 3088 3088 newinput=oldinput->copy(); … … 3143 3143 3144 3144 /*Add input to the element: */ 3145 this->AddInput 2(enum_type,values,this->element_type);3145 this->AddInput(enum_type,values,this->element_type); 3146 3146 3147 3147 /*Free ressources:*/ … … 3172 3172 } 3173 3173 /*update input*/ 3174 inputs 2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);3174 inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values); 3175 3175 break; 3176 3176 … … 3183 3183 } 3184 3184 /*update input*/ 3185 inputs 2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);3185 inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values); 3186 3186 break; 3187 3187 … … 3194 3194 } 3195 3195 /*update input*/ 3196 inputs 2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);3196 inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values); 3197 3197 break; 3198 3198 … … 3223 3223 } 3224 3224 if(this->element_type==P1Enum){ 3225 inputs 2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);3225 inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values); 3226 3226 } 3227 3227 else{ 3228 inputs 2->SetTriaInput(name,this->element_type,this->lid,numnodes,values);3228 inputs->SetTriaInput(name,this->element_type,this->lid,numnodes,values); 3229 3229 } 3230 3230 break; … … 3236 3236 /*update input*/ 3237 3237 //this->inputs->AddInput(new DoubleInput(name,value)); 3238 //inputs 2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);3238 //inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values); 3239 3239 _error_("not implemented"); 3240 3240 break; … … 3354 3354 /*intermediary: */ 3355 3355 IssmDouble* values=NULL; 3356 Input 2* thickness_input=NULL;3356 Input* thickness_input=NULL; 3357 3357 IssmDouble thickness; 3358 3358 IssmDouble weight; … … 3372 3372 3373 3373 /*Retrieve inputs required:*/ 3374 thickness_input=this->GetInput 2(ThicknessEnum); _assert_(thickness_input);3374 thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 3375 3375 3376 3376 /*Retrieve material parameters: */ … … 3434 3434 /*Get velocity and thickness*/ 3435 3435 this->parameters->FindParam(&domaintype,DomainTypeEnum); 3436 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);3437 Input 2* vx_input=NULL;3438 Input 2* vy_input=NULL;3436 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 3437 Input* vx_input=NULL; 3438 Input* vy_input=NULL; 3439 3439 if(domaintype==Domain2DhorizontalEnum){ 3440 vx_input=this->GetInput 2(VxEnum); _assert_(vx_input);3441 vy_input=this->GetInput 2(VyEnum); _assert_(vy_input);3440 vx_input=this->GetInput(VxEnum); _assert_(vx_input); 3441 vy_input=this->GetInput(VyEnum); _assert_(vy_input); 3442 3442 } 3443 3443 else{ 3444 vx_input=this->GetInput 2(VxAverageEnum); _assert_(vx_input);3445 vy_input=this->GetInput 2(VyAverageEnum); _assert_(vy_input);3444 vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input); 3445 vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input); 3446 3446 } 3447 3447 … … 3482 3482 /*Retrieve all inputs we will be needing: */ 3483 3483 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 3484 Input 2* model_input=this->GetInput2(modelenum); _assert_(model_input);3485 Input 2* observation_input=this->GetInput2(observationenum);_assert_(observation_input);3486 Input 2* weights_input =this->GetInput2(weightsenum); _assert_(weights_input);3484 Input* model_input=this->GetInput(modelenum); _assert_(model_input); 3485 Input* observation_input=this->GetInput(observationenum);_assert_(observation_input); 3486 Input* weights_input =this->GetInput(weightsenum); _assert_(weights_input); 3487 3487 3488 3488 /* Start looping on the number of gaussian points: */ … … 3523 3523 /*Retrieve all inputs we will be needing: */ 3524 3524 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 3525 Input 2* weights_input =this->GetInput2(weightsenum); _assert_(weights_input);3525 Input* weights_input =this->GetInput(weightsenum); _assert_(weights_input); 3526 3526 3527 3527 /* Start looping on the number of gaussian points: */ … … 3662 3662 3663 3663 /*First, serarch the input: */ 3664 Input 2* data=this->GetInput2(natureofdataenum);3664 Input* data=this->GetInput(natureofdataenum); 3665 3665 3666 3666 /*figure out if we have the vertex id: */ … … 3827 3827 3828 3828 /*For FS only: we want the CS to be tangential to the bedrock*/ 3829 this-> GetInput2Value(&approximation,ApproximationEnum);3829 this->Element::GetInputValue(&approximation,ApproximationEnum); 3830 3830 if(!HasNodeOnBase() || approximation!=FSApproximationEnum) return; 3831 3831 3832 3832 /*Get inputs*/ 3833 Input 2* slope_input=this->GetInput2(BedSlopeXEnum); _assert_(slope_input);3834 Input 2* groundedicelevelset_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input);3833 Input* slope_input=this->GetInput(BedSlopeXEnum); _assert_(slope_input); 3834 Input* groundedicelevelset_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input); 3835 3835 vertexonbase = xNew<IssmDouble>(numnodes); 3836 3836 this->GetInputListOnNodesVelocity(&vertexonbase[0],MeshVertexonbaseEnum); … … 3898 3898 3899 3899 /*Get inputs*/ 3900 Input 2* bed_input = this->GetInput2(BedEnum); _assert_(bed_input);3901 Input 2* qsg_input = this->GetInput2(FrontalForcingsSubglacialDischargeEnum); _assert_(qsg_input);3902 Input 2* TF_input = this->GetInput2(FrontalForcingsThermalForcingEnum); _assert_(TF_input);3900 Input* bed_input = this->GetInput(BedEnum); _assert_(bed_input); 3901 Input* qsg_input = this->GetInput(FrontalForcingsSubglacialDischargeEnum); _assert_(qsg_input); 3902 Input* TF_input = this->GetInput(FrontalForcingsThermalForcingEnum); _assert_(TF_input); 3903 3903 Element::GetInputListOnVertices(&basinid[0],FrontalForcingsBasinIdEnum); 3904 3904 … … 3933 3933 3934 3934 /*Add input*/ 3935 this->AddInput 2(CalvingMeltingrateEnum,&meltrates[0],P1Enum);3935 this->AddInput(CalvingMeltingrateEnum,&meltrates[0],P1Enum); 3936 3936 3937 3937 /*Cleanup and return*/ … … 3966 3966 if(!IsInputEnum(control_enum)) return; 3967 3967 3968 ElementInput 2* input=this->inputs2->GetControlInput2Data(control_enum,"value"); _assert_(input);3968 ElementInput* input=this->inputs->GetControlInputData(control_enum,"value"); _assert_(input); 3969 3969 this->GetVerticesLidList(&lidlist[0]); 3970 3970 GradientIndexing(&idlist[0],control_index); 3971 3971 3972 3972 /*Get values on vertices*/ 3973 if(input->ObjectEnum()==TriaInput 2Enum && input->GetInputInterpolationType()==P1Enum){3973 if(input->ObjectEnum()==TriaInputEnum && input->GetInputInterpolationType()==P1Enum){ 3974 3974 _assert_(N==1); 3975 3975 for(int i=0;i<NUMVERTICES;i++){ … … 3978 3978 input->SetInput(P1Enum,NUMVERTICES,&lidlist[0],&values[0]); 3979 3979 } 3980 else if(input->ObjectEnum()==TriaInput 2Enum && input->GetInputInterpolationType()==P0Enum){3980 else if(input->ObjectEnum()==TriaInputEnum && input->GetInputInterpolationType()==P0Enum){ 3981 3981 _assert_(N==1); 3982 3982 input->SetInput(P0Enum,this->lid,vector[idlist[0]]); 3983 3983 } 3984 else if(input->ObjectEnum()==TransientInput 2Enum){3984 else if(input->ObjectEnum()==TransientInputEnum){ 3985 3985 for(int n=0;n<N;n++){ 3986 3986 _error_("not implemented"); … … 4011 4011 void Tria::SetElementInput(int enum_in,IssmDouble value){/*{{{*/ 4012 4012 4013 this->SetElementInput(this->inputs 2,enum_in,value);4014 4015 } 4016 /*}}}*/ 4017 void Tria::SetElementInput(Inputs 2* inputs2,int enum_in,IssmDouble value){/*{{{*/4018 4019 _assert_(inputs 2);4020 inputs 2->SetTriaInput(enum_in,P0Enum,this->lid,value);4021 4022 } 4023 /*}}}*/ 4024 void Tria::SetElementInput(Inputs 2* inputs2,int numindices,int* indices,IssmDouble* values,int enum_in){/*{{{*/4025 4026 _assert_(inputs 2);4027 inputs 2->SetTriaInput(enum_in,P1Enum,numindices,indices,values);4013 this->SetElementInput(this->inputs,enum_in,value); 4014 4015 } 4016 /*}}}*/ 4017 void Tria::SetElementInput(Inputs* inputs,int enum_in,IssmDouble value){/*{{{*/ 4018 4019 _assert_(inputs); 4020 inputs->SetTriaInput(enum_in,P0Enum,this->lid,value); 4021 4022 } 4023 /*}}}*/ 4024 void Tria::SetElementInput(Inputs* inputs,int numindices,int* indices,IssmDouble* values,int enum_in){/*{{{*/ 4025 4026 _assert_(inputs); 4027 inputs->SetTriaInput(enum_in,P1Enum,numindices,indices,values); 4028 4028 4029 4029 } … … 4059 4059 seg->sid=this->sid; 4060 4060 seg->lid=this->lid; 4061 seg->inputs 2=this->inputs2;4061 seg->inputs=this->inputs; 4062 4062 seg->parameters=this->parameters; 4063 4063 seg->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED) … … 4112 4112 4113 4113 /*Retrieve all inputs we will need*/ 4114 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);4115 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);4114 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 4115 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 4116 4116 4117 4117 /* Start looping on the number of vertices: */ … … 4136 4136 4137 4137 /*Add input*/ 4138 this->AddInput 2(StrainRateparallelEnum,&strainparallel[0],P1DGEnum);4138 this->AddInput(StrainRateparallelEnum,&strainparallel[0],P1DGEnum); 4139 4139 4140 4140 /*Clean up and return*/ … … 4158 4158 4159 4159 /*Retrieve all inputs we will need*/ 4160 Input 2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);4161 Input 2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);4160 Input* vx_input=this->GetInput(VxEnum); _assert_(vx_input); 4161 Input* vy_input=this->GetInput(VyEnum); _assert_(vy_input); 4162 4162 4163 4163 /* Start looping on the number of vertices: */ … … 4182 4182 4183 4183 /*Add input*/ 4184 this->AddInput 2(StrainRateperpendicularEnum,&strainperpendicular[0],P1DGEnum);4184 this->AddInput(StrainRateperpendicularEnum,&strainperpendicular[0],P1DGEnum); 4185 4185 4186 4186 /*Clean up and return*/ … … 4230 4230 4231 4231 /*Get for Vx and Vy, the max of abs value: */ 4232 Input 2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);4233 Input 2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);4232 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 4233 Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input); 4234 4234 IssmDouble maxabsvx = vx_input->GetInputMaxAbs(); 4235 4235 IssmDouble maxabsvy = vy_input->GetInputMaxAbs(); … … 4359 4359 IssmDouble calvingratex,calvingratey,thickness,Jdet; 4360 4360 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 4361 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);4362 Input 2* calvingratex_input=NULL;4363 Input 2* calvingratey_input=NULL;4361 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 4362 Input* calvingratex_input=NULL; 4363 Input* calvingratey_input=NULL; 4364 4364 if(domaintype==Domain2DhorizontalEnum){ 4365 calvingratex_input=this->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);4366 calvingratey_input=this->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);4365 calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 4366 calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 4367 4367 } 4368 4368 else{ 4369 calvingratex_input=this->GetInput 2(CalvingratexAverageEnum); _assert_(calvingratex_input);4370 calvingratey_input=this->GetInput 2(CalvingrateyAverageEnum); _assert_(calvingratey_input);4369 calvingratex_input=this->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 4370 calvingratey_input=this->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 4371 4371 } 4372 4372 … … 4488 4488 IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet; 4489 4489 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 4490 Input 2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);4491 Input 2* calvingratex_input=NULL;4492 Input 2* calvingratey_input=NULL;4493 Input 2* vx_input=NULL;4494 Input 2* vy_input=NULL;4495 Input 2* meltingrate_input=NULL;4490 Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input); 4491 Input* calvingratex_input=NULL; 4492 Input* calvingratey_input=NULL; 4493 Input* vx_input=NULL; 4494 Input* vy_input=NULL; 4495 Input* meltingrate_input=NULL; 4496 4496 if(domaintype==Domain2DhorizontalEnum){ 4497 calvingratex_input=this->GetInput 2(CalvingratexEnum); _assert_(calvingratex_input);4498 calvingratey_input=this->GetInput 2(CalvingrateyEnum); _assert_(calvingratey_input);4499 vx_input=this->GetInput 2(VxEnum); _assert_(vx_input);4500 vy_input=this->GetInput 2(VyEnum); _assert_(vy_input);4501 meltingrate_input=this->GetInput 2(CalvingMeltingrateEnum); _assert_(meltingrate_input);4497 calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 4498 calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 4499 vx_input=this->GetInput(VxEnum); _assert_(vx_input); 4500 vy_input=this->GetInput(VyEnum); _assert_(vy_input); 4501 meltingrate_input=this->GetInput(CalvingMeltingrateEnum); _assert_(meltingrate_input); 4502 4502 } 4503 4503 else{ 4504 calvingratex_input=this->GetInput 2(CalvingratexAverageEnum); _assert_(calvingratex_input);4505 calvingratey_input=this->GetInput 2(CalvingrateyAverageEnum); _assert_(calvingratey_input);4504 calvingratex_input=this->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 4505 calvingratey_input=this->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 4506 4506 } 4507 4507 … … 4543 4543 /*Get material parameters :*/ 4544 4544 rho_ice=FindParam(MaterialsRhoIceEnum); 4545 Input 2* floatingmelt_input = this->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input);4546 Input 2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);4547 Input 2* scalefactor_input = NULL;4545 Input* floatingmelt_input = this->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input); 4546 Input* gllevelset_input = this->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 4547 Input* scalefactor_input = NULL; 4548 4548 if(scaled==true){ 4549 scalefactor_input = this->GetInput 2(MeshScaleFactorEnum); _assert_(scalefactor_input);4549 scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 4550 4550 } 4551 4551 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); … … 4588 4588 /*Get material parameters :*/ 4589 4589 rho_ice=FindParam(MaterialsRhoIceEnum); 4590 Input 2* groundedmelt_input = this->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input);4591 Input 2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);4592 Input 2* scalefactor_input = NULL;4590 Input* groundedmelt_input = this->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input); 4591 Input* gllevelset_input = this->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 4592 Input* scalefactor_input = NULL; 4593 4593 if(scaled==true){ 4594 scalefactor_input = this->GetInput 2(MeshScaleFactorEnum); _assert_(scalefactor_input);4594 scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 4595 4595 } 4596 4596 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); … … 4638 4638 4639 4639 /*Now get the average SMB over the element*/ 4640 Input 2* smb_input = this->GetInput2(SmbMassBalanceEnum); _assert_(smb_input);4640 Input* smb_input = this->GetInput(SmbMassBalanceEnum); _assert_(smb_input); 4641 4641 smb_input->GetInputAverage(&smb); // average smb on element in m ice s-1 4642 4642 if(scaled==true){ 4643 Input 2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);4643 Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input); 4644 4644 scalefactor_input->GetInputAverage(&scalefactor);// average scalefactor on element 4645 4645 } … … 4653 4653 } 4654 4654 /*}}}*/ 4655 void Tria::Update(Inputs 2* inputs2,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){/*{{{*/4655 void Tria::Update(Inputs* inputs,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){/*{{{*/ 4656 4656 4657 4657 /*Intermediaries*/ … … 4807 4807 4808 4808 this->parameters->FindParam(&extrusioninput,InputToExtrudeEnum); 4809 Input 2* input = this->GetInput2(extrusioninput); _assert_(input);4810 Input 2* onbase = this->GetInput2(MeshVertexonbaseEnum); _assert_(onbase);4809 Input* input = this->GetInput(extrusioninput); _assert_(input); 4810 Input* onbase = this->GetInput(MeshVertexonbaseEnum); _assert_(onbase); 4811 4811 4812 4812 GaussTria* gauss=new GaussTria(); … … 4831 4831 4832 4832 this->parameters->FindParam(&extrusioninput,InputToExtrudeEnum); 4833 Input 2* input = this->GetInput2(extrusioninput); _assert_(input);4834 Input 2* onsurf = this->GetInput2(MeshVertexonsurfaceEnum); _assert_(onsurf);4833 Input* input = this->GetInput(extrusioninput); _assert_(input); 4834 Input* onsurf = this->GetInput(MeshVertexonsurfaceEnum); _assert_(onsurf); 4835 4835 4836 4836 GaussTria* gauss=new GaussTria(); … … 4996 4996 4997 4997 /*recover mantle viscosity: */ 4998 Input 2* mantle_viscosity_input=this->GetInput2(GiaMantleViscosityEnum);4998 Input* mantle_viscosity_input=this->GetInput(GiaMantleViscosityEnum); 4999 4999 if (!mantle_viscosity_input)_error_("mantle viscosity input needed to compute gia deflection!"); 5000 5000 mantle_viscosity_input->GetInputAverage(&mantle_viscosity); 5001 5001 5002 5002 /*recover lithosphere thickness: */ 5003 Input 2* lithosphere_thickness_input=this->GetInput2(GiaLithosphereThicknessEnum);5003 Input* lithosphere_thickness_input=this->GetInput(GiaLithosphereThicknessEnum); 5004 5004 if (!lithosphere_thickness_input)_error_("lithosphere thickness input needed to compute gia deflection!"); 5005 5005 lithosphere_thickness_input->GetInputAverage(&lithosphere_thickness); … … 5085 5085 5086 5086 /*Compute ice thickness change: */ 5087 Input 2* deltathickness_input=this->GetInput2(EsaDeltathicknessEnum);5087 Input* deltathickness_input=this->GetInput(EsaDeltathicknessEnum); 5088 5088 if (!deltathickness_input)_error_("delta thickness input needed to compute elastic adjustment!"); 5089 5089 deltathickness_input->GetInputAverage(&I); … … 5223 5223 5224 5224 /*Compute ice thickness change: */ 5225 Input 2* deltathickness_input=this->GetInput2(EsaDeltathicknessEnum);5225 Input* deltathickness_input=this->GetInput(EsaDeltathicknessEnum); 5226 5226 if (!deltathickness_input)_error_("delta thickness input needed to compute elastic adjustment!"); 5227 5227 deltathickness_input->GetInputAverage(&I); … … 5363 5363 5364 5364 /*Get area of element:*/ 5365 this-> GetInput2Value(&area,AreaEnum);5365 this->Element::GetInputValue(&area,AreaEnum); 5366 5366 5367 5367 /*Average Sg over vertices:*/ … … 5386 5386 /*Compute area of element:*/ 5387 5387 IssmDouble area,planetarea; 5388 this-> GetInput2Value(&area,AreaEnum);5388 this->Element::GetInputValue(&area,AreaEnum); 5389 5389 5390 5390 /*recover earth area: */ … … 5458 5458 5459 5459 /*Compute ice thickness change: */ 5460 Input 2* deltathickness_input=this->GetInput2(SurfaceloadIceThicknessChangeEnum);5460 Input* deltathickness_input=this->GetInput(SurfaceloadIceThicknessChangeEnum); 5461 5461 if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!"); 5462 5462 deltathickness_input->GetInputAverage(&I); … … 5475 5475 5476 5476 /*are we fully floating:*/ 5477 Input 2* gr_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input);5477 Input* gr_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input); 5478 5478 if (gr_input->GetInputMax()<=0)masks->isfullyfloating[this->lid]=true; 5479 5479 else masks->isfullyfloating[this->lid]=false; … … 5622 5622 5623 5623 /*Add in inputs:*/ 5624 this->inputs 2->SetArrayInput(SealevelriseIndicesEnum,this->lid,indices,gsize);5625 this->inputs 2->SetArrayInput(SealevelriseGEnum,this->lid,G,gsize);5626 this->inputs 2->SetArrayInput(SealevelriseGUEnum,this->lid,GU,gsize);5624 this->inputs->SetArrayInput(SealevelriseIndicesEnum,this->lid,indices,gsize); 5625 this->inputs->SetArrayInput(SealevelriseGEnum,this->lid,G,gsize); 5626 this->inputs->SetArrayInput(SealevelriseGUEnum,this->lid,GU,gsize); 5627 5627 if(horiz){ 5628 this->inputs 2->SetArrayInput(SealevelriseGNEnum,this->lid,GN,gsize);5629 this->inputs 2->SetArrayInput(SealevelriseGEEnum,this->lid,GE,gsize);5630 } 5631 this->inputs 2->SetDoubleInput(AreaEnum,this->lid,area);5632 this->AddInput 2(SealevelAreaEnum,&area,P0Enum);5628 this->inputs->SetArrayInput(SealevelriseGNEnum,this->lid,GN,gsize); 5629 this->inputs->SetArrayInput(SealevelriseGEEnum,this->lid,GE,gsize); 5630 } 5631 this->inputs->SetDoubleInput(AreaEnum,this->lid,area); 5632 this->AddInput(SealevelAreaEnum,&area,P0Enum); 5633 5633 5634 5634 /*Free allocations:*/ … … 5696 5696 if(!masks->isiceonly[this->lid]){ 5697 5697 #ifdef _ISSM_DEBUG_ 5698 constant=0; this->AddInput 2(SealevelEustaticMaskEnum,&constant,P0Enum);5698 constant=0; this->AddInput(SealevelEustaticMaskEnum,&constant,P0Enum); 5699 5699 #endif 5700 5700 *peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage! … … 5706 5706 constant=0; 5707 5707 #ifdef _ISSM_DEBUG_ 5708 this->AddInput 2(SealevelEustaticMaskEnum,&constant,P0Enum);5708 this->AddInput(SealevelEustaticMaskEnum,&constant,P0Enum); 5709 5709 #endif 5710 5710 *peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage! … … 5718 5718 constant=1; 5719 5719 #ifdef _ISSM_DEBUG_ 5720 this->AddInput 2(SealevelEustaticMaskEnum,&constant,P0Enum);5720 this->AddInput(SealevelEustaticMaskEnum,&constant,P0Enum); 5721 5721 #endif 5722 5722 … … 5729 5729 5730 5730 /*retrieve precomputed G:*/ 5731 this->inputs 2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);5731 this->inputs->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize); 5732 5732 5733 5733 /*Get area of element: precomputed in the sealevelrise_core_geometry:*/ 5734 this-> GetInput2Value(&area,AreaEnum);5734 this->Element::GetInputValue(&area,AreaEnum); 5735 5735 5736 5736 /*Compute fraction of the element that is grounded: */ … … 5744 5744 5745 5745 /*Retrieve ice thickness at vertices: */ 5746 Input 2* deltathickness_input=this->GetInput2(SurfaceloadIceThicknessChangeEnum);5746 Input* deltathickness_input=this->GetInput(SurfaceloadIceThicknessChangeEnum); 5747 5747 if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!"); 5748 5748 … … 5828 5828 5829 5829 /*retrieve precomputed G:*/ 5830 this->inputs 2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);5830 this->inputs->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize); 5831 5831 5832 5832 /*Get area of element: precomputed in the sealevelrise_core_geometry:*/ 5833 this-> GetInput2Value(&area,AreaEnum);5833 this->Element::GetInputValue(&area,AreaEnum); 5834 5834 5835 5835 /*Retrieve water height at vertices: */ 5836 Input 2* deltathickness_input=this->GetInput2(SurfaceloadWaterHeightChangeEnum);5836 Input* deltathickness_input=this->GetInput(SurfaceloadWaterHeightChangeEnum); 5837 5837 if (!deltathickness_input)_error_("SurfaceloadWaterHeightChangeEnum input needed to compute sea level rise!"); 5838 5838 deltathickness_input->GetInputAverage(&W); … … 5874 5874 /*Inform mask: */ 5875 5875 #ifdef _ISSM_DEBUG_ 5876 constant=1; this->AddInput 2(SealevelEustaticMaskEnum,&constant,P0Enum);5876 constant=1; this->AddInput(SealevelEustaticMaskEnum,&constant,P0Enum); 5877 5877 #endif 5878 5878 … … 5881 5881 5882 5882 /*retrieve precomputed G:*/ 5883 this->inputs 2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);5883 this->inputs->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize); 5884 5884 5885 5885 /*Get area of element: precomputed in the sealevelrise_core_geometry:*/ 5886 this-> GetInput2Value(&area,AreaEnum);5886 this->Element::GetInputValue(&area,AreaEnum); 5887 5887 5888 5888 /*Retrieve bottom pressure change and average over the element: */ 5889 Input 2* bottompressure_change_input=this->GetInput2(DslSeaWaterPressureChangeAtSeaFloorEnum);5889 Input* bottompressure_change_input=this->GetInput(DslSeaWaterPressureChangeAtSeaFloorEnum); 5890 5890 if (!bottompressure_change_input)_error_("bottom pressure input needed to compute sea level rise fingerprint!"); 5891 5891 bottompressure_change_input->GetInputAverage(&BP); … … 5918 5918 constant=0; 5919 5919 #ifdef _ISSM_DEBUG_ 5920 this->AddInput 2(SealevelEustaticOceanMaskEnum,&constant,P0Enum);5920 this->AddInput(SealevelEustaticOceanMaskEnum,&constant,P0Enum); 5921 5921 #endif 5922 5922 return; … … 5924 5924 constant=1; 5925 5925 #ifdef _ISSM_DEBUG_ 5926 this->AddInput 2(SealevelEustaticOceanMaskEnum,&constant,P0Enum);5926 this->AddInput(SealevelEustaticOceanMaskEnum,&constant,P0Enum); 5927 5927 #endif 5928 5928 … … 5931 5931 5932 5932 /*retrieve precomputed G:*/ 5933 this->inputs 2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&dummy); _assert_(dummy==gsize);5933 this->inputs->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&dummy); _assert_(dummy==gsize); 5934 5934 5935 5935 /*From Sg_old, recover water sea level rise:*/ … … 5977 5977 5978 5978 /*recover elastic Green's functions for displacement:*/ 5979 this->inputs 2->GetArrayPtr(SealevelriseGUEnum,this->lid,&GU,&gsize);5979 this->inputs->GetArrayPtr(SealevelriseGUEnum,this->lid,&GU,&gsize); 5980 5980 if(horiz){ 5981 this->inputs 2->GetArrayPtr(SealevelriseGEEnum,this->lid,&GE,&gsize);5982 this->inputs 2->GetArrayPtr(SealevelriseGNEnum,this->lid,&GN,&gsize);5981 this->inputs->GetArrayPtr(SealevelriseGEEnum,this->lid,&GE,&gsize); 5982 this->inputs->GetArrayPtr(SealevelriseGNEnum,this->lid,&GN,&gsize); 5983 5983 } 5984 5984 … … 5993 5993 /*If bottom pressures are available, retrieve them to load the bedrock:*/ 5994 5994 if(bp_compute_fingerprints){ 5995 Input 2* bottompressure_change_input=this->GetInput2(DslSeaWaterPressureChangeAtSeaFloorEnum);5995 Input* bottompressure_change_input=this->GetInput(DslSeaWaterPressureChangeAtSeaFloorEnum); 5996 5996 if (!bottompressure_change_input)_error_("bottom pressure input needed to compute sea level rise fingerprint!"); 5997 5997 bottompressure_change_input->GetInputAverage(&BP); … … 6014 6014 6015 6015 /*Compute ice thickness change: */ 6016 Input 2* deltathickness_input=this->GetInput2(SurfaceloadIceThicknessChangeEnum);6016 Input* deltathickness_input=this->GetInput(SurfaceloadIceThicknessChangeEnum); 6017 6017 if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!"); 6018 6018 deltathickness_input->GetInputAverage(&I); … … 6042 6042 6043 6043 /*Branch according to whether we have a transient or not input: */ 6044 type=this->inputs 2->GetInputObjectEnum(name);6045 if(type==TriaInput 2Enum){6044 type=this->inputs->GetInputObjectEnum(name); 6045 if(type==TriaInputEnum){ 6046 6046 /*Figure out if we are P0 or P1 interpolation: */ 6047 TriaInput 2* triainput = this->inputs2->GetTriaInput(name);6048 TriaInput 2* triainput2 = this->inputs2->GetTriaInput(DummyEnum);6047 TriaInput* triainput = this->inputs->GetTriaInput(name); 6048 TriaInput* triainput2 = this->inputs->GetTriaInput(DummyEnum); 6049 6049 this->InputServe(triainput); 6050 6050 interp=triainput->GetInterpolation(); … … 6071 6071 else _error_("Tria::InputScaleFromDakota error message: input interpolation " << EnumToStringx(interp) << " not supported yet!"); 6072 6072 } 6073 else if(type==TransientInput 2Enum){6073 else if(type==TransientInputEnum){ 6074 6074 6075 6075 IssmDouble* steps=NULL; 6076 6076 int nsteps; 6077 TransientInput 2* transientinput = NULL;6078 TransientInput 2* transientinput2 = NULL;6077 TransientInput* transientinput = NULL; 6078 TransientInput* transientinput2 = NULL; 6079 6079 6080 6080 /*retrieve transient input:*/ 6081 transientinput= this->inputs 2->GetTransientInput(name); _assert_(transientinput);6082 transientinput2= this->inputs 2->GetTransientInput(DummyEnum); _assert_(transientinput2);6081 transientinput= this->inputs->GetTransientInput(name); _assert_(transientinput); 6082 transientinput2= this->inputs->GetTransientInput(DummyEnum); _assert_(transientinput2); 6083 6083 6084 6084 /*retrieve time steps: */ … … 6095 6095 /*go through the transient inputs, and update:*/ 6096 6096 for (int i=0;i<nsteps;i++){ 6097 TriaInput 2* triainput=transientinput->GetTriaInput(i);6098 TriaInput 2* triainput2=transientinput2->GetTriaInput(i);6097 TriaInput* triainput=transientinput->GetTriaInput(i); 6098 TriaInput* triainput2=transientinput2->GetTriaInput(i); 6099 6099 this->InputServe(triainput); 6100 6100 interp=triainput->GetInterpolation(); … … 6132 6132 /*Check that name is an element input*/ 6133 6133 if(!IsInputEnum(name)) _error_("Enum "<<EnumToStringx(name)<<" is not in IsInput"); 6134 TransientInput 2* transientinput = inputs2->GetTransientInput(name);6134 TransientInput* transientinput = inputs->GetTransientInput(name); 6135 6135 6136 6136 switch(type){ … … 6243 6243 6244 6244 /*Add new inputs: */ 6245 this->AddInput 2(ThicknessEnum,thickness,P1Enum);6246 this->AddInput 2(BaseEnum,bed,P1Enum);6247 this->AddInput 2(SurfaceEnum,surface,P1Enum);6245 this->AddInput(ThicknessEnum,thickness,P1Enum); 6246 this->AddInput(BaseEnum,bed,P1Enum); 6247 this->AddInput(SurfaceEnum,surface,P1Enum); 6248 6248 6249 6249 break; 6250 6250 case MaterialsRheologyBEnum: 6251 this->AddInput 2(MaterialsRheologyBbarEnum,values,P1Enum);6251 this->AddInput(MaterialsRheologyBbarEnum,values,P1Enum); 6252 6252 break; 6253 6253 default: 6254 this->AddInput 2(name,values,P1Enum);6254 this->AddInput(name,values,P1Enum); 6255 6255 } 6256 6256 break; … … 6260 6260 /*Get value for the element: */ 6261 6261 value=vector[this->Sid()]; //careful, vector of values here is not parallel distributed, but serial distributed (from a serial Dakota core!) 6262 this->AddInput 2(name,&value,P0Enum);6262 this->AddInput(name,&value,P0Enum); 6263 6263 break; 6264 6264 default: -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r25318 r25379 65 65 void ComputeStressTensor(); 66 66 void ComputeSurfaceNormalVelocity(); 67 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs 2* inputs2in);67 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs* inputsin); 68 68 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp); 69 69 void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp); … … 84 84 IssmDouble GetIcefrontArea(); 85 85 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum); 86 void GetInputListOnVertices(IssmDouble* pvalue,Input 2* input,IssmDouble default_value);87 void GetInputListOnNodes(IssmDouble* pvalue,Input 2* input,IssmDouble default_value);86 void GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value); 87 void GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value); 88 88 void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level); 89 89 int GetVertexIndex(Vertex* vertex); … … 127 127 void RignotMeltParameterization(); 128 128 void SetElementInput(int enum_in,IssmDouble values); 129 void SetElementInput(Inputs 2* inputs2,int enum_in,IssmDouble values);130 void SetElementInput(Inputs 2* inputs2,int numindices,int* indices,IssmDouble* values,int enum_in);129 void SetElementInput(Inputs* inputs,int enum_in,IssmDouble values); 130 void SetElementInput(Inputs* inputs,int numindices,int* indices,IssmDouble* values,int enum_in); 131 131 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset,int M,int N); 132 132 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters); … … 144 144 IssmDouble TotalGroundedBmb(bool scaled); 145 145 IssmDouble TotalSmb(bool scaled); 146 void Update(Inputs 2* inputs2,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);146 void Update(Inputs* inputs,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement); 147 147 int UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf); 148 148 void ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss); … … 175 175 /*}}}*/ 176 176 /*Tria specific routines:{{{*/ 177 void AddBasalInput 2(int input_enum, IssmDouble* values, int interpolation_enum);178 void AddInput 2(int input_enum, IssmDouble* values, int interpolation_enum);179 void AddControlInput(int input_enum,Inputs 2* inputs2,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id);180 void DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs 2* inputs2,IoModel* iomodel,int input_enum);177 void AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum); 178 void AddInput(int input_enum, IssmDouble* values, int interpolation_enum); 179 void AddControlInput(int input_enum,Inputs* inputs,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id); 180 void DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs* inputs,IoModel* iomodel,int input_enum); 181 181 void CreateInputTimeAverage(int transientinput_enum,int averagedinput_enum,IssmDouble init_time,IssmDouble end_time,int averaging_method); 182 182 void GetInputAveragesUpToCurrentTime(int input_enum,IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime); … … 188 188 void GetAreaCoordinates(IssmDouble *area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints); 189 189 int GetElementType(void); 190 Input 2* GetInput2(int enumtype);191 Input 2* GetInput2(int enumtype,IssmDouble time);192 Input 2* GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method);193 DatasetInput 2* GetDatasetInput2(int inputenum);190 Input* GetInput(int enumtype); 191 Input* GetInput(int enumtype,IssmDouble time); 192 Input* GetInput(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method); 193 DatasetInput* GetDatasetInput(int inputenum); 194 194 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype); 195 195 void GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype); … … 227 227 void NormalTop(IssmDouble* normal,IssmDouble* xyz_list); 228 228 void SetTemporaryElementType(int element_type_in){_error_("not implemented yet");}; 229 void InputServe(Input 2* input_in);229 void InputServe(Input* input_in); 230 230 Seg* SpawnSeg(int index1,int index2); 231 231 IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r25317 r25379 17 17 #include "../shared/Enum/Enum.h" 18 18 #include "../analyses/analyses.h" 19 #include "./Inputs 2/DatasetInput2.h"20 #include "./Inputs 2/ElementInput2.h"21 #include "./Inputs 2/TransientInput2.h"19 #include "./Inputs/DatasetInput.h" 20 #include "./Inputs/ElementInput.h" 21 #include "./Inputs/TransientInput.h" 22 22 23 23 #if _HAVE_CODIPACK_ … … 202 202 if(materials)delete materials; 203 203 if(parameters)delete parameters; 204 if(inputs 2)delete inputs2;204 if(inputs)delete inputs; 205 205 if(results)delete results; 206 206 … … 343 343 output->materials=static_cast<Materials*>(this->materials->Copy()); 344 344 output->parameters=static_cast<Parameters*>(this->parameters->Copy()); 345 output->inputs 2=static_cast<Inputs2*>(this->inputs2->Copy());345 output->inputs=static_cast<Inputs*>(this->inputs->Copy()); 346 346 output->results=static_cast<Results*>(this->results->Copy()); 347 347 output->vertices=static_cast<Vertices*>(this->vertices->Copy()); … … 362 362 SpcNodesx(output->nodes_list[i],output->constraints_list[i],output->parameters); 363 363 NodesDofx(output->nodes_list[i],output->parameters); 364 ConfigureObjectsx(output->elements,output->loads_list[i],output->nodes_list[i],output->vertices,output->materials,output->parameters,output->inputs 2);364 ConfigureObjectsx(output->elements,output->loads_list[i],output->nodes_list[i],output->vertices,output->materials,output->parameters,output->inputs); 365 365 } 366 366 … … 436 436 437 437 /*create datasets for all analyses*/ 438 ModelProcessorx(&this->elements,&this->nodes_list,&this->vertices,&this->materials,&this->constraints_list,&this->loads_list,&this->parameters,&this->inputs 2,iomodel,toolkitsoptionsfid,rootpath,this->solution_type,this->nummodels,this->analysis_type_list);438 ModelProcessorx(&this->elements,&this->nodes_list,&this->vertices,&this->materials,&this->constraints_list,&this->loads_list,&this->parameters,&this->inputs,iomodel,toolkitsoptionsfid,rootpath,this->solution_type,this->nummodels,this->analysis_type_list); 439 439 440 440 /*do the post-processing of the datasets to get an FemModel that can actually run analyses: */ … … 445 445 446 446 if(VerboseMProcessor()) _printf0_(" configuring element and loads\n"); 447 ConfigureObjectsx(this->elements,this->loads,this->nodes,this->vertices,this->materials,this->parameters,this->inputs 2);447 ConfigureObjectsx(this->elements,this->loads,this->nodes,this->vertices,this->materials,this->parameters,this->inputs); 448 448 449 449 if(i==0){ … … 470 470 delete this->materials; 471 471 delete this->parameters; 472 delete this->inputs 2;472 delete this->inputs; 473 473 if(this->constraints_list && this->nummodels){ 474 474 for(i=0;i<this->nummodels;i++) delete this->constraints_list[i]; … … 490 490 this->materials = new Materials(); 491 491 this->parameters = new Parameters(); 492 this->inputs 2 = new Inputs2();492 this->inputs = new Inputs(); 493 493 this->results = new Results(); 494 494 this->nodes = new Nodes(); … … 506 506 this->materials->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 507 507 this->parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 508 this->inputs 2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);508 this->inputs->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 509 509 this->results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 510 510 this->vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); … … 538 538 SpcNodesx(this->nodes_list[i],this->constraints_list[i],this->parameters); 539 539 NodesDofx(this->nodes_list[i],this->parameters); 540 ConfigureObjectsx(this->elements,this->loads_list[i],this->nodes_list[i],this->vertices,this->materials,this->parameters,this->inputs 2);540 ConfigureObjectsx(this->elements,this->loads_list[i],this->nodes_list[i],this->vertices,this->materials,this->parameters,this->inputs); 541 541 } 542 542 … … 980 980 /* Get node coordinates*/ 981 981 element->GetVerticesCoordinates(&xyz_list); 982 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);983 Input 2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);984 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);985 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);986 Input 2* surface_mass_balance_input = element->GetInput2(SmbMassBalanceEnum); _assert_(surface_mass_balance_input);987 Input 2* groundedice_melting_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input);988 Input 2* dhdt_input = element->GetInput2(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);982 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 983 Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input); 984 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 985 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 986 Input* surface_mass_balance_input = element->GetInput(SmbMassBalanceEnum); _assert_(surface_mass_balance_input); 987 Input* groundedice_melting_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input); 988 Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input); 989 989 990 990 /* Start looping on the number of gaussian points: */ … … 1617 1617 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1618 1618 element->GetInputListOnVertices(P1DGlist,enum_in); 1619 element->AddInput 2(DummyEnum,P1DGlist,P1DGEnum);1619 element->AddInput(DummyEnum,P1DGlist,P1DGEnum); 1620 1620 } 1621 1621 xDelete<IssmDouble>(P1DGlist); 1622 1622 1623 this->inputs 2->ChangeEnum(DummyEnum,enum_in);1624 this->inputs 2->DeleteInput(DummyEnum);1623 this->inputs->ChangeEnum(DummyEnum,enum_in); 1624 this->inputs->DeleteInput(DummyEnum); 1625 1625 1626 1626 }/*}}}*/ … … 1770 1770 for(i=0;i<this->elements->Size();i++){ 1771 1771 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1772 Input 2* input = element->GetInput2(VxEnum);1772 Input* input = element->GetInput(VxEnum); 1773 1773 element_maxabsvx=input->GetInputMaxAbs(); 1774 1774 if(element_maxabsvx>maxabsvx) maxabsvx=element_maxabsvx; … … 1795 1795 for(i=0;i<this->elements->Size();i++){ 1796 1796 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1797 Input 2* input = element->GetInput2(VyEnum);1797 Input* input = element->GetInput(VyEnum); 1798 1798 element_maxabsvy=input->GetInputMaxAbs(); 1799 1799 if(element_maxabsvy>maxabsvy) maxabsvy=element_maxabsvy; … … 1820 1820 for(i=0;i<this->elements->Size();i++){ 1821 1821 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1822 Input 2* input = element->GetInput2(VzEnum);1822 Input* input = element->GetInput(VzEnum); 1823 1823 element_maxabsvz=input->GetInputMaxAbs(); 1824 1824 if(element_maxabsvz>maxabsvz) maxabsvz=element_maxabsvz; … … 1864 1864 for(i=0;i<this->elements->Size();i++){ 1865 1865 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1866 Input 2* vel_input = element->GetInput2(VelEnum); _assert_(vel_input);1866 Input* vel_input = element->GetInput(VelEnum); _assert_(vel_input); 1867 1867 element_maxvel = vel_input->GetInputMax(); 1868 1868 if(element_maxvel>maxvel) maxvel=element_maxvel; … … 1889 1889 for(i=0;i<this->elements->Size();i++){ 1890 1890 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1891 Input 2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);1891 Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input); 1892 1892 element_maxvx = vx_input->GetInputMax(); 1893 1893 if(element_maxvx>maxvx) maxvx=element_maxvx; … … 1914 1914 for(i=0;i<this->elements->Size();i++){ 1915 1915 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1916 Input 2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);1916 Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input); 1917 1917 element_maxvy = vy_input->GetInputMax(); 1918 1918 if(element_maxvy>maxvy) maxvy=element_maxvy; … … 1939 1939 for(i=0;i<this->elements->Size();i++){ 1940 1940 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1941 Input 2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input);1941 Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input); 1942 1942 element_maxvz = vz_input->GetInputMax(); 1943 1943 if(element_maxvz>maxvz) maxvz=element_maxvz; … … 1964 1964 for(i=0;i<this->elements->Size();i++){ 1965 1965 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1966 Input 2* input = element->GetInput2(VelEnum);1966 Input* input = element->GetInput(VelEnum); 1967 1967 element_minvel =input->GetInputMin(); 1968 1968 if(element_minvel<minvel) minvel=element_minvel; … … 1989 1989 for(i=0;i<this->elements->Size();i++){ 1990 1990 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1991 Input 2* input = element->GetInput2(VxEnum);1991 Input* input = element->GetInput(VxEnum); 1992 1992 element_minvx =input->GetInputMin(); 1993 1993 if(element_minvx<minvx) minvx=element_minvx; … … 2014 2014 for(i=0;i<this->elements->Size();i++){ 2015 2015 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 2016 Input 2* input = element->GetInput2(VyEnum);2016 Input* input = element->GetInput(VyEnum); 2017 2017 element_minvy =input->GetInputMin(); 2018 2018 if(element_minvy<minvy) minvy=element_minvy; … … 2039 2039 for(i=0;i<this->elements->Size();i++){ 2040 2040 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 2041 Input 2* input = element->GetInput2(VzEnum);2041 Input* input = element->GetInput(VzEnum); 2042 2042 element_minvz =input->GetInputMin(); 2043 2043 if(element_minvz<minvz) minvz=element_minvz; … … 2075 2075 2076 2076 /*Retrieve all inputs we will be needing: */ 2077 DatasetInput 2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);2078 Input 2* omega_input = element->GetInput2(BalancethicknessOmegaEnum); _assert_(omega_input);2077 DatasetInput* weights_input = element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 2078 Input* omega_input = element->GetInput(BalancethicknessOmegaEnum); _assert_(omega_input); 2079 2079 2080 2080 /* Start looping on the number of gaussian points: */ … … 2132 2132 2133 2133 /*Retrieve all inputs we will be needing: */ 2134 DatasetInput 2* weights_input =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);2135 Input 2* omega_input =element->GetInput2(BalancethicknessOmegaEnum); _assert_(omega_input);2136 Input 2* omega0_input =element->GetInput2(BalancethicknessOmega0Enum); _assert_(omega0_input);2134 DatasetInput* weights_input =element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 2135 Input* omega_input =element->GetInput(BalancethicknessOmegaEnum); _assert_(omega_input); 2136 Input* omega0_input =element->GetInput(BalancethicknessOmega0Enum); _assert_(omega0_input); 2137 2137 2138 2138 /* Start looping on the number of gaussian points: */ … … 2691 2691 2692 2692 /*Retrieve all inputs we will be needing: */ 2693 DatasetInput 2* weights_input =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);2694 Input 2* surface_input =element->GetInput2(SurfaceEnum); _assert_(surface_input);2695 Input 2* surfaceobs_input=element->GetInput2(InversionSurfaceObsEnum); _assert_(surfaceobs_input);2693 DatasetInput* weights_input =element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 2694 Input* surface_input =element->GetInput(SurfaceEnum); _assert_(surface_input); 2695 Input* surfaceobs_input=element->GetInput(InversionSurfaceObsEnum); _assert_(surfaceobs_input); 2696 2696 2697 2697 /* Start looping on the number of gaussian points: */ … … 2747 2747 2748 2748 /*Retrieve all inputs we will be needing: */ 2749 DatasetInput 2* weights_input =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);2750 Input 2* thickness_input =element->GetInput2(ThicknessEnum); _assert_(thickness_input);2749 DatasetInput* weights_input =element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 2750 Input* thickness_input =element->GetInput(ThicknessEnum); _assert_(thickness_input); 2751 2751 2752 2752 /* Start looping on the number of gaussian points: */ … … 2833 2833 H[1]=Hserial[element->vertices[1]->Sid()]; 2834 2834 H[2]=Hserial[element->vertices[2]->Sid()]; 2835 element->AddInput 2(ThicknessEnum,H,P1Enum);2835 element->AddInput(ThicknessEnum,H,P1Enum); 2836 2836 } 2837 2837 … … 2866 2866 2867 2867 /*Retrieve all inputs we will be needing: */ 2868 DatasetInput 2* weights_input =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);2869 Input 2* thickness_input =element->GetInput2(ThicknessEnum); _assert_(thickness_input);2868 DatasetInput* weights_input =element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 2869 Input* thickness_input =element->GetInput(ThicknessEnum); _assert_(thickness_input); 2870 2870 2871 2871 /* Start looping on the number of gaussian points: */ … … 3176 3176 3177 3177 /*Creating inputs*/ 3178 Inputs 2* new_inputs2=new Inputs2(newnumberofelements,newnumberofvertices);3178 Inputs* new_inputs=new Inputs(newnumberofelements,newnumberofvertices); 3179 3179 3180 3180 /*Creating materials*/ … … 3241 3241 } 3242 3242 3243 ConfigureObjectsx(new_elements,this->loads,new_nodes_list[i],new_vertices,new_materials,this->parameters,new_inputs 2);3243 ConfigureObjectsx(new_elements,this->loads,new_nodes_list[i],new_vertices,new_materials,this->parameters,new_inputs); 3244 3244 SpcNodesx(new_nodes_list[i],new_constraints_list[i],this->parameters); 3245 3245 NodesDofx(new_nodes_list[i],this->parameters); … … 3247 3247 3248 3248 /*Interpolate all inputs and insert them into the new elements.*/ 3249 this->InterpolateInputs(new_vertices,new_elements,new_inputs 2);3249 this->InterpolateInputs(new_vertices,new_elements,new_inputs); 3250 3250 3251 3251 /*Delete old structure and set new pointers*/ 3252 delete this->inputs 2; this->inputs2 = new_inputs2;3252 delete this->inputs; this->inputs = new_inputs; 3253 3253 delete this->vertices; this->vertices = new_vertices; 3254 3254 delete this->elements; this->elements = new_elements; … … 3313 3313 } 3314 3314 /*insert new bedrock*/ 3315 element->AddInput 2(BedEnum,&r[0],P1Enum);3315 element->AddInput(BedEnum,&r[0],P1Enum); 3316 3316 /*Cleanup*/ 3317 3317 xDelete<IssmDouble>(xyz_list); … … 3361 3361 3362 3362 /*Update inputs*/ 3363 element->AddInput 2(MaskOceanLevelsetEnum,&phi[0],P1Enum);3364 element->AddInput 2(ThicknessEnum,&h[0],P1Enum);3365 element->AddInput 2(BaseEnum,&b[0],P1Enum);3363 element->AddInput(MaskOceanLevelsetEnum,&phi[0],P1Enum); 3364 element->AddInput(ThicknessEnum,&h[0],P1Enum); 3365 element->AddInput(BaseEnum,&b[0],P1Enum); 3366 3366 } 3367 3367 … … 3395 3395 3396 3396 /*Figure out how many inputs we have and their respective interpolation*/ 3397 this->inputs 2->GetInputsInterpolations(&numinputs,&input_interpolations,&input_enums);3397 this->inputs->GetInputsInterpolations(&numinputs,&input_interpolations,&input_enums); 3398 3398 3399 3399 /*Count and get enums of all inputs in old mesh*/ … … 3421 3421 break; 3422 3422 case P0Enum: 3423 case IntInput 2Enum:3424 case BoolInput 2Enum:3423 case IntInputEnum: 3424 case BoolInputEnum: 3425 3425 if(step){ 3426 3426 P0input_enums[numP0inputs] = input_enums[i]; … … 3446 3446 switch(P0input_interp[j]){ 3447 3447 case P0Enum:{ 3448 Input 2* input=element->GetInput2(P0input_enums[j]);3448 Input* input=element->GetInput(P0input_enums[j]); 3449 3449 input->GetInputAverage(&value); 3450 3450 } 3451 3451 break; 3452 case IntInput 2Enum:{3452 case IntInputEnum:{ 3453 3453 int valueint; 3454 element->GetInput 2Value(&valueint,P0input_enums[j]);3454 element->GetInputValue(&valueint,P0input_enums[j]); 3455 3455 value = reCast<IssmDouble>(valueint); 3456 3456 } 3457 3457 break; 3458 case BoolInput 2Enum:{3458 case BoolInputEnum:{ 3459 3459 bool valuebool; 3460 element->GetInput 2Value(&valuebool,P0input_enums[j]);3460 element->GetInputValue(&valuebool,P0input_enums[j]); 3461 3461 value = reCast<IssmDouble>(valuebool); 3462 3462 } … … 3472 3472 /*Get P1 inputs*/ 3473 3473 for(int j=0;j<numP1inputs;j++){ 3474 Input 2* temp = element->GetInput2(P1input_enums[j]); _assert_(temp);3475 ElementInput 2* input=xDynamicCast<ElementInput2*>(temp);3474 Input* temp = element->GetInput(P1input_enums[j]); _assert_(temp); 3475 ElementInput* input=xDynamicCast<ElementInput*>(temp); 3476 3476 pos[0]=element->vertices[0]->Sid()*numP1inputs+j; 3477 3477 pos[1]=element->vertices[1]->Sid()*numP1inputs+j; … … 3506 3506 } 3507 3507 /*}}}*/ 3508 void FemModel::InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs 2* newinputs2){/*{{{*/3508 void FemModel::InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs* newinputs){/*{{{*/ 3509 3509 3510 3510 int numberofelements = -1; //global, entire old mesh … … 3575 3575 switch(P0input_interp[j]){ 3576 3576 case P0Enum: 3577 element->SetElementInput(newinputs 2,P0input_enums[j],newP0inputs[i*numP0inputs+j]);3577 element->SetElementInput(newinputs,P0input_enums[j],newP0inputs[i*numP0inputs+j]); 3578 3578 break; 3579 case IntInput 2Enum:3580 element->SetIntInput(newinputs 2,P0input_enums[j],reCast<int>(newP0inputs[i*numP0inputs+j]));3579 case IntInputEnum: 3580 element->SetIntInput(newinputs,P0input_enums[j],reCast<int>(newP0inputs[i*numP0inputs+j])); 3581 3581 break; 3582 case BoolInput 2Enum:3583 element->SetBoolInput(newinputs 2,P0input_enums[j],reCast<bool>(newP0inputs[i*numP0inputs+j]));3582 case BoolInputEnum: 3583 element->SetBoolInput(newinputs,P0input_enums[j],reCast<bool>(newP0inputs[i*numP0inputs+j])); 3584 3584 break; 3585 3585 default: … … 3593 3593 values[1]=newP1inputs[sidtoindex[element->vertices[1]->Sid()]*numP1inputs+j]; 3594 3594 values[2]=newP1inputs[sidtoindex[element->vertices[2]->Sid()]*numP1inputs+j]; 3595 newinputs 2->SetTriaInput(P1input_enums[j],P1Enum,3,vertexlids,values);3595 newinputs->SetTriaInput(P1input_enums[j],P1Enum,3,vertexlids,values); 3596 3596 } 3597 3597 } … … 3697 3697 newtria->isonbase = true; 3698 3698 newtria->parameters=NULL; 3699 newtria->inputs 2=NULL;3699 newtria->inputs=NULL; 3700 3700 newtria->nodes=NULL; 3701 3701 newtria->vertices=NULL; … … 4723 4723 for(int i=0;i<elements->Size();i++){ 4724 4724 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4725 element->GetInput 2Value(&area,AreaEnum);4725 element->GetInputValue(&area,AreaEnum); 4726 4726 if (masks->isoceanin[i]) oceanarea_cpu += area; 4727 4727 } … … 5212 5212 5213 5213 for(int i=0;i<numoutputs;i++){ 5214 this->inputs 2->DeleteInput(transientinput_enum[i]);5215 this->inputs 2->SetTransientInput(transientinput_enum[i],NULL,0);5214 this->inputs->DeleteInput(transientinput_enum[i]); 5215 this->inputs->SetTransientInput(transientinput_enum[i],NULL,0); 5216 5216 /*We need to configure this input!*/ 5217 TransientInput 2* transientinput = this->inputs2->GetTransientInput(transientinput_enum[i]); _assert_(transientinput);5217 TransientInput* transientinput = this->inputs->GetTransientInput(transientinput_enum[i]); _assert_(transientinput); 5218 5218 transientinput->Configure(this->parameters); 5219 5219 } … … 5231 5231 /*Get the right transient input*/ 5232 5232 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 5233 TransientInput 2* transientinput = this->inputs2->GetTransientInput(transientinput_enum[i]);5233 TransientInput* transientinput = this->inputs->GetTransientInput(transientinput_enum[i]); 5234 5234 5235 5235 /*Get values and lid list*/ -
issm/trunk-jpl/src/c/classes/FemModel.h
r25066 r25379 11 11 class DataSet; 12 12 class Parameters; 13 class Inputs 2;13 class Inputs; 14 14 class Nodes; 15 15 class Vertices; … … 45 45 Materials *materials; //one set of materials, for each element 46 46 Parameters *parameters; //one set of parameters, independent of the analysis_type 47 Inputs 2 *inputs2; //one set of inputs, independent of the analysis_type47 Inputs *inputs; //one set of inputs, independent of the analysis_type 48 48 Results *results; //results that cannot be fit into the elements 49 49 Vertices *vertices; //one set of vertices … … 200 200 void CreateConstraints(Vertices* newfemmodel_vertices,int analysis_enum,Constraints* newfemmodel_constraints); 201 201 void GetInputs(int* pnumP0inputs,IssmDouble** pP0inputs,int** pP0input_enums,int** pP0input_interp,int* pnumP1inputs,IssmDouble** pP1inputs,int** pP1input_enums,int** pP1input_interp); 202 void InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs 2* new_inputs);202 void InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs* new_inputs); 203 203 void UpdateElements(int newnumberofelements,int* newelementslist,bool* my_elements,int analysis_counter,Elements* newelements); 204 204 void WriteMeshInResults(void); -
issm/trunk-jpl/src/c/classes/Inputs/ArrayInput.cpp
r25378 r25379 1 /*!\file ArrayInput 2.c2 * \brief: implementation of the ArrayInput 2object1 /*!\file ArrayInput.c 2 * \brief: implementation of the ArrayInput object 3 3 */ 4 4 … … 11 11 #include "../classes.h" 12 12 #include "../../shared/shared.h" 13 #include "./ArrayInput 2.h"13 #include "./ArrayInput.h" 14 14 15 /*ArrayInput 2constructors and destructor*/16 ArrayInput 2::ArrayInput2(void){/*{{{*/15 /*ArrayInput constructors and destructor*/ 16 ArrayInput::ArrayInput(void){/*{{{*/ 17 17 18 18 this->numberofelements_local = -1; … … 21 21 22 22 }/*}}}*/ 23 ArrayInput 2::ArrayInput2(int nbe_in){/*{{{*/23 ArrayInput::ArrayInput(int nbe_in){/*{{{*/ 24 24 25 25 _assert_(nbe_in>0); … … 30 30 31 31 }/*}}}*/ 32 ArrayInput 2::~ArrayInput2(){/*{{{*/32 ArrayInput::~ArrayInput(){/*{{{*/ 33 33 if(this->values){ 34 34 for(int i=0;i<this->numberofelements_local;i++) if(this->values[i]) xDelete<IssmDouble>(this->values[i]); … … 40 40 41 41 /*Object virtual functions definitions:*/ 42 Input 2* ArrayInput2::copy() {/*{{{*/42 Input* ArrayInput::copy() {/*{{{*/ 43 43 44 ArrayInput 2* output = new ArrayInput2(this->numberofelements_local);44 ArrayInput* output = new ArrayInput(this->numberofelements_local); 45 45 46 46 output->N = xNew<int>(this->numberofelements_local); … … 62 62 } 63 63 /*}}}*/ 64 void ArrayInput 2::DeepEcho(void){/*{{{*/65 _printf_("ArrayInput 2Echo:\n");64 void ArrayInput::DeepEcho(void){/*{{{*/ 65 _printf_("ArrayInput Echo:\n"); 66 66 ///_printf_(" Size: "<<N<<"\n"); 67 67 //printarray(this->values,this->M,this->N); 68 //_printf_(setw(15)<<" ArrayInput 2"<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");68 //_printf_(setw(15)<<" ArrayInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n"); 69 69 } 70 70 /*}}}*/ 71 void ArrayInput 2::Echo(void){/*{{{*/71 void ArrayInput::Echo(void){/*{{{*/ 72 72 this->DeepEcho(); 73 73 } 74 74 /*}}}*/ 75 int ArrayInput 2::Id(void){/*{{{*/75 int ArrayInput::Id(void){/*{{{*/ 76 76 return -1; 77 77 }/*}}}*/ 78 void ArrayInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/78 void ArrayInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 79 79 80 MARSHALLING_ENUM(ArrayInput 2Enum);80 MARSHALLING_ENUM(ArrayInputEnum); 81 81 MARSHALLING(this->numberofelements_local); 82 82 if(this->numberofelements_local){ … … 95 95 } 96 96 /*}}}*/ 97 int ArrayInput 2::ObjectEnum(void){/*{{{*/98 return ArrayInput 2Enum;97 int ArrayInput::ObjectEnum(void){/*{{{*/ 98 return ArrayInputEnum; 99 99 } 100 100 /*}}}*/ 101 101 102 /*ArrayInput 2management*/103 void ArrayInput 2::SetInput(int row,int numindices,IssmDouble* values_in){/*{{{*/102 /*ArrayInput management*/ 103 void ArrayInput::SetInput(int row,int numindices,IssmDouble* values_in){/*{{{*/ 104 104 105 105 _assert_(this); … … 117 117 } 118 118 /*}}}*/ 119 void ArrayInput 2::GetArray(int row,IssmDouble** pvalues,int* pN){/*{{{*/119 void ArrayInput::GetArray(int row,IssmDouble** pvalues,int* pN){/*{{{*/ 120 120 121 121 _assert_(this); … … 131 131 } 132 132 /*}}}*/ 133 void ArrayInput 2::GetArrayPtr(int row,IssmDouble** pvalues,int* pN){/*{{{*/133 void ArrayInput::GetArrayPtr(int row,IssmDouble** pvalues,int* pN){/*{{{*/ 134 134 135 135 _assert_(this); -
issm/trunk-jpl/src/c/classes/Inputs/ArrayInput.h
r25378 r25379 3 3 4 4 /*Headers:*/ 5 #include "./Input 2.h"5 #include "./Input.h" 6 6 7 class ArrayInput 2: public Input2{7 class ArrayInput: public Input{ 8 8 9 9 private: … … 13 13 14 14 public: 15 /*ArrayInput 2constructors, destructors: {{{*/16 ArrayInput 2();17 ArrayInput 2(int nbe_in);18 ~ArrayInput 2();15 /*ArrayInput constructors, destructors: {{{*/ 16 ArrayInput(); 17 ArrayInput(int nbe_in); 18 ~ArrayInput(); 19 19 /*}}}*/ 20 20 /*Object virtual functions definitions:{{{ */ 21 Input 2*copy();21 Input *copy(); 22 22 void DeepEcho(); 23 23 void Echo(); … … 26 26 int ObjectEnum(); 27 27 /*}}}*/ 28 /*ArrayInput 2management:*/28 /*ArrayInput management:*/ 29 29 void SetInput(int row,int numinds,IssmDouble* values_in); 30 30 void GetArray(int row,IssmDouble** pvalues,int* pN); -
issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp
r25378 r25379 1 /*!\file BoolInput 2.c2 * \brief: implementation of the BoolInput 2object1 /*!\file BoolInput.c 2 * \brief: implementation of the BoolInput object 3 3 */ 4 4 … … 10 10 11 11 #include "../classes.h" 12 #include "./BoolInput 2.h"12 #include "./BoolInput.h" 13 13 #include "../../shared/shared.h" 14 14 15 /*BoolInput 2constructors and destructor*/16 BoolInput 2::BoolInput2(){/*{{{*/15 /*BoolInput constructors and destructor*/ 16 BoolInput::BoolInput(){/*{{{*/ 17 17 this->size = -1; 18 18 this->values = NULL; 19 19 } 20 20 /*}}}*/ 21 BoolInput 2::BoolInput2(int size_in){/*{{{*/21 BoolInput::BoolInput(int size_in){/*{{{*/ 22 22 _assert_(size_in>0); 23 23 _assert_(size_in<1e11); … … 26 26 } 27 27 /*}}}*/ 28 BoolInput 2::~BoolInput2(){/*{{{*/28 BoolInput::~BoolInput(){/*{{{*/ 29 29 xDelete<bool>(this->values); 30 30 } … … 32 32 33 33 /*Object virtual functions definitions:*/ 34 Input 2* BoolInput2::copy() {/*{{{*/34 Input* BoolInput::copy() {/*{{{*/ 35 35 36 36 _assert_(this->size); 37 BoolInput 2* output = new BoolInput2(this->size);37 BoolInput* output = new BoolInput(this->size); 38 38 xMemCpy<bool>(output->values,this->values,this->size); 39 39 … … 42 42 } 43 43 /*}}}*/ 44 void BoolInput 2::DeepEcho(void){/*{{{*/44 void BoolInput::DeepEcho(void){/*{{{*/ 45 45 46 _printf_("BoolInput 2Echo:\n");46 _printf_("BoolInput Echo:\n"); 47 47 _printf_(" Size: "<<size<<"\n"); 48 48 printarray(this->values,this->size); 49 49 } 50 50 /*}}}*/ 51 void BoolInput 2::Echo(void){/*{{{*/51 void BoolInput::Echo(void){/*{{{*/ 52 52 this->DeepEcho(); 53 53 } 54 54 /*}}}*/ 55 int BoolInput 2::Id(void){ return -1; }/*{{{*/55 int BoolInput::Id(void){ return -1; }/*{{{*/ 56 56 /*}}}*/ 57 void BoolInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/57 void BoolInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 58 58 59 MARSHALLING_ENUM(BoolInput 2Enum);59 MARSHALLING_ENUM(BoolInputEnum); 60 60 MARSHALLING(this->size); 61 61 if(this->size > 0){ … … 66 66 } 67 67 /*}}}*/ 68 int BoolInput 2::ObjectEnum(void){/*{{{*/68 int BoolInput::ObjectEnum(void){/*{{{*/ 69 69 70 return BoolInput 2Enum;70 return BoolInputEnum; 71 71 72 72 } 73 73 /*}}}*/ 74 74 75 /*BoolInput 2management*/76 void BoolInput 2::GetInput(bool* pvalue,int index){/*{{{*/75 /*BoolInput management*/ 76 void BoolInput::GetInput(bool* pvalue,int index){/*{{{*/ 77 77 78 78 _assert_(index>=0); … … 82 82 } 83 83 /*}}}*/ 84 void BoolInput 2::SetInput(int index,bool value){/*{{{*/84 void BoolInput::SetInput(int index,bool value){/*{{{*/ 85 85 86 86 _assert_(index>=0); -
issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h
r25378 r25379 3 3 4 4 /*Headers:*/ 5 #include "./Input 2.h"5 #include "./Input.h" 6 6 7 class BoolInput 2: public Input2{7 class BoolInput: public Input{ 8 8 9 9 private: … … 12 12 13 13 public: 14 /*BoolInput 2constructors, destructors: {{{*/15 BoolInput 2();16 BoolInput 2(int size_in);17 ~BoolInput 2();14 /*BoolInput constructors, destructors: {{{*/ 15 BoolInput(); 16 BoolInput(int size_in); 17 ~BoolInput(); 18 18 /*}}}*/ 19 19 /*Object virtual functions definitions:{{{ */ 20 Input 2*copy();20 Input *copy(); 21 21 void DeepEcho(); 22 22 void Echo(); … … 25 25 int ObjectEnum(); 26 26 /*}}}*/ 27 /*BoolInput 2management: {{{*/27 /*BoolInput management: {{{*/ 28 28 void GetInput(bool* pvalue,int index); 29 29 void SetInput(int index,bool value); -
issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
r25378 r25379 1 /*!\file ControlInput 2.c2 * \brief: implementation of the ControlInput 2object1 /*!\file ControlInput.c 2 * \brief: implementation of the ControlInput object 3 3 */ 4 4 … … 9 9 #endif 10 10 11 #include "./ControlInput 2.h"12 #include "./ElementInput 2.h"13 #include "./TriaInput 2.h"14 #include "./PentaInput 2.h"11 #include "./ControlInput.h" 12 #include "./ElementInput.h" 13 #include "./TriaInput.h" 14 #include "./PentaInput.h" 15 15 //#include "../../toolkits/objects/Vector.h" 16 16 17 /*ControlInput 2constructors and destructor*/18 ControlInput 2::ControlInput2(){/*{{{*/17 /*ControlInput constructors and destructor*/ 18 ControlInput::ControlInput(){/*{{{*/ 19 19 control_id = 0; 20 20 values = NULL; … … 25 25 } 26 26 /*}}}*/ 27 ControlInput 2::ControlInput2(int nbe, int nbv,int input_layout_enum,int interp,int id){/*{{{*/27 ControlInput::ControlInput(int nbe, int nbv,int input_layout_enum,int interp,int id){/*{{{*/ 28 28 29 29 this->control_id = id; … … 31 31 32 32 switch(this->layout_enum){ 33 case TriaInput 2Enum:34 this->values =new TriaInput 2(nbe,nbv,interp);35 this->savedvalues=new TriaInput 2(nbe,nbv,interp);36 this->minvalues =new TriaInput 2(nbe,nbv,interp);37 this->maxvalues =new TriaInput 2(nbe,nbv,interp);38 this->gradient =new TriaInput 2(nbe,nbv,interp);33 case TriaInputEnum: 34 this->values =new TriaInput(nbe,nbv,interp); 35 this->savedvalues=new TriaInput(nbe,nbv,interp); 36 this->minvalues =new TriaInput(nbe,nbv,interp); 37 this->maxvalues =new TriaInput(nbe,nbv,interp); 38 this->gradient =new TriaInput(nbe,nbv,interp); 39 39 break; 40 case PentaInput 2Enum:41 this->values =new PentaInput 2(nbe,nbv,interp);42 this->savedvalues=new PentaInput 2(nbe,nbv,interp);43 this->minvalues =new PentaInput 2(nbe,nbv,interp);44 this->maxvalues =new PentaInput 2(nbe,nbv,interp);45 this->gradient =new PentaInput 2(nbe,nbv,interp);40 case PentaInputEnum: 41 this->values =new PentaInput(nbe,nbv,interp); 42 this->savedvalues=new PentaInput(nbe,nbv,interp); 43 this->minvalues =new PentaInput(nbe,nbv,interp); 44 this->maxvalues =new PentaInput(nbe,nbv,interp); 45 this->gradient =new PentaInput(nbe,nbv,interp); 46 46 break; 47 47 default: 48 _error_("Input of Enum \"" << EnumToStringx(input_layout_enum) << "\" not supported yet by ControlInput 2");49 } 50 } 51 /*}}}*/ 52 ControlInput 2::~ControlInput2(){/*{{{*/48 _error_("Input of Enum \"" << EnumToStringx(input_layout_enum) << "\" not supported yet by ControlInput"); 49 } 50 } 51 /*}}}*/ 52 ControlInput::~ControlInput(){/*{{{*/ 53 53 if(values) delete values; 54 54 if(savedvalues) delete savedvalues; … … 60 60 61 61 /*Object virtual functions definitions:*/ 62 Input 2* ControlInput2::copy() {/*{{{*/63 64 ControlInput 2* output=NULL;65 66 output = new ControlInput 2();62 Input* ControlInput::copy() {/*{{{*/ 63 64 ControlInput* output=NULL; 65 66 output = new ControlInput(); 67 67 output->enum_type=this->enum_type; 68 68 output->control_id=this->control_id; 69 69 output->layout_enum = this->control_id; 70 70 71 if(values) output->values = xDynamicCast<ElementInput 2*>(this->values->copy());72 if(savedvalues) output->savedvalues = xDynamicCast<ElementInput 2*>(this->savedvalues->copy());73 if(minvalues) output->minvalues = xDynamicCast<ElementInput 2*>(this->minvalues->copy());74 if(maxvalues) output->maxvalues = xDynamicCast<ElementInput 2*>(this->maxvalues->copy());75 if(gradient) output->gradient = xDynamicCast<ElementInput 2*>(this->gradient->copy());71 if(values) output->values = xDynamicCast<ElementInput*>(this->values->copy()); 72 if(savedvalues) output->savedvalues = xDynamicCast<ElementInput*>(this->savedvalues->copy()); 73 if(minvalues) output->minvalues = xDynamicCast<ElementInput*>(this->minvalues->copy()); 74 if(maxvalues) output->maxvalues = xDynamicCast<ElementInput*>(this->maxvalues->copy()); 75 if(gradient) output->gradient = xDynamicCast<ElementInput*>(this->gradient->copy()); 76 76 77 77 return output; 78 78 } 79 79 /*}}}*/ 80 void ControlInput 2::DeepEcho(void){/*{{{*/81 82 _printf_("ControlInput 2:\n");83 _printf_(setw(15)<<" ControlInput 2"<<setw(25)<<left<<EnumToStringx(this->enum_type)<<"\n");84 _printf_(setw(15)<<" ControlInput 2"<<setw(25)<<left<<EnumToStringx(this->layout_enum)<<"\n");80 void ControlInput::DeepEcho(void){/*{{{*/ 81 82 _printf_("ControlInput:\n"); 83 _printf_(setw(15)<<" ControlInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<"\n"); 84 _printf_(setw(15)<<" ControlInput "<<setw(25)<<left<<EnumToStringx(this->layout_enum)<<"\n"); 85 85 _printf_("---values: \n"); if (values) values->Echo(); 86 86 _printf_("---savedvalues: \n");if (savedvalues) savedvalues->Echo(); … … 90 90 } 91 91 /*}}}*/ 92 void ControlInput 2::Echo(void){/*{{{*/92 void ControlInput::Echo(void){/*{{{*/ 93 93 this->DeepEcho(); 94 94 } 95 95 /*}}}*/ 96 int ControlInput 2::Id(void){ return -1; }/*{{{*/97 /*}}}*/ 98 void ControlInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/99 100 MARSHALLING_ENUM(ControlInput 2Enum);96 int ControlInput::Id(void){ return -1; }/*{{{*/ 97 /*}}}*/ 98 void ControlInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 99 100 MARSHALLING_ENUM(ControlInputEnum); 101 101 _error_("Not implemented"); 102 102 } 103 103 /*}}}*/ 104 int ControlInput 2::ObjectEnum(void){/*{{{*/105 106 return ControlInput 2Enum;107 108 } 109 /*}}}*/ 110 111 void ControlInput 2::SetControl(int interp,int numindices,int* indices,IssmDouble* values_in,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/104 int ControlInput::ObjectEnum(void){/*{{{*/ 105 106 return ControlInputEnum; 107 108 } 109 /*}}}*/ 110 111 void ControlInput::SetControl(int interp,int numindices,int* indices,IssmDouble* values_in,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/ 112 112 113 113 _assert_(this); 114 114 115 115 /*Set input*/ 116 //TriaInput 2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);116 //TriaInput* input = xDynamicCast<TriaInput*>(this->inputs[id]); 117 117 this->values->SetInput(interp,numindices,indices,values_in); 118 118 this->minvalues->SetInput(interp,numindices,indices,values_min); … … 120 120 } 121 121 /*}}}*/ 122 void ControlInput 2::SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in){/*{{{*/122 void ControlInput::SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in){/*{{{*/ 123 123 124 124 _assert_(this); … … 127 127 } 128 128 /*}}}*/ 129 void ControlInput 2::SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in,int n){/*{{{*/130 131 if(this->values->ObjectEnum()!=TransientInput 2Enum)_error_("you are in the wrong place, go home");129 void ControlInput::SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in,int n){/*{{{*/ 130 131 if(this->values->ObjectEnum()!=TransientInputEnum)_error_("you are in the wrong place, go home"); 132 132 _assert_(this); 133 133 _assert_(this->gradient); 134 134 _error_("S"); 135 135 136 //TransientInput 2* transient_input = xDynamicCast<TransientInput2*>(this->gradient);137 //TransientInput 2* values_input = xDynamicCast<TransientInput2*>(this->values);136 //TransientInput* transient_input = xDynamicCast<TransientInput*>(this->gradient); 137 //TransientInput* values_input = xDynamicCast<TransientInput*>(this->values); 138 138 //if(values_input->numtimesteps==transient_input->numtimesteps){ 139 // TransientInput* new_trans_input = new TransientInput 2(ControlInputGradEnum);139 // TransientInput* new_trans_input = new TransientInput(ControlInputGradEnum); 140 140 // IssmDouble time = transient_input->GetTimeByOffset(timestep); 141 141 // for(int i=0;i<transient_input->numtimesteps;i++){ 142 142 // if(transient_input->timesteps[i]==time) new_trans_input->AddTimeInput(xDynamicCast<TriaInput*>(gradient_in),time); 143 143 // else { 144 // Input 2* input = transient_input->GetTimeInput(transient_input->timesteps[i]);145 // new_trans_input->AddTimeInput(xDynamicCast<TriaInput 2*>(input),transient_input->timesteps[i]);144 // Input* input = transient_input->GetTimeInput(transient_input->timesteps[i]); 145 // new_trans_input->AddTimeInput(xDynamicCast<TriaInput*>(input),transient_input->timesteps[i]); 146 146 // } 147 147 // } … … 158 158 } 159 159 /*}}}*/ 160 TriaInput 2* ControlInput2::GetTriaInput(){/*{{{*/160 TriaInput* ControlInput::GetTriaInput(){/*{{{*/ 161 161 162 162 /*Cast and return*/ 163 if(this->values->ObjectEnum()!=TriaInput 2Enum){164 _error_("Cannot return a TriaInput 2");165 } 166 return xDynamicCast<TriaInput 2*>(this->values);167 168 } 169 /*}}}*/ 170 PentaInput 2* ControlInput2::GetPentaInput(){/*{{{*/163 if(this->values->ObjectEnum()!=TriaInputEnum){ 164 _error_("Cannot return a TriaInput"); 165 } 166 return xDynamicCast<TriaInput*>(this->values); 167 168 } 169 /*}}}*/ 170 PentaInput* ControlInput::GetPentaInput(){/*{{{*/ 171 171 172 172 /*Cast and return*/ 173 if(this->values->ObjectEnum()!=PentaInput 2Enum){174 _error_("Cannot return a PentaInput 2");175 } 176 return xDynamicCast<PentaInput 2*>(this->values);177 178 } 179 /*}}}*/ 180 ElementInput 2* ControlInput2::GetInput2(const char* data){/*{{{*/173 if(this->values->ObjectEnum()!=PentaInputEnum){ 174 _error_("Cannot return a PentaInput"); 175 } 176 return xDynamicCast<PentaInput*>(this->values); 177 178 } 179 /*}}}*/ 180 ElementInput* ControlInput::GetInput(const char* data){/*{{{*/ 181 181 182 182 if(strcmp(data,"value")==0){ -
issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h
r25378 r25379 1 /*! \file ControlInput 2.h1 /*! \file ControlInput.h 2 2 * \brief: header file for triavertexinput object 3 3 */ … … 7 7 8 8 /*Headers:*/ 9 #include "./Input 2.h"9 #include "./Input.h" 10 10 class Gauss; 11 class ElementInput 2;11 class ElementInput; 12 12 13 class ControlInput 2: public Input2{13 class ControlInput: public Input{ 14 14 15 15 public: … … 17 17 int enum_type; 18 18 int layout_enum; 19 ElementInput 2*gradient;20 ElementInput 2*maxvalues;21 ElementInput 2*minvalues;22 ElementInput 2*savedvalues;23 ElementInput 2*values;19 ElementInput *gradient; 20 ElementInput *maxvalues; 21 ElementInput *minvalues; 22 ElementInput *savedvalues; 23 ElementInput *values; 24 24 25 /*ControlInput 2constructors, destructors: {{{*/26 ControlInput 2();27 ControlInput 2(int nbe, int nbv,int input_layout_enum,int interp,int id);28 ~ControlInput 2();25 /*ControlInput constructors, destructors: {{{*/ 26 ControlInput(); 27 ControlInput(int nbe, int nbv,int input_layout_enum,int interp,int id); 28 ~ControlInput(); 29 29 /*}}}*/ 30 30 /*Object virtual functions definitions:{{{ */ 31 Input 2* copy();31 Input* copy(); 32 32 void DeepEcho(); 33 33 void Echo(); … … 36 36 int ObjectEnum(); 37 37 /*}}}*/ 38 void SetInput(Input 2* in_input){_error_("not impelemented");};39 void SetInput(Input 2* in_input,int timeoffset){_error_("not impelemented");};40 ElementInput 2* GetInput2(const char* data);38 void SetInput(Input* in_input){_error_("not impelemented");}; 39 void SetInput(Input* in_input,int timeoffset){_error_("not impelemented");}; 40 ElementInput* GetInput(const char* data); 41 41 void SetControl(int interp,int numindices,int* indices,IssmDouble* values_in,IssmDouble* values_min,IssmDouble* values_max); 42 42 void SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in); 43 43 void SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in,int n); 44 TriaInput 2* GetTriaInput();45 PentaInput 2* GetPentaInput();44 TriaInput* GetTriaInput(); 45 PentaInput* GetPentaInput(); 46 46 }; 47 47 #endif /* _CONTROLINPUT_H */ -
issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp
r25378 r25379 1 /*!\file DatasetInput 2.c1 /*!\file DatasetInput.c 2 2 * \brief: implementation of the datasetinput object 3 3 */ … … 9 9 #endif 10 10 11 #include "./DatasetInput 2.h"12 #include "./TriaInput 2.h"13 #include "./PentaInput 2.h"14 #include "./TransientInput 2.h"15 16 /*DatasetInput 2constructors and destructor*/17 DatasetInput 2::DatasetInput2(){/*{{{*/11 #include "./DatasetInput.h" 12 #include "./TriaInput.h" 13 #include "./PentaInput.h" 14 #include "./TransientInput.h" 15 16 /*DatasetInput constructors and destructor*/ 17 DatasetInput::DatasetInput(){/*{{{*/ 18 18 this->inputs = NULL; 19 19 this->numids = 0; … … 23 23 } 24 24 /*}}}*/ 25 DatasetInput 2::DatasetInput2(int nbe, int nbv){/*{{{*/25 DatasetInput::DatasetInput(int nbe, int nbv){/*{{{*/ 26 26 this->inputs = NULL; 27 27 this->numids = 0; … … 31 31 } 32 32 /*}}}*/ 33 DatasetInput 2::~DatasetInput2(){/*{{{*/33 DatasetInput::~DatasetInput(){/*{{{*/ 34 34 xDelete<int>(this->ids); 35 35 for(int i=0;i<this->numids;i++){ 36 36 delete this->inputs[i]; 37 37 } 38 xDelete<Input 2*>(this->inputs);38 xDelete<Input*>(this->inputs); 39 39 } 40 40 /*}}}*/ 41 41 42 42 /*Object virtual functions definitions:*/ 43 Input 2* DatasetInput2::copy() {/*{{{*/44 45 DatasetInput 2* output=NULL;46 47 output = new DatasetInput 2();43 Input* DatasetInput::copy() {/*{{{*/ 44 45 DatasetInput* output=NULL; 46 47 output = new DatasetInput(); 48 48 output->numids=this->numids; 49 49 if(this->numids>0){ 50 50 output->ids=xNew<int>(output->numids); 51 51 xMemCpy(output->ids,this->ids,output->numids); 52 output->inputs = xNew<Input 2*>(this->numids);52 output->inputs = xNew<Input*>(this->numids); 53 53 for(int i=0;i<this->numids;i++){ 54 54 output->inputs[i] = this->inputs[i]->copy(); … … 59 59 } 60 60 /*}}}*/ 61 void DatasetInput 2::Configure(Parameters* params){/*{{{*/61 void DatasetInput::Configure(Parameters* params){/*{{{*/ 62 62 for(int i=0;i<this->numids;i++){ 63 63 this->inputs[i]->Configure(params); … … 65 65 } 66 66 /*}}}*/ 67 void DatasetInput 2::DeepEcho(void){/*{{{*/68 69 _printf_("DatasetInput 2:\n");67 void DatasetInput::DeepEcho(void){/*{{{*/ 68 69 _printf_("DatasetInput:\n"); 70 70 _printf_(" numids:"<< this->numids<< "\n"); 71 71 _printf_(" ids: "); … … 75 75 } 76 76 /*}}}*/ 77 void DatasetInput 2::Echo(void){/*{{{*/77 void DatasetInput::Echo(void){/*{{{*/ 78 78 this->DeepEcho(); 79 79 } 80 80 /*}}}*/ 81 int DatasetInput 2::Id(void){ return -1; }/*{{{*/82 /*}}}*/ 83 void DatasetInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/84 85 MARSHALLING_ENUM(DatasetInput 2Enum);81 int DatasetInput::Id(void){ return -1; }/*{{{*/ 82 /*}}}*/ 83 void DatasetInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 84 85 MARSHALLING_ENUM(DatasetInputEnum); 86 86 87 87 MARSHALLING(numids); … … 95 95 } 96 96 /*}}}*/ 97 int DatasetInput 2::ObjectEnum(void){/*{{{*/98 return DatasetInput 2Enum;99 }/*}}}*/ 100 101 void DatasetInput 2::SetTriaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in){ /*{{{*/97 int DatasetInput::ObjectEnum(void){/*{{{*/ 98 return DatasetInputEnum; 99 }/*}}}*/ 100 101 void DatasetInput::SetTriaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in){ /*{{{*/ 102 102 103 103 int index = -1; … … 112 112 new_ids[this->numids] = id; 113 113 114 Input 2** new_inputs = xNew<Input2*>(this->numids+1);114 Input** new_inputs = xNew<Input*>(this->numids+1); 115 115 if(this->numids) xMemCpy(new_inputs,this->inputs,this->numids); 116 new_inputs[this->numids] = new TriaInput 2(this->numberofelements_local,this->numberofvertices_local,interp_in);116 new_inputs[this->numids] = new TriaInput(this->numberofelements_local,this->numberofvertices_local,interp_in); 117 117 index = this->numids; 118 118 119 119 xDelete<int>(this->ids); 120 120 this->ids = new_ids; 121 xDelete<Input 2*>(this->inputs);121 xDelete<Input*>(this->inputs); 122 122 this->inputs = new_inputs; 123 123 … … 126 126 127 127 /*Set input*/ 128 if(this->inputs[index]->ObjectEnum()!=TriaInput 2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum()));129 TriaInput 2* input = xDynamicCast<TriaInput2*>(this->inputs[index]);128 if(this->inputs[index]->ObjectEnum()!=TriaInputEnum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum())); 129 TriaInput* input = xDynamicCast<TriaInput*>(this->inputs[index]); 130 130 input->SetInput(interp_in,numinds,rows,values_in); 131 131 132 132 } 133 133 /*}}}*/ 134 void DatasetInput 2::SetPentaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in){ /*{{{*/134 void DatasetInput::SetPentaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in){ /*{{{*/ 135 135 136 136 int index = -1; … … 145 145 new_ids[this->numids] = id; 146 146 147 Input 2** new_inputs = xNew<Input2*>(this->numids+1);147 Input** new_inputs = xNew<Input*>(this->numids+1); 148 148 if(this->numids) xMemCpy(new_inputs,this->inputs,this->numids); 149 new_inputs[this->numids] = new PentaInput 2(this->numberofelements_local,this->numberofvertices_local,interp_in);149 new_inputs[this->numids] = new PentaInput(this->numberofelements_local,this->numberofvertices_local,interp_in); 150 150 index = this->numids; 151 151 152 152 xDelete<int>(this->ids); 153 153 this->ids = new_ids; 154 xDelete<Input 2*>(this->inputs);154 xDelete<Input*>(this->inputs); 155 155 this->inputs = new_inputs; 156 156 … … 159 159 160 160 /*Set input*/ 161 if(this->inputs[index]->ObjectEnum()!=PentaInput 2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum()));162 PentaInput 2* input = xDynamicCast<PentaInput2*>(this->inputs[index]);161 if(this->inputs[index]->ObjectEnum()!=PentaInputEnum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum())); 162 PentaInput* input = xDynamicCast<PentaInput*>(this->inputs[index]); 163 163 input->SetInput(interp_in,numinds,rows,values_in); 164 164 165 165 } 166 166 /*}}}*/ 167 TransientInput 2* DatasetInput2::SetTransientInput(int id,IssmDouble* times,int numtimes){ /*{{{*/167 TransientInput* DatasetInput::SetTransientInput(int id,IssmDouble* times,int numtimes){ /*{{{*/ 168 168 169 169 int index = -1; … … 178 178 new_ids[this->numids] = id; 179 179 180 Input 2** new_inputs = xNew<Input2*>(this->numids+1);180 Input** new_inputs = xNew<Input*>(this->numids+1); 181 181 if(this->numids) xMemCpy(new_inputs,this->inputs,this->numids); 182 new_inputs[this->numids] = new TransientInput 2(NoneEnum,this->numberofelements_local,this->numberofvertices_local,times,numtimes);182 new_inputs[this->numids] = new TransientInput(NoneEnum,this->numberofelements_local,this->numberofvertices_local,times,numtimes); 183 183 index = this->numids; 184 184 185 185 xDelete<int>(this->ids); 186 186 this->ids = new_ids; 187 xDelete<Input 2*>(this->inputs);187 xDelete<Input*>(this->inputs); 188 188 this->inputs = new_inputs; 189 189 … … 192 192 193 193 /*Set input*/ 194 if(this->inputs[index]->ObjectEnum()!=TransientInput 2Enum) _error_("cannot add values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum()));195 TransientInput 2* input = xDynamicCast<TransientInput2*>(this->inputs[index]);194 if(this->inputs[index]->ObjectEnum()!=TransientInputEnum) _error_("cannot add values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum())); 195 TransientInput* input = xDynamicCast<TransientInput*>(this->inputs[index]); 196 196 return input; 197 197 } 198 198 /*}}}*/ 199 void DatasetInput 2::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int id){ /*{{{*/199 void DatasetInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int id){ /*{{{*/ 200 200 201 201 int index = -1; … … 210 210 } 211 211 212 Input 2* input = this->inputs[index];213 214 if(this->inputs[index]->ObjectEnum()==TransientInput 2Enum){215 input = xDynamicCast<TransientInput 2*>(this->inputs[index])->current_input;212 Input* input = this->inputs[index]; 213 214 if(this->inputs[index]->ObjectEnum()==TransientInputEnum){ 215 input = xDynamicCast<TransientInput*>(this->inputs[index])->current_input; 216 216 } 217 217 … … 220 220 } 221 221 /*}}}*/ 222 IssmDouble DatasetInput 2::GetInputMin(void){ /*{{{*/222 IssmDouble DatasetInput::GetInputMin(void){ /*{{{*/ 223 223 224 224 IssmDouble minvalue,newminvalue; 225 225 for(int i=0;i<this->numids;i++){ 226 226 227 Input 2* input = this->inputs[i];228 229 if(this->inputs[i]->ObjectEnum()==TransientInput 2Enum){230 input = xDynamicCast<TransientInput 2*>(this->inputs[i])->current_input;227 Input* input = this->inputs[i]; 228 229 if(this->inputs[i]->ObjectEnum()==TransientInputEnum){ 230 input = xDynamicCast<TransientInput*>(this->inputs[i])->current_input; 231 231 } 232 232 newminvalue=input->GetInputMin(); … … 238 238 } 239 239 /*}}}*/ 240 TransientInput 2* DatasetInput2::GetTransientInputByOffset(int offset){/*{{{*/240 TransientInput* DatasetInput::GetTransientInputByOffset(int offset){/*{{{*/ 241 241 242 242 _assert_(offset>=0 && offset<this->numids); … … 244 244 245 245 /*Cast and return*/ 246 if(this->inputs[offset]->ObjectEnum()==TransientInput 2Enum){247 return xDynamicCast<TransientInput 2*>(this->inputs[offset]);246 if(this->inputs[offset]->ObjectEnum()==TransientInputEnum){ 247 return xDynamicCast<TransientInput*>(this->inputs[offset]); 248 248 } 249 249 else{ 250 _error_("Cannot return a TransientInput 2");251 } 252 }/*}}}*/ 253 TriaInput 2* DatasetInput2::GetTriaInput(void){/*{{{*/250 _error_("Cannot return a TransientInput"); 251 } 252 }/*}}}*/ 253 TriaInput* DatasetInput::GetTriaInput(void){/*{{{*/ 254 254 255 255 return this->GetTriaInputByOffset(0); 256 256 257 257 }/*}}}*/ 258 TriaInput 2* DatasetInput2::GetTriaInputByOffset(int offset){/*{{{*/258 TriaInput* DatasetInput::GetTriaInputByOffset(int offset){/*{{{*/ 259 259 260 260 _assert_(offset>=0 && offset<this->numids); … … 262 262 263 263 /*Cast and return*/ 264 if(this->inputs[offset]->ObjectEnum()==TransientInput 2Enum){265 return xDynamicCast<TransientInput 2*>(this->inputs[offset])->GetTriaInput();266 } 267 if(this->inputs[offset]->ObjectEnum()!=TriaInput 2Enum){268 _error_("Cannot return a TriaInput 2");269 } 270 return xDynamicCast<TriaInput 2*>(this->inputs[offset]);271 272 }/*}}}*/ 273 PentaInput 2* DatasetInput2::GetPentaInputByOffset(int offset){/*{{{*/264 if(this->inputs[offset]->ObjectEnum()==TransientInputEnum){ 265 return xDynamicCast<TransientInput*>(this->inputs[offset])->GetTriaInput(); 266 } 267 if(this->inputs[offset]->ObjectEnum()!=TriaInputEnum){ 268 _error_("Cannot return a TriaInput"); 269 } 270 return xDynamicCast<TriaInput*>(this->inputs[offset]); 271 272 }/*}}}*/ 273 PentaInput* DatasetInput::GetPentaInputByOffset(int offset){/*{{{*/ 274 274 275 275 _assert_(offset>=0 && offset<this->numids); … … 277 277 278 278 /*Cast and return*/ 279 if(this->inputs[offset]->ObjectEnum()==TransientInput 2Enum){280 return xDynamicCast<TransientInput 2*>(this->inputs[offset])->GetPentaInput();281 } 282 if(this->inputs[offset]->ObjectEnum()!=PentaInput 2Enum){283 _error_("Cannot return a PentaInput 2");284 } 285 return xDynamicCast<PentaInput 2*>(this->inputs[offset]);286 287 }/*}}}*/ 279 if(this->inputs[offset]->ObjectEnum()==TransientInputEnum){ 280 return xDynamicCast<TransientInput*>(this->inputs[offset])->GetPentaInput(); 281 } 282 if(this->inputs[offset]->ObjectEnum()!=PentaInputEnum){ 283 _error_("Cannot return a PentaInput"); 284 } 285 return xDynamicCast<PentaInput*>(this->inputs[offset]); 286 287 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h
r25378 r25379 1 /*! \file DatasetInput 2.h1 /*! \file DatasetInput.h 2 2 * \brief: header file for datasetinput object 3 3 */ … … 7 7 8 8 /*Headers:*/ 9 #include "./Input 2.h"10 class TriaInput 2;11 class PentaInput 2;12 class TransientInput 2;9 #include "./Input.h" 10 class TriaInput; 11 class PentaInput; 12 class TransientInput; 13 13 14 class DatasetInput 2: public Input2{14 class DatasetInput: public Input{ 15 15 16 16 private: 17 17 int numids; 18 Input 2**inputs;18 Input **inputs; 19 19 int *ids; 20 20 int numberofelements_local; … … 24 24 int GetNumIds() const {return this->numids;}; 25 25 /*DatasetInput constructors, destructors: {{{*/ 26 DatasetInput 2();27 DatasetInput 2(int nbe, int nbv);28 ~DatasetInput 2();26 DatasetInput(); 27 DatasetInput(int nbe, int nbv); 28 ~DatasetInput(); 29 29 /*}}}*/ 30 30 /*Object virtual functions definitions:{{{ */ 31 Input 2* copy();31 Input* copy(); 32 32 void Configure(Parameters* params); 33 33 void DeepEcho(); … … 41 41 void SetTriaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in); 42 42 void SetPentaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in); 43 TransientInput 2* SetTransientInput(int id,IssmDouble* times,int numtimes);44 PentaInput 2* GetPentaInputByOffset(int i);45 TriaInput 2* GetTriaInput(void);46 TriaInput 2* GetTriaInputByOffset(int i);47 TransientInput 2* GetTransientInputByOffset(int offset);43 TransientInput* SetTransientInput(int id,IssmDouble* times,int numtimes); 44 PentaInput* GetPentaInputByOffset(int i); 45 TriaInput* GetTriaInput(void); 46 TriaInput* GetTriaInputByOffset(int i); 47 TransientInput* GetTransientInputByOffset(int offset); 48 48 void GetInputValue(IssmDouble* pvalue,Gauss* gauss,int index); 49 49 }; -
issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp
r25378 r25379 1 /*!\file DoubleInput 2.c2 * \brief: implementation of the DoubleInput 2object1 /*!\file DoubleInput.c 2 * \brief: implementation of the DoubleInput object 3 3 */ 4 4 … … 11 11 #include "../classes.h" 12 12 #include "../../shared/shared.h" 13 #include "./DoubleInput 2.h"13 #include "./DoubleInput.h" 14 14 15 /*DoubleInput 2constructors and destructor*/16 DoubleInput 2::DoubleInput2(){/*{{{*/15 /*DoubleInput constructors and destructor*/ 16 DoubleInput::DoubleInput(){/*{{{*/ 17 17 this->size = -1; 18 18 this->values = NULL; 19 19 } 20 20 /*}}}*/ 21 DoubleInput 2::DoubleInput2(int size_in){/*{{{*/21 DoubleInput::DoubleInput(int size_in){/*{{{*/ 22 22 _assert_(size_in>0); 23 23 _assert_(size_in<1e11); … … 26 26 } 27 27 /*}}}*/ 28 DoubleInput 2::~DoubleInput2(){/*{{{*/28 DoubleInput::~DoubleInput(){/*{{{*/ 29 29 xDelete<IssmDouble>(this->values); 30 30 } … … 32 32 33 33 /*Object virtual functions definitions:*/ 34 Input 2* DoubleInput2::copy() {/*{{{*/34 Input* DoubleInput::copy() {/*{{{*/ 35 35 36 DoubleInput 2* output = new DoubleInput2(this->size);36 DoubleInput* output = new DoubleInput(this->size); 37 37 xMemCpy<IssmDouble>(output->values,this->values,this->size); 38 38 … … 40 40 } 41 41 /*}}}*/ 42 void DoubleInput 2::DeepEcho(void){/*{{{*/42 void DoubleInput::DeepEcho(void){/*{{{*/ 43 43 44 _printf_("DoubleInput 2Echo:\n");44 _printf_("DoubleInput Echo:\n"); 45 45 _printf_(" Size: "<<size<<"\n"); 46 46 printarray(this->values,this->size); 47 //_printf_(setw(15)<<" DoubleInput 2"<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");47 //_printf_(setw(15)<<" DoubleInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n"); 48 48 } 49 49 /*}}}*/ 50 void DoubleInput 2::Echo(void){/*{{{*/50 void DoubleInput::Echo(void){/*{{{*/ 51 51 this->DeepEcho(); 52 52 } 53 53 /*}}}*/ 54 int DoubleInput 2::Id(void){ return -1; }/*{{{*/54 int DoubleInput::Id(void){ return -1; }/*{{{*/ 55 55 /*}}}*/ 56 void DoubleInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/56 void DoubleInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 57 57 58 MARSHALLING_ENUM(DoubleInput 2Enum);58 MARSHALLING_ENUM(DoubleInputEnum); 59 59 60 60 MARSHALLING(this->size); … … 66 66 } 67 67 /*}}}*/ 68 int DoubleInput 2::ObjectEnum(void){/*{{{*/68 int DoubleInput::ObjectEnum(void){/*{{{*/ 69 69 70 return DoubleInput 2Enum;70 return DoubleInputEnum; 71 71 72 72 } 73 73 /*}}}*/ 74 74 75 /*DoubleInput 2management*/76 void DoubleInput 2::GetInput(IssmDouble* pvalue,int index){/*{{{*/75 /*DoubleInput management*/ 76 void DoubleInput::GetInput(IssmDouble* pvalue,int index){/*{{{*/ 77 77 78 78 _assert_(index>=0); … … 82 82 } 83 83 /*}}}*/ 84 void DoubleInput 2::SetInput(int index,IssmDouble value){/*{{{*/84 void DoubleInput::SetInput(int index,IssmDouble value){/*{{{*/ 85 85 86 86 _assert_(index>=0); -
issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h
r25378 r25379 3 3 4 4 /*Headers:*/ 5 #include "./Input 2.h"5 #include "./Input.h" 6 6 7 class DoubleInput 2: public Input2{7 class DoubleInput: public Input{ 8 8 9 9 private: … … 12 12 13 13 public: 14 /*DoubleInput 2constructors, destructors: {{{*/15 DoubleInput 2();16 DoubleInput 2(int size_in);17 ~DoubleInput 2();14 /*DoubleInput constructors, destructors: {{{*/ 15 DoubleInput(); 16 DoubleInput(int size_in); 17 ~DoubleInput(); 18 18 /*}}}*/ 19 19 /*Object virtual functions definitions:{{{ */ 20 Input 2*copy();20 Input *copy(); 21 21 void DeepEcho(); 22 22 void Echo(); … … 25 25 int ObjectEnum(); 26 26 /*}}}*/ 27 /*DoubleInput 2management: {{{*/27 /*DoubleInput management: {{{*/ 28 28 void GetInput(IssmDouble* pvalue,int index); 29 29 void SetInput(int index,IssmDouble value); -
issm/trunk-jpl/src/c/classes/Inputs/ElementInput.cpp
r25378 r25379 1 /*!\file ElementInput 2.c2 * \brief: implementation of the ElementInput 2object1 /*!\file ElementInput.c 2 * \brief: implementation of the ElementInput object 3 3 */ 4 4 … … 11 11 #include "../classes.h" 12 12 #include "../../shared/shared.h" 13 #include "./ElementInput 2.h"13 #include "./ElementInput.h" 14 14 15 /*ElementInput 2constructors and destructor*/16 ElementInput 2::ElementInput2(){/*{{{*/15 /*ElementInput constructors and destructor*/ 16 ElementInput::ElementInput(){/*{{{*/ 17 17 this->interpolation = -1; 18 18 this->M = -1; … … 23 23 } 24 24 /*}}}*/ 25 ElementInput 2::~ElementInput2(){/*{{{*/25 ElementInput::~ElementInput(){/*{{{*/ 26 26 if(this->element_values) xDelete<IssmDouble>(this->element_values); 27 27 if(this->values) xDelete<IssmDouble>(this->values); … … 30 30 31 31 /*Numerics*/ 32 int ElementInput 2::GetInputInterpolationType(void){/*{{{*/32 int ElementInput::GetInputInterpolationType(void){/*{{{*/ 33 33 34 34 return this->interpolation; -
issm/trunk-jpl/src/c/classes/Inputs/ElementInput.h
r25378 r25379 3 3 4 4 /*Headers:*/ 5 #include "./Input 2.h"5 #include "./Input.h" 6 6 7 class ElementInput 2: public Input2{7 class ElementInput: public Input{ 8 8 9 9 protected: … … 18 18 IssmDouble* element_values; 19 19 20 /*ElementInput 2constructors, destructors*/21 ElementInput 2();22 ~ElementInput 2();20 /*ElementInput constructors, destructors*/ 21 ElementInput(); 22 ~ElementInput(); 23 23 24 24 int GetInputInterpolationType(); 25 25 26 26 /*Object virtual functions definitions:*/ 27 virtual Input 2*copy()=0;27 virtual Input *copy()=0; 28 28 virtual void DeepEcho()=0; 29 29 virtual void Echo()=0; -
issm/trunk-jpl/src/c/classes/Inputs/Input.h
r25378 r25379 1 /*!\file: Input 2.h2 * \brief abstract class for Input 2object1 /*!\file: Input.h 2 * \brief abstract class for Input object 3 3 */ 4 4 … … 11 11 class Gauss; 12 12 class Parameters; 13 class SegInput 2;14 class TriaInput 2;15 class PentaInput 2;13 class SegInput; 14 class TriaInput; 15 class PentaInput; 16 16 template <class doubletype> class Vector; 17 17 18 class Input 2: public Object{18 class Input: public Object{ 19 19 20 20 private: … … 27 27 28 28 /*Virtual functions*/ 29 virtual ~Input 2(){};29 virtual ~Input(){}; 30 30 virtual void Configure(Parameters* parameters){return;}; 31 virtual Input 2* copy()=0;32 //virtual void GetInput 2AllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("Not implemented yet");};31 virtual Input* copy()=0; 32 //virtual void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("Not implemented yet");}; 33 33 virtual void GetInputAverage(IssmDouble* pvalue){_error_("Not implemented yet");}; 34 34 virtual IssmDouble GetInputMax(void){_error_("Not implemented yet");}; … … 38 38 virtual void GetInputValue(IssmDouble* pvalue,Gauss* gauss){int* temp = xNew<int>(3); _error_("Not implemented yet for");}; 39 39 virtual int GetInputInterpolationType(){_error_("Not implemented yet");}; 40 virtual SegInput 2* GetSegInput(){ int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");};41 virtual TriaInput 2* GetTriaInput(){ int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");};42 virtual PentaInput 2* GetPentaInput(){int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");};43 //virtual void GetInput 2UpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("Not implemented yet");};40 virtual SegInput* GetSegInput(){ int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");}; 41 virtual TriaInput* GetTriaInput(){ int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");}; 42 virtual PentaInput* GetPentaInput(){int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");}; 43 //virtual void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("Not implemented yet");}; 44 44 45 virtual void AXPY(Input 2* xinput,IssmDouble scalar){_error_("Not implemented yet");};46 virtual void PointWiseMult(Input 2* xinput){_error_("Not implemented yet");};45 virtual void AXPY(Input* xinput,IssmDouble scalar){_error_("Not implemented yet");}; 46 virtual void PointWiseMult(Input* xinput){_error_("Not implemented yet");}; 47 47 virtual void Pow(IssmDouble scale_factor){_error_("Not implemented yet");}; 48 48 virtual void Scale(IssmDouble scale_factor){_error_("Not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp
r25378 r25379 10 10 #endif 11 11 12 #include "./Input 2.h"13 #include "./Inputs 2.h"14 15 #include "./BoolInput 2.h"16 #include "./IntInput 2.h"17 #include "./DoubleInput 2.h"18 #include "./ElementInput 2.h"19 #include "./SegInput 2.h"20 #include "./TriaInput 2.h"21 #include "./PentaInput 2.h"22 #include "./TransientInput 2.h"23 #include "./ControlInput 2.h"24 #include "./DatasetInput 2.h"25 #include "./ArrayInput 2.h"12 #include "./Input.h" 13 #include "./Inputs.h" 14 15 #include "./BoolInput.h" 16 #include "./IntInput.h" 17 #include "./DoubleInput.h" 18 #include "./ElementInput.h" 19 #include "./SegInput.h" 20 #include "./TriaInput.h" 21 #include "./PentaInput.h" 22 #include "./TransientInput.h" 23 #include "./ControlInput.h" 24 #include "./DatasetInput.h" 25 #include "./ArrayInput.h" 26 26 using namespace std; 27 27 /*}}}*/ 28 28 29 29 /*Object constructors and destructor*/ 30 Inputs 2::Inputs2(void){/*{{{*/30 Inputs::Inputs(void){/*{{{*/ 31 31 32 32 this->numberofelements_local = 0; … … 37 37 } 38 38 /*}}}*/ 39 Inputs 2::Inputs2(int nbe,int nbv){/*{{{*/39 Inputs::Inputs(int nbe,int nbv){/*{{{*/ 40 40 41 41 this->numberofelements_local = nbe; … … 46 46 } 47 47 /*}}}*/ 48 Inputs 2::~Inputs2(){/*{{{*/48 Inputs::~Inputs(){/*{{{*/ 49 49 for(int i=0;i<NUMINPUTS;i++){ 50 50 if(this->inputs[i]) delete this->inputs[i]; … … 54 54 /*}}}*/ 55 55 56 Inputs 2* Inputs2::Copy(void){/*{{{*/57 58 Inputs 2* output = new Inputs2(this->numberofelements_local,this->numberofvertices_local);56 Inputs* Inputs::Copy(void){/*{{{*/ 57 58 Inputs* output = new Inputs(this->numberofelements_local,this->numberofvertices_local); 59 59 60 60 for(int i=0;i<NUMINPUTS;i++){ … … 64 64 return output; 65 65 }/*}}}*/ 66 void Inputs 2::DeepEcho(void){/*{{{*/66 void Inputs::DeepEcho(void){/*{{{*/ 67 67 for(int i=0;i<NUMINPUTS;i++) { 68 68 if(this->inputs[i]) this->inputs[i]->DeepEcho(); … … 71 71 } 72 72 /*}}}*/ 73 void Inputs 2::Echo(void){/*{{{*/73 void Inputs::Echo(void){/*{{{*/ 74 74 _printf_("Inputs Echo:\n"); 75 75 for(int i=0;i<NUMINPUTS;i++) { … … 79 79 } 80 80 /*}}}*/ 81 void Inputs 2::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){/*{{{*/81 void Inputs::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){/*{{{*/ 82 82 83 83 int obj_enum=-1; 84 int num_inputs 2=0;84 int num_inputs=0; 85 85 int index; 86 86 87 MARSHALLING_ENUM(Inputs 2Enum);87 MARSHALLING_ENUM(InputsEnum); 88 88 89 89 if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){ 90 90 91 /*Marshall num_inputs 2first*/91 /*Marshall num_inputs first*/ 92 92 for(int i=0;i<NUMINPUTS;i++){ 93 if(this->inputs[i]) num_inputs 2++;94 } 95 MARSHALLING(num_inputs 2);93 if(this->inputs[i]) num_inputs++; 94 } 95 MARSHALLING(num_inputs); 96 96 97 97 /*Marshall Parameters one by one now*/ … … 107 107 else{ 108 108 109 /*Get number of inputs 2marshalled*/110 MARSHALLING(num_inputs 2);109 /*Get number of inputs marshalled*/ 110 MARSHALLING(num_inputs); 111 111 112 112 /*Recover input2eters one by one*/ 113 for(int i=0;i<num_inputs 2;i++){113 for(int i=0;i<num_inputs;i++){ 114 114 115 115 /*Recover enum of object first: */ … … 117 117 MARSHALLING(obj_enum); 118 118 119 if(obj_enum==BoolInput 2Enum){120 BoolInput 2* boolinput2=new BoolInput2();119 if(obj_enum==BoolInputEnum){ 120 BoolInput* boolinput2=new BoolInput(); 121 121 boolinput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 122 122 this->inputs[index]=boolinput2; 123 123 } 124 else if(obj_enum==IntInput 2Enum){125 IntInput 2* intinput2=new IntInput2();124 else if(obj_enum==IntInputEnum){ 125 IntInput* intinput2=new IntInput(); 126 126 intinput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 127 127 this->inputs[index]=intinput2; 128 128 } 129 else if(obj_enum==TriaInput 2Enum){130 TriaInput 2* triainput2=new TriaInput2();129 else if(obj_enum==TriaInputEnum){ 130 TriaInput* triainput2=new TriaInput(); 131 131 triainput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 132 132 this->inputs[index]=triainput2; 133 133 } 134 else if(obj_enum==PentaInput 2Enum){135 PentaInput 2* pentainput2=new PentaInput2();134 else if(obj_enum==PentaInputEnum){ 135 PentaInput* pentainput2=new PentaInput(); 136 136 pentainput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 137 137 this->inputs[index]=pentainput2; … … 145 145 /*}}}*/ 146 146 147 void Inputs 2::AddInput(Input2* newinput){/*{{{*/147 void Inputs::AddInput(Input* newinput){/*{{{*/ 148 148 149 149 /*Get Enum from Param*/ … … 168 168 } 169 169 /*}}}*/ 170 void Inputs 2::ChangeEnum(int oldenumtype,int newenumtype){/*{{{*/170 void Inputs::ChangeEnum(int oldenumtype,int newenumtype){/*{{{*/ 171 171 172 172 /*Get indices from enums*/ … … 187 187 this->inputs[index_old] = NULL; 188 188 }/*}}}*/ 189 void Inputs 2::Configure(Parameters* parameters){/*{{{*/189 void Inputs::Configure(Parameters* parameters){/*{{{*/ 190 190 for(int i=0;i<NUMINPUTS;i++){ 191 191 if(this->inputs[i]) this->inputs[i]->Configure(parameters); … … 193 193 } 194 194 /*}}}*/ 195 int Inputs 2::DeleteInput(int input_enum){/*{{{*/195 int Inputs::DeleteInput(int input_enum){/*{{{*/ 196 196 197 197 int index = EnumToIndex(input_enum); … … 204 204 } 205 205 /*}}}*/ 206 void Inputs 2::DuplicateInput(int original_enum,int new_enum){/*{{{*/206 void Inputs::DuplicateInput(int original_enum,int new_enum){/*{{{*/ 207 207 208 208 _assert_(this); … … 221 221 222 222 /*Make a copy*/ 223 Input 2* copy=this->inputs[index_ori]->copy();223 Input* copy=this->inputs[index_ori]->copy(); 224 224 225 225 /*Add copy*/ … … 227 227 } 228 228 /*}}}*/ 229 int Inputs 2::EnumToIndex(int enum_in){/*{{{*/229 int Inputs::EnumToIndex(int enum_in){/*{{{*/ 230 230 231 231 _assert_(this); … … 243 243 return enum_in - InputsSTARTEnum -1; 244 244 }/*}}}*/ 245 bool Inputs 2::Exist(int enum_in){/*{{{*/245 bool Inputs::Exist(int enum_in){/*{{{*/ 246 246 247 247 _assert_(this); … … 252 252 } 253 253 /*}}}*/ 254 int Inputs 2::GetInputObjectEnum(int enum_in){/*{{{*/254 int Inputs::GetInputObjectEnum(int enum_in){/*{{{*/ 255 255 256 256 _assert_(this); … … 261 261 } 262 262 /*}}}*/ 263 void Inputs 2::GetInputsInterpolations(int* pnuminputs,int** pinterpolations,int** pinputenums){/*{{{*/263 void Inputs::GetInputsInterpolations(int* pnuminputs,int** pinterpolations,int** pinputenums){/*{{{*/ 264 264 265 265 /*First count number of inputs*/ … … 278 278 for(int i=0;i<NUMINPUTS;i++){ 279 279 280 Input 2* input=this->inputs[i];280 Input* input=this->inputs[i]; 281 281 if(!input) continue; 282 282 283 283 enumlist[count] = i+InputsSTARTEnum+1; 284 284 switch(input->ObjectEnum()){ 285 case BoolInput 2Enum:286 case IntInput 2Enum:285 case BoolInputEnum: 286 case IntInputEnum: 287 287 interpolations[count] = input->ObjectEnum(); 288 288 break; 289 case TriaInput 2Enum:289 case TriaInputEnum: 290 290 interpolations[count] = input->GetResultInterpolation(); 291 291 break; … … 303 303 304 304 }/*}}}*/ 305 SegInput 2* Inputs2::GetSegInput(int enum_in){/*{{{*/305 SegInput* Inputs::GetSegInput(int enum_in){/*{{{*/ 306 306 307 307 _assert_(this); … … 311 311 312 312 /*Check that it has the right format*/ 313 Input 2* input = this->inputs[id];313 Input* input = this->inputs[id]; 314 314 if(!input) return NULL; 315 315 316 316 return input->GetSegInput(); 317 317 }/*}}}*/ 318 TriaInput 2* Inputs2::GetTriaInput(int enum_in){/*{{{*/318 TriaInput* Inputs::GetTriaInput(int enum_in){/*{{{*/ 319 319 320 320 _assert_(this); … … 324 324 325 325 /*Check that it has the right format*/ 326 Input 2* input = this->inputs[id];326 Input* input = this->inputs[id]; 327 327 if(!input) return NULL; 328 328 329 329 return input->GetTriaInput(); 330 330 }/*}}}*/ 331 TriaInput 2* Inputs2::GetTriaInput(int enum_in,IssmDouble time){/*{{{*/332 333 /*Get input id*/ 334 int id = EnumToIndex(enum_in); 335 336 /*Check that it has the right format*/ 337 Input 2* input = this->inputs[id];338 if(!input) return NULL; 339 340 if(input->ObjectEnum()==TransientInput 2Enum){341 return xDynamicCast<TransientInput 2*>(input)->GetTriaInput(time);331 TriaInput* Inputs::GetTriaInput(int enum_in,IssmDouble time){/*{{{*/ 332 333 /*Get input id*/ 334 int id = EnumToIndex(enum_in); 335 336 /*Check that it has the right format*/ 337 Input* input = this->inputs[id]; 338 if(!input) return NULL; 339 340 if(input->ObjectEnum()==TransientInputEnum){ 341 return xDynamicCast<TransientInput*>(input)->GetTriaInput(time); 342 342 } 343 343 else{ … … 345 345 } 346 346 }/*}}}*/ 347 TriaInput 2* Inputs2::GetTriaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method){/*{{{*/348 349 /*Get input id*/ 350 int id = EnumToIndex(enum_in); 351 352 /*Check that it has the right format*/ 353 Input 2* input = this->inputs[id];354 if(!input) return NULL; 355 356 if(input->ObjectEnum()==TransientInput 2Enum){357 return xDynamicCast<TransientInput 2*>(input)->GetTriaInput(start_time,end_time,averaging_method);358 } 359 else{ 360 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput 2");361 } 362 }/*}}}*/ 363 PentaInput 2* Inputs2::GetPentaInput(int enum_in){/*{{{*/364 365 /*Get input id*/ 366 int id = EnumToIndex(enum_in); 367 368 /*Check that it has the right format*/ 369 Input 2* input = this->inputs[id];347 TriaInput* Inputs::GetTriaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method){/*{{{*/ 348 349 /*Get input id*/ 350 int id = EnumToIndex(enum_in); 351 352 /*Check that it has the right format*/ 353 Input* input = this->inputs[id]; 354 if(!input) return NULL; 355 356 if(input->ObjectEnum()==TransientInputEnum){ 357 return xDynamicCast<TransientInput*>(input)->GetTriaInput(start_time,end_time,averaging_method); 358 } 359 else{ 360 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput"); 361 } 362 }/*}}}*/ 363 PentaInput* Inputs::GetPentaInput(int enum_in){/*{{{*/ 364 365 /*Get input id*/ 366 int id = EnumToIndex(enum_in); 367 368 /*Check that it has the right format*/ 369 Input* input = this->inputs[id]; 370 370 if(!input) return NULL; 371 371 372 372 return input->GetPentaInput(); 373 373 }/*}}}*/ 374 PentaInput 2* Inputs2::GetPentaInput(int enum_in,IssmDouble time){/*{{{*/375 376 /*Get input id*/ 377 int id = EnumToIndex(enum_in); 378 379 /*Check that it has the right format*/ 380 Input 2* input = this->inputs[id];381 if(!input) return NULL; 382 383 if(input->ObjectEnum()==TransientInput 2Enum){384 return xDynamicCast<TransientInput 2*>(input)->GetPentaInput(time);374 PentaInput* Inputs::GetPentaInput(int enum_in,IssmDouble time){/*{{{*/ 375 376 /*Get input id*/ 377 int id = EnumToIndex(enum_in); 378 379 /*Check that it has the right format*/ 380 Input* input = this->inputs[id]; 381 if(!input) return NULL; 382 383 if(input->ObjectEnum()==TransientInputEnum){ 384 return xDynamicCast<TransientInput*>(input)->GetPentaInput(time); 385 385 } 386 386 else{ … … 388 388 } 389 389 }/*}}}*/ 390 PentaInput 2* Inputs2::GetPentaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method){/*{{{*/391 392 /*Get input id*/ 393 int id = EnumToIndex(enum_in); 394 395 /*Check that it has the right format*/ 396 Input 2* input = this->inputs[id];397 if(!input) return NULL; 398 399 if(input->ObjectEnum()==TransientInput 2Enum){400 return xDynamicCast<TransientInput 2*>(input)->GetPentaInput(start_time,end_time,averaging_method);401 } 402 else{ 403 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput 2");404 } 405 }/*}}}*/ 406 TransientInput 2* Inputs2::GetTransientInput(int enum_in){/*{{{*/407 408 /*Get input id*/ 409 int id = EnumToIndex(enum_in); 410 411 /*Check that it has the right format*/ 412 Input 2* input = this->inputs[id];413 if(!input) return NULL; 414 415 if(input->ObjectEnum() != TransientInput 2Enum){416 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput 2");390 PentaInput* Inputs::GetPentaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method){/*{{{*/ 391 392 /*Get input id*/ 393 int id = EnumToIndex(enum_in); 394 395 /*Check that it has the right format*/ 396 Input* input = this->inputs[id]; 397 if(!input) return NULL; 398 399 if(input->ObjectEnum()==TransientInputEnum){ 400 return xDynamicCast<TransientInput*>(input)->GetPentaInput(start_time,end_time,averaging_method); 401 } 402 else{ 403 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput"); 404 } 405 }/*}}}*/ 406 TransientInput* Inputs::GetTransientInput(int enum_in){/*{{{*/ 407 408 /*Get input id*/ 409 int id = EnumToIndex(enum_in); 410 411 /*Check that it has the right format*/ 412 Input* input = this->inputs[id]; 413 if(!input) return NULL; 414 415 if(input->ObjectEnum() != TransientInputEnum){ 416 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput"); 417 417 } 418 418 419 419 /*Cast and return*/ 420 TransientInput 2* output = xDynamicCast<TransientInput2*>(input);420 TransientInput* output = xDynamicCast<TransientInput*>(input); 421 421 return output; 422 422 }/*}}}*/ 423 ElementInput 2* Inputs2::GetControlInput2Data(int enum_in,const char* data){/*{{{*/424 425 /*Get input id*/ 426 int id = EnumToIndex(enum_in); 427 428 /*Check that it has the right format*/ 429 Input 2* input = this->inputs[id];430 if(!input) return NULL; 431 if(input->ObjectEnum() != ControlInput 2Enum){432 _error_("Input "<<EnumToStringx(enum_in)<<" is not an ControlInput 2");423 ElementInput* Inputs::GetControlInputData(int enum_in,const char* data){/*{{{*/ 424 425 /*Get input id*/ 426 int id = EnumToIndex(enum_in); 427 428 /*Check that it has the right format*/ 429 Input* input = this->inputs[id]; 430 if(!input) return NULL; 431 if(input->ObjectEnum() != ControlInputEnum){ 432 _error_("Input "<<EnumToStringx(enum_in)<<" is not an ControlInput"); 433 433 } 434 434 435 435 /*Cast and return*/ 436 return xDynamicCast<ControlInput 2*>(input)->GetInput2(data);437 }/*}}}*/ 438 DatasetInput 2* Inputs2::GetDatasetInput2(int enum_in){/*{{{*/439 440 /*Get input id*/ 441 int id = EnumToIndex(enum_in); 442 443 /*Check that it has the right format*/ 444 Input 2* input = this->inputs[id];445 if(!input) return NULL; 446 if(input->ObjectEnum() != DatasetInput 2Enum){447 _error_("Input "<<EnumToStringx(enum_in)<<" is not an DatasetInput 2");436 return xDynamicCast<ControlInput*>(input)->GetInput(data); 437 }/*}}}*/ 438 DatasetInput* Inputs::GetDatasetInput(int enum_in){/*{{{*/ 439 440 /*Get input id*/ 441 int id = EnumToIndex(enum_in); 442 443 /*Check that it has the right format*/ 444 Input* input = this->inputs[id]; 445 if(!input) return NULL; 446 if(input->ObjectEnum() != DatasetInputEnum){ 447 _error_("Input "<<EnumToStringx(enum_in)<<" is not an DatasetInput"); 448 448 } 449 449 450 450 /*Cast and return*/ 451 return xDynamicCast<DatasetInput 2*>(input);452 }/*}}}*/ 453 ControlInput 2* Inputs2::GetControlInput2(int enum_in){/*{{{*/454 455 /*Get input id*/ 456 int id = EnumToIndex(enum_in); 457 458 /*Check that it has the right format*/ 459 Input 2* input = this->inputs[id];460 if(!input) return NULL; 461 if(input->ObjectEnum() != ControlInput 2Enum){462 _error_("Input "<<EnumToStringx(enum_in)<<" is not an ControlInput 2");451 return xDynamicCast<DatasetInput*>(input); 452 }/*}}}*/ 453 ControlInput* Inputs::GetControlInput(int enum_in){/*{{{*/ 454 455 /*Get input id*/ 456 int id = EnumToIndex(enum_in); 457 458 /*Check that it has the right format*/ 459 Input* input = this->inputs[id]; 460 if(!input) return NULL; 461 if(input->ObjectEnum() != ControlInputEnum){ 462 _error_("Input "<<EnumToStringx(enum_in)<<" is not an ControlInput"); 463 463 } 464 464 465 465 /*Cast and return*/ 466 return xDynamicCast<ControlInput 2*>(input);467 }/*}}}*/ 468 void Inputs 2::GetArrayPtr(int enum_in,int row,IssmDouble** pvalues,int* pN){/*{{{*/469 470 /*Get input id*/ 471 int id = EnumToIndex(enum_in); 472 473 /*Create it if necessary*/ 474 if(this->inputs[id]){ 475 if(this->inputs[id]->ObjectEnum()!=ArrayInput 2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array");466 return xDynamicCast<ControlInput*>(input); 467 }/*}}}*/ 468 void Inputs::GetArrayPtr(int enum_in,int row,IssmDouble** pvalues,int* pN){/*{{{*/ 469 470 /*Get input id*/ 471 int id = EnumToIndex(enum_in); 472 473 /*Create it if necessary*/ 474 if(this->inputs[id]){ 475 if(this->inputs[id]->ObjectEnum()!=ArrayInputEnum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array"); 476 476 } 477 477 else{ … … 480 480 481 481 /*Set input*/ 482 ArrayInput 2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]);482 ArrayInput* input = xDynamicCast<ArrayInput*>(this->inputs[id]); 483 483 input->GetArrayPtr(row,pvalues,pN); 484 484 }/*}}}*/ 485 void Inputs 2::GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN){/*{{{*/486 487 /*Get input id*/ 488 int id = EnumToIndex(enum_in); 489 490 /*Create it if necessary*/ 491 if(this->inputs[id]){ 492 if(this->inputs[id]->ObjectEnum()!=ArrayInput 2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array");485 void Inputs::GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN){/*{{{*/ 486 487 /*Get input id*/ 488 int id = EnumToIndex(enum_in); 489 490 /*Create it if necessary*/ 491 if(this->inputs[id]){ 492 if(this->inputs[id]->ObjectEnum()!=ArrayInputEnum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array"); 493 493 } 494 494 else{ … … 497 497 498 498 /*Set input*/ 499 ArrayInput 2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]);499 ArrayInput* input = xDynamicCast<ArrayInput*>(this->inputs[id]); 500 500 input->GetArray(row,pvalues,pN); 501 501 }/*}}}*/ 502 void Inputs 2::GetInputValue(bool* pvalue,int enum_in,int index){/*{{{*/503 504 /*Get input id*/ 505 int id = EnumToIndex(enum_in); 506 507 /*Create it if necessary*/ 508 if(this->inputs[id]){ 509 if(this->inputs[id]->ObjectEnum()!=BoolInput 2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a bool");502 void Inputs::GetInputValue(bool* pvalue,int enum_in,int index){/*{{{*/ 503 504 /*Get input id*/ 505 int id = EnumToIndex(enum_in); 506 507 /*Create it if necessary*/ 508 if(this->inputs[id]){ 509 if(this->inputs[id]->ObjectEnum()!=BoolInputEnum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a bool"); 510 510 } 511 511 else{ … … 514 514 515 515 /*Set input*/ 516 BoolInput 2* input = xDynamicCast<BoolInput2*>(this->inputs[id]);516 BoolInput* input = xDynamicCast<BoolInput*>(this->inputs[id]); 517 517 input->GetInput(pvalue,index); 518 518 }/*}}}*/ 519 void Inputs 2::GetInputValue(int* pvalue,int enum_in,int index){/*{{{*/520 521 /*Get input id*/ 522 int id = EnumToIndex(enum_in); 523 524 /*Create it if necessary*/ 525 if(this->inputs[id]){ 526 if(this->inputs[id]->ObjectEnum()!=IntInput 2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a int");519 void Inputs::GetInputValue(int* pvalue,int enum_in,int index){/*{{{*/ 520 521 /*Get input id*/ 522 int id = EnumToIndex(enum_in); 523 524 /*Create it if necessary*/ 525 if(this->inputs[id]){ 526 if(this->inputs[id]->ObjectEnum()!=IntInputEnum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a int"); 527 527 } 528 528 else{ … … 532 532 533 533 /*Set input*/ 534 IntInput 2* input = xDynamicCast<IntInput2*>(this->inputs[id]);534 IntInput* input = xDynamicCast<IntInput*>(this->inputs[id]); 535 535 input->GetInput(pvalue,index); 536 536 }/*}}}*/ 537 void Inputs 2::GetInputValue(IssmDouble* pvalue,int enum_in,int index){/*{{{*/538 539 /*Get input id*/ 540 int id = EnumToIndex(enum_in); 541 542 /*Create it if necessary*/ 543 if(this->inputs[id]){ 544 if(this->inputs[id]->ObjectEnum()!=DoubleInput 2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a double!");537 void Inputs::GetInputValue(IssmDouble* pvalue,int enum_in,int index){/*{{{*/ 538 539 /*Get input id*/ 540 int id = EnumToIndex(enum_in); 541 542 /*Create it if necessary*/ 543 if(this->inputs[id]){ 544 if(this->inputs[id]->ObjectEnum()!=DoubleInputEnum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a double!"); 545 545 } 546 546 else{ … … 550 550 551 551 /*Set input*/ 552 DoubleInput 2* input = xDynamicCast<DoubleInput2*>(this->inputs[id]);552 DoubleInput* input = xDynamicCast<DoubleInput*>(this->inputs[id]); 553 553 input->GetInput(pvalue,index); 554 554 555 555 }/*}}}*/ 556 void Inputs 2::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/556 void Inputs::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/ 557 557 558 558 /*Get input */ 559 559 int index = EnumToIndex(output_enum); 560 Input 2* input = this->inputs[index];560 Input* input = this->inputs[index]; 561 561 562 562 /*Check that it is found*/ … … 570 570 *parray_size = input->GetResultArraySize(); 571 571 }/*}}}*/ 572 void Inputs 2::SetInput(int enum_in,int index,bool value){/*{{{*/573 574 /*Get input id*/ 575 int id = EnumToIndex(enum_in); 576 577 /*Create it if necessary*/ 578 if(this->inputs[id]){ 579 if(this->inputs[id]->ObjectEnum()!=BoolInput 2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));580 } 581 else{ 582 this->inputs[id] = new BoolInput 2(this->numberofelements_local);583 } 584 585 /*Set input*/ 586 BoolInput 2* input = xDynamicCast<BoolInput2*>(this->inputs[id]);572 void Inputs::SetInput(int enum_in,int index,bool value){/*{{{*/ 573 574 /*Get input id*/ 575 int id = EnumToIndex(enum_in); 576 577 /*Create it if necessary*/ 578 if(this->inputs[id]){ 579 if(this->inputs[id]->ObjectEnum()!=BoolInputEnum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 580 } 581 else{ 582 this->inputs[id] = new BoolInput(this->numberofelements_local); 583 } 584 585 /*Set input*/ 586 BoolInput* input = xDynamicCast<BoolInput*>(this->inputs[id]); 587 587 input->SetInput(index,value); 588 588 }/*}}}*/ 589 void Inputs 2::SetInput(int enum_in,int index,int value){/*{{{*/590 591 /*Get input id*/ 592 int id = EnumToIndex(enum_in); 593 594 /*Create it if necessary*/ 595 if(this->inputs[id]){ 596 if(this->inputs[id]->ObjectEnum()!=IntInput 2Enum) _error_("cannot add an int to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));597 } 598 else{ 599 this->inputs[id] = new IntInput 2(this->numberofelements_local);600 } 601 602 /*Set input*/ 603 IntInput 2* input = xDynamicCast<IntInput2*>(this->inputs[id]);589 void Inputs::SetInput(int enum_in,int index,int value){/*{{{*/ 590 591 /*Get input id*/ 592 int id = EnumToIndex(enum_in); 593 594 /*Create it if necessary*/ 595 if(this->inputs[id]){ 596 if(this->inputs[id]->ObjectEnum()!=IntInputEnum) _error_("cannot add an int to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 597 } 598 else{ 599 this->inputs[id] = new IntInput(this->numberofelements_local); 600 } 601 602 /*Set input*/ 603 IntInput* input = xDynamicCast<IntInput*>(this->inputs[id]); 604 604 input->SetInput(index,value); 605 605 }/*}}}*/ 606 void Inputs 2::SetDoubleInput(int enum_in,int index,IssmDouble value){/*{{{*/607 608 /*Get input id*/ 609 int id = EnumToIndex(enum_in); 610 611 /*Create it if necessary*/ 612 if(this->inputs[id]){ 613 if(this->inputs[id]->ObjectEnum()!=DoubleInput 2Enum) _error_("cannot add a double to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));614 } 615 else{ 616 this->inputs[id] = new DoubleInput 2(this->numberofelements_local);617 } 618 619 /*Set input*/ 620 DoubleInput 2* input = xDynamicCast<DoubleInput2*>(this->inputs[id]);606 void Inputs::SetDoubleInput(int enum_in,int index,IssmDouble value){/*{{{*/ 607 608 /*Get input id*/ 609 int id = EnumToIndex(enum_in); 610 611 /*Create it if necessary*/ 612 if(this->inputs[id]){ 613 if(this->inputs[id]->ObjectEnum()!=DoubleInputEnum) _error_("cannot add a double to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 614 } 615 else{ 616 this->inputs[id] = new DoubleInput(this->numberofelements_local); 617 } 618 619 /*Set input*/ 620 DoubleInput* input = xDynamicCast<DoubleInput*>(this->inputs[id]); 621 621 input->SetInput(index,value); 622 622 }/*}}}*/ 623 void Inputs 2::SetArrayInput(int enum_in,int row,IssmDouble* values,int numlayers){/*{{{*/623 void Inputs::SetArrayInput(int enum_in,int row,IssmDouble* values,int numlayers){/*{{{*/ 624 624 625 625 bool recreate = false; … … 630 630 /*Create it if necessary*/ 631 631 if(this->inputs[id]){ 632 if(this->inputs[id]->ObjectEnum()!=ArrayInput 2Enum){632 if(this->inputs[id]->ObjectEnum()!=ArrayInputEnum){ 633 633 delete this->inputs[id]; 634 634 recreate = true; … … 640 640 641 641 if(recreate){ 642 this->inputs[id] = new ArrayInput 2(this->numberofelements_local);643 } 644 645 /*Set input*/ 646 ArrayInput 2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]);642 this->inputs[id] = new ArrayInput(this->numberofelements_local); 643 } 644 645 /*Set input*/ 646 ArrayInput* input = xDynamicCast<ArrayInput*>(this->inputs[id]); 647 647 input->SetInput(row,numlayers,values); 648 648 }/*}}}*/ 649 TransientInput 2* Inputs2::SetDatasetTransientInput(int enum_in,int dataset_id,IssmDouble* times,int numtimes){/*{{{*/649 TransientInput* Inputs::SetDatasetTransientInput(int enum_in,int dataset_id,IssmDouble* times,int numtimes){/*{{{*/ 650 650 651 651 bool recreate = false; … … 655 655 /*Create it if necessary*/ 656 656 if(this->inputs[id]){ 657 if(this->inputs[id]->ObjectEnum()!=DatasetInput 2Enum){657 if(this->inputs[id]->ObjectEnum()!=DatasetInputEnum){ 658 658 delete this->inputs[id]; 659 659 recreate = true; … … 665 665 666 666 if(recreate){ 667 this->inputs[id] = new DatasetInput 2(this->numberofelements_local,this->numberofvertices_local);667 this->inputs[id] = new DatasetInput(this->numberofelements_local,this->numberofvertices_local); 668 668 } 669 669 670 670 /*Get Dataset Input now*/ 671 DatasetInput 2* input = xDynamicCast<DatasetInput2*>(this->inputs[id]);671 DatasetInput* input = xDynamicCast<DatasetInput*>(this->inputs[id]); 672 672 673 673 /*Create and return transient input*/ 674 674 return input->SetTransientInput(dataset_id,times,numtimes); 675 675 }/*}}}*/ 676 void Inputs 2::SetTransientInput(int enum_in,IssmDouble* times,int numtimes){/*{{{*/676 void Inputs::SetTransientInput(int enum_in,IssmDouble* times,int numtimes){/*{{{*/ 677 677 678 678 /*Get input id*/ … … 682 682 if(this->inputs[id]){ 683 683 /*Input already there, make sure it is the right type*/ 684 if(this->inputs[id]->ObjectEnum()!=TransientInput 2Enum){684 if(this->inputs[id]->ObjectEnum()!=TransientInputEnum){ 685 685 _error_("cannot add a TransientInput to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 686 686 } 687 687 } 688 688 else{ 689 this->inputs[id] = new TransientInput 2(enum_in,this->numberofelements_local,this->numberofvertices_local,times,numtimes);690 } 691 }/*}}}*/ 692 void Inputs 2::SetTriaControlInput(int enum_in,int layout,int interpolation,int control_id,int numindices,int* indices,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/689 this->inputs[id] = new TransientInput(enum_in,this->numberofelements_local,this->numberofvertices_local,times,numtimes); 690 } 691 }/*}}}*/ 692 void Inputs::SetTriaControlInput(int enum_in,int layout,int interpolation,int control_id,int numindices,int* indices,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/ 693 693 694 694 bool recreate = false; … … 698 698 /*Create it if necessary*/ 699 699 if(this->inputs[id]){ 700 if(this->inputs[id]->ObjectEnum()!=ControlInput 2Enum){700 if(this->inputs[id]->ObjectEnum()!=ControlInputEnum){ 701 701 delete this->inputs[id]; 702 702 recreate = true; … … 708 708 709 709 if(recreate){ 710 this->inputs[id] = new ControlInput 2(this->numberofelements_local,this->numberofvertices_local,layout,interpolation,control_id);711 } 712 713 /*Set input*/ 714 ControlInput 2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);710 this->inputs[id] = new ControlInput(this->numberofelements_local,this->numberofvertices_local,layout,interpolation,control_id); 711 } 712 713 /*Set input*/ 714 ControlInput* input = xDynamicCast<ControlInput*>(this->inputs[id]); 715 715 input->SetControl(interpolation,numindices,indices,values,values_min,values_max); 716 716 }/*}}}*/ 717 void Inputs 2::SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/717 void Inputs::SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/ 718 718 719 719 /*Get input id*/ … … 722 722 /*Create it if necessary*/ 723 723 if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in)); 724 if( this->inputs[id]->ObjectEnum()!=ControlInput 2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");725 726 /*Set input*/ 727 ControlInput 2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);724 if( this->inputs[id]->ObjectEnum()!=ControlInputEnum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput"); 725 726 /*Set input*/ 727 ControlInput* input = xDynamicCast<ControlInput*>(this->inputs[id]); 728 728 input->SetGradient(interpolation,numindices,indices,values); 729 729 }/*}}}*/ 730 void Inputs 2::SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values,int n){/*{{{*/730 void Inputs::SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values,int n){/*{{{*/ 731 731 732 732 /*Get input id*/ … … 735 735 /*Create it if necessary*/ 736 736 if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in)); 737 if( this->inputs[id]->ObjectEnum()!=ControlInput 2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");738 739 /*Set input*/ 740 ControlInput 2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);737 if( this->inputs[id]->ObjectEnum()!=ControlInputEnum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput"); 738 739 /*Set input*/ 740 ControlInput* input = xDynamicCast<ControlInput*>(this->inputs[id]); 741 741 input->SetGradient(interpolation,numindices,indices,values,n); 742 742 }/*}}}*/ 743 void Inputs 2::SetTriaDatasetInput(int enum_in,int id_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/743 void Inputs::SetTriaDatasetInput(int enum_in,int id_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/ 744 744 745 745 bool recreate = false; … … 749 749 /*Create it if necessary*/ 750 750 if(this->inputs[id]){ 751 if(this->inputs[id]->ObjectEnum()!=DatasetInput 2Enum){751 if(this->inputs[id]->ObjectEnum()!=DatasetInputEnum){ 752 752 delete this->inputs[id]; 753 753 recreate = true; … … 759 759 760 760 if(recreate){ 761 this->inputs[id] = new DatasetInput 2(this->numberofelements_local,this->numberofvertices_local);762 } 763 764 /*Set input*/ 765 DatasetInput 2* input = xDynamicCast<DatasetInput2*>(this->inputs[id]);761 this->inputs[id] = new DatasetInput(this->numberofelements_local,this->numberofvertices_local); 762 } 763 764 /*Set input*/ 765 DatasetInput* input = xDynamicCast<DatasetInput*>(this->inputs[id]); 766 766 input->SetTriaInput(id_in,P1Enum,numindices,indices,values); 767 767 }/*}}}*/ 768 void Inputs 2::SetTriaInput(int enum_in,int interpolation,int row,IssmDouble value){/*{{{*/768 void Inputs::SetTriaInput(int enum_in,int interpolation,int row,IssmDouble value){/*{{{*/ 769 769 770 770 /*This one only supports P0 and P1 because it assumes col=0*/ … … 776 776 /*Create it if necessary*/ 777 777 if(this->inputs[id]){ 778 if(this->inputs[id]->ObjectEnum()!=TriaInput 2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));779 } 780 else{ 781 this->inputs[id] = new TriaInput 2(this->numberofelements_local,this->numberofvertices_local,interpolation);782 } 783 784 /*Set input*/ 785 TriaInput 2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);778 if(this->inputs[id]->ObjectEnum()!=TriaInputEnum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 779 } 780 else{ 781 this->inputs[id] = new TriaInput(this->numberofelements_local,this->numberofvertices_local,interpolation); 782 } 783 784 /*Set input*/ 785 TriaInput* input = xDynamicCast<TriaInput*>(this->inputs[id]); 786 786 input->SetInput(interpolation,row,value); 787 787 }/*}}}*/ 788 void Inputs 2::SetTriaInput(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/789 790 /*Get input id*/ 791 int id = EnumToIndex(enum_in); 792 793 /*Create it if necessary*/ 794 if(this->inputs[id]){ 795 if(this->inputs[id]->ObjectEnum()!=TriaInput 2Enum){788 void Inputs::SetTriaInput(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/ 789 790 /*Get input id*/ 791 int id = EnumToIndex(enum_in); 792 793 /*Create it if necessary*/ 794 if(this->inputs[id]){ 795 if(this->inputs[id]->ObjectEnum()!=TriaInputEnum){ 796 796 _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())<<" while trying to set "<<EnumToStringx(enum_in)); 797 797 } 798 798 } 799 799 else{ 800 this->inputs[id] = new TriaInput 2(this->numberofelements_local,this->numberofvertices_local,interpolation);801 } 802 803 /*Set input*/ 804 TriaInput 2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);800 this->inputs[id] = new TriaInput(this->numberofelements_local,this->numberofvertices_local,interpolation); 801 } 802 803 /*Set input*/ 804 TriaInput* input = xDynamicCast<TriaInput*>(this->inputs[id]); 805 805 input->SetInput(interpolation,numindices,indices,values); 806 806 }/*}}}*/ 807 void Inputs 2::SetTriaInput(int enum_in,int interpolation,int row,int numindices,IssmDouble* values){/*{{{*/808 809 /*Get input id*/ 810 int id = EnumToIndex(enum_in); 811 812 /*Create it if necessary*/ 813 if(this->inputs[id]){ 814 if(this->inputs[id]->ObjectEnum()!=TriaInput 2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));815 } 816 else{ 817 this->inputs[id] = new TriaInput 2(this->numberofelements_local,this->numberofvertices_local,interpolation);818 } 819 820 /*Set input*/ 821 TriaInput 2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);807 void Inputs::SetTriaInput(int enum_in,int interpolation,int row,int numindices,IssmDouble* values){/*{{{*/ 808 809 /*Get input id*/ 810 int id = EnumToIndex(enum_in); 811 812 /*Create it if necessary*/ 813 if(this->inputs[id]){ 814 if(this->inputs[id]->ObjectEnum()!=TriaInputEnum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 815 } 816 else{ 817 this->inputs[id] = new TriaInput(this->numberofelements_local,this->numberofvertices_local,interpolation); 818 } 819 820 /*Set input*/ 821 TriaInput* input = xDynamicCast<TriaInput*>(this->inputs[id]); 822 822 input->SetInput(interpolation,row,numindices,values); 823 823 }/*}}}*/ 824 void Inputs 2::SetPentaControlInput(int enum_in,int layout,int interpolation,int control_id,int numindices,int* indices,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/824 void Inputs::SetPentaControlInput(int enum_in,int layout,int interpolation,int control_id,int numindices,int* indices,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/ 825 825 826 826 bool recreate = false; … … 830 830 /*Create it if necessary*/ 831 831 if(this->inputs[id]){ 832 if(this->inputs[id]->ObjectEnum()!=ControlInput 2Enum){832 if(this->inputs[id]->ObjectEnum()!=ControlInputEnum){ 833 833 delete this->inputs[id]; 834 834 recreate = true; … … 840 840 841 841 if(recreate){ 842 this->inputs[id] = new ControlInput 2(this->numberofelements_local,this->numberofvertices_local,layout,interpolation,control_id);843 } 844 845 /*Set input*/ 846 ControlInput 2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);842 this->inputs[id] = new ControlInput(this->numberofelements_local,this->numberofvertices_local,layout,interpolation,control_id); 843 } 844 845 /*Set input*/ 846 ControlInput* input = xDynamicCast<ControlInput*>(this->inputs[id]); 847 847 input->SetControl(interpolation,numindices,indices,values,values_min,values_max); 848 848 }/*}}}*/ 849 void Inputs 2::SetPentaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/849 void Inputs::SetPentaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/ 850 850 851 851 /*Get input id*/ … … 854 854 /*Create it if necessary*/ 855 855 if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in)); 856 if( this->inputs[id]->ObjectEnum()!=ControlInput 2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");857 858 /*Set input*/ 859 ControlInput 2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);856 if( this->inputs[id]->ObjectEnum()!=ControlInputEnum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput"); 857 858 /*Set input*/ 859 ControlInput* input = xDynamicCast<ControlInput*>(this->inputs[id]); 860 860 input->SetGradient(interpolation,numindices,indices,values); 861 861 }/*}}}*/ 862 void Inputs 2::SetPentaDatasetInput(int enum_in,int id_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/862 void Inputs::SetPentaDatasetInput(int enum_in,int id_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/ 863 863 864 864 bool recreate = false; … … 868 868 /*Create it if necessary*/ 869 869 if(this->inputs[id]){ 870 if(this->inputs[id]->ObjectEnum()!=DatasetInput 2Enum){870 if(this->inputs[id]->ObjectEnum()!=DatasetInputEnum){ 871 871 delete this->inputs[id]; 872 872 recreate = true; … … 878 878 879 879 if(recreate){ 880 this->inputs[id] = new DatasetInput 2(this->numberofelements_local,this->numberofvertices_local);881 } 882 883 /*Set input*/ 884 DatasetInput 2* input = xDynamicCast<DatasetInput2*>(this->inputs[id]);880 this->inputs[id] = new DatasetInput(this->numberofelements_local,this->numberofvertices_local); 881 } 882 883 /*Set input*/ 884 DatasetInput* input = xDynamicCast<DatasetInput*>(this->inputs[id]); 885 885 input->SetPentaInput(id_in,P1Enum,numindices,indices,values); 886 886 }/*}}}*/ 887 void Inputs 2::SetPentaInput(int enum_in,int interpolation,int row,IssmDouble value){/*{{{*/887 void Inputs::SetPentaInput(int enum_in,int interpolation,int row,IssmDouble value){/*{{{*/ 888 888 889 889 /*This one only supports P0 and P1 because it assumes col=0*/ … … 895 895 /*Create it if necessary*/ 896 896 if(this->inputs[id]){ 897 if(this->inputs[id]->ObjectEnum()!=PentaInput 2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));898 } 899 else{ 900 this->inputs[id] = new PentaInput 2(this->numberofelements_local,this->numberofvertices_local,interpolation);901 } 902 903 /*Set input*/ 904 PentaInput 2* input = xDynamicCast<PentaInput2*>(this->inputs[id]);897 if(this->inputs[id]->ObjectEnum()!=PentaInputEnum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 898 } 899 else{ 900 this->inputs[id] = new PentaInput(this->numberofelements_local,this->numberofvertices_local,interpolation); 901 } 902 903 /*Set input*/ 904 PentaInput* input = xDynamicCast<PentaInput*>(this->inputs[id]); 905 905 input->SetInput(interpolation,row,value); 906 906 }/*}}}*/ 907 void Inputs 2::SetPentaInput(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/908 909 /*Get input id*/ 910 int id = EnumToIndex(enum_in); 911 912 /*Create it if necessary*/ 913 if(this->inputs[id]){ 914 if(this->inputs[id]->ObjectEnum()!=PentaInput 2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));915 } 916 else{ 917 this->inputs[id] = new PentaInput 2(this->numberofelements_local,this->numberofvertices_local,interpolation);918 } 919 920 /*Set input*/ 921 PentaInput 2* input = xDynamicCast<PentaInput2*>(this->inputs[id]);907 void Inputs::SetPentaInput(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/ 908 909 /*Get input id*/ 910 int id = EnumToIndex(enum_in); 911 912 /*Create it if necessary*/ 913 if(this->inputs[id]){ 914 if(this->inputs[id]->ObjectEnum()!=PentaInputEnum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 915 } 916 else{ 917 this->inputs[id] = new PentaInput(this->numberofelements_local,this->numberofvertices_local,interpolation); 918 } 919 920 /*Set input*/ 921 PentaInput* input = xDynamicCast<PentaInput*>(this->inputs[id]); 922 922 input->SetInput(interpolation,numindices,indices,values); 923 923 }/*}}}*/ 924 void Inputs 2::SetPentaInput(int enum_in,int interpolation,int row,int numindices,IssmDouble* values){/*{{{*/925 926 /*Get input id*/ 927 int id = EnumToIndex(enum_in); 928 929 /*Create it if necessary*/ 930 if(this->inputs[id]){ 931 if(this->inputs[id]->ObjectEnum()!=PentaInput 2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));932 } 933 else{ 934 this->inputs[id] = new PentaInput 2(this->numberofelements_local,this->numberofvertices_local,interpolation);935 } 936 937 /*Set input*/ 938 PentaInput 2* input = xDynamicCast<PentaInput2*>(this->inputs[id]);924 void Inputs::SetPentaInput(int enum_in,int interpolation,int row,int numindices,IssmDouble* values){/*{{{*/ 925 926 /*Get input id*/ 927 int id = EnumToIndex(enum_in); 928 929 /*Create it if necessary*/ 930 if(this->inputs[id]){ 931 if(this->inputs[id]->ObjectEnum()!=PentaInputEnum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())); 932 } 933 else{ 934 this->inputs[id] = new PentaInput(this->numberofelements_local,this->numberofvertices_local,interpolation); 935 } 936 937 /*Set input*/ 938 PentaInput* input = xDynamicCast<PentaInput*>(this->inputs[id]); 939 939 input->SetInput(interpolation,row,numindices,values); 940 940 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Inputs/Inputs.h
r25378 r25379 3 3 4 4 /*forward declarations */ 5 class Input 2;6 class SegInput 2;7 class TriaInput 2;8 class PentaInput 2;9 class TransientInput 2;10 class ElementInput 2;11 class DatasetInput 2;12 class ArrayInput 2;13 class ControlInput 2;5 class Input; 6 class SegInput; 7 class TriaInput; 8 class PentaInput; 9 class TransientInput; 10 class ElementInput; 11 class DatasetInput; 12 class ArrayInput; 13 class ControlInput; 14 14 class Parameters; 15 15 #include "../../shared/shared.h" … … 21 21 * Declaration of Inputs class. Inputs are a static array of Input objects. 22 22 */ 23 class Inputs 2{23 class Inputs{ 24 24 25 25 private: 26 26 /*Private fields*/ 27 Input 2* inputs[NUMINPUTS];27 Input* inputs[NUMINPUTS]; 28 28 int numberofelements_local; 29 29 int numberofvertices_local; … … 35 35 36 36 /*constructors, destructors*/ 37 Inputs 2();38 Inputs 2(int nbe,int nbv);39 ~Inputs 2();37 Inputs(); 38 Inputs(int nbe,int nbv); 39 ~Inputs(); 40 40 41 41 /*numerics*/ 42 void AddInput(Input 2* in_input);42 void AddInput(Input* in_input); 43 43 void ChangeEnum(int enumtype,int new_enumtype); 44 44 void Configure(Parameters* parameters); 45 Inputs 2* Copy(void);45 Inputs* Copy(void); 46 46 int DeleteInput(int enum_type); 47 47 void DuplicateInput(int original_enum,int new_enum); … … 52 52 void GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN); 53 53 void GetArrayPtr(int enum_in,int row,IssmDouble** pvalues,int* pN); 54 SegInput 2* GetSegInput(int enum_type);55 TriaInput 2* GetTriaInput(int enum_type);56 TriaInput 2* GetTriaInput(int enum_type,IssmDouble time);57 TriaInput 2* GetTriaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method);58 PentaInput 2* GetPentaInput(int enum_type);59 PentaInput 2* GetPentaInput(int enum_type,IssmDouble time);60 PentaInput 2* GetPentaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method);61 TransientInput 2* GetTransientInput(int enum_type);62 ElementInput 2* GetControlInput2Data(int enum_type,const char* data);63 DatasetInput 2* GetDatasetInput2(int enum_type);64 ControlInput 2* GetControlInput2(int enum_type);54 SegInput* GetSegInput(int enum_type); 55 TriaInput* GetTriaInput(int enum_type); 56 TriaInput* GetTriaInput(int enum_type,IssmDouble time); 57 TriaInput* GetTriaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method); 58 PentaInput* GetPentaInput(int enum_type); 59 PentaInput* GetPentaInput(int enum_type,IssmDouble time); 60 PentaInput* GetPentaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method); 61 TransientInput* GetTransientInput(int enum_type); 62 ElementInput* GetControlInputData(int enum_type,const char* data); 63 DatasetInput* GetDatasetInput(int enum_type); 64 ControlInput* GetControlInput(int enum_type); 65 65 void Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction); 66 66 int GetInputObjectEnum(int enum_type); … … 73 73 void SetDoubleInput(int enum_in,int index,IssmDouble value); 74 74 void SetTransientInput(int enum_in,IssmDouble* times,int numtimes); 75 TransientInput 2* SetDatasetTransientInput(int enum_in,int id,IssmDouble* times,int numtimes);75 TransientInput* SetDatasetTransientInput(int enum_in,int id,IssmDouble* times,int numtimes); 76 76 void SetArrayInput(int enum_in,int row,IssmDouble* layers,int numlayers); 77 77 void SetTriaControlInput(int enum_in,int layout,int interpolation,int id,int numindices,int* indices,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max); -
issm/trunk-jpl/src/c/classes/Inputs/IntInput.cpp
r25378 r25379 1 /*!\file IntInput 2.c2 * \brief: implementation of the IntInput 2object1 /*!\file IntInput.c 2 * \brief: implementation of the IntInput object 3 3 */ 4 4 … … 11 11 #include "../classes.h" 12 12 #include "../../shared/shared.h" 13 #include "./IntInput 2.h"13 #include "./IntInput.h" 14 14 15 /*IntInput 2constructors and destructor*/16 IntInput 2::IntInput2(){/*{{{*/15 /*IntInput constructors and destructor*/ 16 IntInput::IntInput(){/*{{{*/ 17 17 this->size = -1; 18 18 this->values = NULL; 19 19 } 20 20 /*}}}*/ 21 IntInput 2::IntInput2(int size_in){/*{{{*/21 IntInput::IntInput(int size_in){/*{{{*/ 22 22 _assert_(size_in>0); 23 23 _assert_(size_in<1e11); … … 26 26 } 27 27 /*}}}*/ 28 IntInput 2::~IntInput2(){/*{{{*/28 IntInput::~IntInput(){/*{{{*/ 29 29 xDelete<int>(this->values); 30 30 } … … 32 32 33 33 /*Object virtual functions definitions:*/ 34 Input 2* IntInput2::copy() {/*{{{*/34 Input* IntInput::copy() {/*{{{*/ 35 35 36 IntInput 2* output = new IntInput2(this->size);36 IntInput* output = new IntInput(this->size); 37 37 xMemCpy<int>(output->values,this->values,this->size); 38 38 … … 40 40 } 41 41 /*}}}*/ 42 void IntInput 2::DeepEcho(void){/*{{{*/42 void IntInput::DeepEcho(void){/*{{{*/ 43 43 44 _printf_("IntInput 2Echo:\n");44 _printf_("IntInput Echo:\n"); 45 45 _printf_(" Size: "<<size<<"\n"); 46 46 printarray(this->values,this->size); 47 //_printf_(setw(15)<<" IntInput 2"<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");47 //_printf_(setw(15)<<" IntInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n"); 48 48 } 49 49 /*}}}*/ 50 void IntInput 2::Echo(void){/*{{{*/50 void IntInput::Echo(void){/*{{{*/ 51 51 this->DeepEcho(); 52 52 } 53 53 /*}}}*/ 54 int IntInput 2::Id(void){ return -1; }/*{{{*/54 int IntInput::Id(void){ return -1; }/*{{{*/ 55 55 /*}}}*/ 56 void IntInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/56 void IntInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 57 57 58 MARSHALLING_ENUM(IntInput 2Enum);58 MARSHALLING_ENUM(IntInputEnum); 59 59 60 60 MARSHALLING(this->size); … … 66 66 } 67 67 /*}}}*/ 68 int IntInput 2::ObjectEnum(void){/*{{{*/68 int IntInput::ObjectEnum(void){/*{{{*/ 69 69 70 return IntInput 2Enum;70 return IntInputEnum; 71 71 72 72 } 73 73 /*}}}*/ 74 74 75 /*IntInput 2management*/76 void IntInput 2::GetInput(int* pvalue,int index){/*{{{*/75 /*IntInput management*/ 76 void IntInput::GetInput(int* pvalue,int index){/*{{{*/ 77 77 78 78 _assert_(index>=0); … … 82 82 } 83 83 /*}}}*/ 84 void IntInput 2::SetInput(int index,int value){/*{{{*/84 void IntInput::SetInput(int index,int value){/*{{{*/ 85 85 86 86 _assert_(index>=0); -
issm/trunk-jpl/src/c/classes/Inputs/IntInput.h
r25378 r25379 3 3 4 4 /*Headers:*/ 5 #include "./Input 2.h"5 #include "./Input.h" 6 6 7 class IntInput 2: public Input2{7 class IntInput: public Input{ 8 8 9 9 private: … … 12 12 13 13 public: 14 /*IntInput 2constructors, destructors: {{{*/15 IntInput 2();16 IntInput 2(int size_in);17 ~IntInput 2();14 /*IntInput constructors, destructors: {{{*/ 15 IntInput(); 16 IntInput(int size_in); 17 ~IntInput(); 18 18 /*}}}*/ 19 19 /*Object virtual functions definitions:{{{ */ 20 Input 2*copy();20 Input *copy(); 21 21 void DeepEcho(); 22 22 void Echo(); … … 25 25 int ObjectEnum(); 26 26 /*}}}*/ 27 /*IntInput 2management: {{{*/27 /*IntInput management: {{{*/ 28 28 void GetInput(int* pvalue,int index); 29 29 void SetInput(int index,int value); -
issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp
r25378 r25379 1 /*!\file PentaInput 2.c2 * \brief: implementation of the PentaInput 2object1 /*!\file PentaInput.c 2 * \brief: implementation of the PentaInput object 3 3 */ 4 4 … … 11 11 #include "../classes.h" 12 12 #include "../../shared/shared.h" 13 #include "./PentaInput 2.h"14 15 /*PentaInput 2constructors and destructor*/16 PentaInput 2::PentaInput2(void){/*{{{*/13 #include "./PentaInput.h" 14 15 /*PentaInput constructors and destructor*/ 16 PentaInput::PentaInput(void){/*{{{*/ 17 17 18 18 this->numberofelements_local = -1; … … 26 26 27 27 }/*}}}*/ 28 PentaInput 2::PentaInput2(int nbe_in,int nbv_in,int interp_in){/*{{{*/28 PentaInput::PentaInput(int nbe_in,int nbv_in,int interp_in){/*{{{*/ 29 29 30 30 _assert_(nbe_in>0); … … 41 41 42 42 }/*}}}*/ 43 PentaInput 2::~PentaInput2(){/*{{{*/43 PentaInput::~PentaInput(){/*{{{*/ 44 44 if(this->element_values) xDelete<IssmDouble>(this->element_values); 45 45 if(this->values) xDelete<IssmDouble>(this->values); 46 46 } 47 47 /*}}}*/ 48 void PentaInput 2::Reset(int interp_in){/*{{{*/48 void PentaInput::Reset(int interp_in){/*{{{*/ 49 49 50 50 /*Clean up*/ … … 71 71 72 72 /*Object virtual functions definitions:*/ 73 Input 2* PentaInput2::copy() {/*{{{*/73 Input* PentaInput::copy() {/*{{{*/ 74 74 75 75 /*Create output*/ 76 PentaInput 2* output = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,this->interpolation);76 PentaInput* output = new PentaInput(this->numberofelements_local,this->numberofvertices_local,this->interpolation); 77 77 78 78 /*Copy values*/ … … 84 84 } 85 85 /*}}}*/ 86 void PentaInput 2::DeepEcho(void){/*{{{*/87 _printf_("PentaInput 2Echo:\n");86 void PentaInput::DeepEcho(void){/*{{{*/ 87 _printf_("PentaInput Echo:\n"); 88 88 _printf_(" interpolation: "<<EnumToStringx(this->interpolation)<<"\n"); 89 89 _printf_(" nbe_local: "<<this->numberofvertices_local<<"\n"); … … 107 107 } 108 108 /*}}}*/ 109 void PentaInput 2::Echo(void){/*{{{*/109 void PentaInput::Echo(void){/*{{{*/ 110 110 _printf_(setw(15)<<" PentaInput "<<setw(25)<<left<<EnumToStringx(-1)); 111 111 if(isserved){ … … 123 123 } 124 124 /*}}}*/ 125 int PentaInput 2::Id(void){/*{{{*/125 int PentaInput::Id(void){/*{{{*/ 126 126 return -1; 127 127 }/*}}}*/ 128 void PentaInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/129 130 MARSHALLING_ENUM(PentaInput 2Enum);128 void PentaInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 129 130 MARSHALLING_ENUM(PentaInputEnum); 131 131 MARSHALLING(this->numberofelements_local); 132 132 MARSHALLING(this->numberofvertices_local); … … 146 146 } 147 147 /*}}}*/ 148 int PentaInput 2::ObjectEnum(void){/*{{{*/149 return PentaInput 2Enum;150 } 151 /*}}}*/ 152 153 /*PentaInput 2management*/154 void PentaInput 2::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/148 int PentaInput::ObjectEnum(void){/*{{{*/ 149 return PentaInputEnum; 150 } 151 /*}}}*/ 152 153 /*PentaInput management*/ 154 void PentaInput::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/ 155 155 156 156 _assert_(this); … … 163 163 } 164 164 /*}}}*/ 165 void PentaInput 2::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/165 void PentaInput::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/ 166 166 167 167 _assert_(this); … … 191 191 } 192 192 /*}}}*/ 193 void PentaInput 2::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/193 void PentaInput::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/ 194 194 195 195 _assert_(this); … … 206 206 } 207 207 /*}}}*/ 208 void PentaInput 2::Serve(int numindices,int* indices){/*{{{*/208 void PentaInput::Serve(int numindices,int* indices){/*{{{*/ 209 209 210 210 _assert_(this); … … 223 223 } 224 224 /*}}}*/ 225 void PentaInput 2::Serve(int row,int numindices){/*{{{*/225 void PentaInput::Serve(int row,int numindices){/*{{{*/ 226 226 227 227 _assert_(this); … … 238 238 this->isserved_collapsed = 0; 239 239 }/*}}}*/ 240 void PentaInput 2::ServeCollapsed(int row,int state){/*{{{*/240 void PentaInput::ServeCollapsed(int row,int state){/*{{{*/ 241 241 242 242 _assert_(this); … … 261 261 this->isserved_collapsed = state; 262 262 }/*}}}*/ 263 void PentaInput 2::SetServeCollapsed(int state){/*{{{*/263 void PentaInput::SetServeCollapsed(int state){/*{{{*/ 264 264 this->isserved_collapsed = state; 265 265 }/*}}}*/ 266 int PentaInput 2::GetInterpolation(){/*{{{*/266 int PentaInput::GetInterpolation(){/*{{{*/ 267 267 return this->interpolation; 268 268 }/*}}}*/ 269 void PentaInput 2::GetInputAverage(IssmDouble* pvalue){/*{{{*/269 void PentaInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/ 270 270 _assert_(this); 271 271 _assert_(this->isserved); … … 293 293 *pvalue=value; 294 294 }/*}}}*/ 295 IssmDouble PentaInput 2::GetInputMin(void){/*{{{*/295 IssmDouble PentaInput::GetInputMin(void){/*{{{*/ 296 296 _assert_(this); 297 297 _assert_(this->isserved); … … 306 306 return min; 307 307 }/*}}}*/ 308 IssmDouble PentaInput 2::GetInputMax(void){/*{{{*/308 IssmDouble PentaInput::GetInputMax(void){/*{{{*/ 309 309 _assert_(this); 310 310 _assert_(this->isserved); … … 319 319 return max; 320 320 }/*}}}*/ 321 IssmDouble PentaInput 2::GetInputMaxAbs(void){/*{{{*/321 IssmDouble PentaInput::GetInputMaxAbs(void){/*{{{*/ 322 322 _assert_(this); 323 323 _assert_(this->isserved); … … 332 332 return maxabs; 333 333 }/*}}}*/ 334 void PentaInput 2::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/334 void PentaInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/ 335 335 _assert_(this); 336 336 _assert_(this->isserved); … … 351 351 } 352 352 }/*}}}*/ 353 void PentaInput 2::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/353 void PentaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/ 354 354 _assert_(this); 355 355 _assert_(this->isserved); … … 369 369 } 370 370 }/*}}}*/ 371 int PentaInput 2::GetResultArraySize(void){/*{{{*/371 int PentaInput::GetResultArraySize(void){/*{{{*/ 372 372 return 1; 373 373 } 374 374 /*}}}*/ 375 int PentaInput 2::GetResultInterpolation(void){/*{{{*/375 int PentaInput::GetResultInterpolation(void){/*{{{*/ 376 376 if(this->interpolation==P0Enum || this->interpolation==P0DGEnum){ 377 377 return P0Enum; … … 379 379 return P1Enum; 380 380 }/*}}}*/ 381 int PentaInput 2::GetResultNumberOfNodes(void){/*{{{*/381 int PentaInput::GetResultNumberOfNodes(void){/*{{{*/ 382 382 return PentaRef::NumberofNodes(this->interpolation); 383 383 } 384 384 /*}}}*/ 385 void PentaInput 2::Scale(IssmDouble alpha){/*{{{*/385 void PentaInput::Scale(IssmDouble alpha){/*{{{*/ 386 386 387 387 for(int i=0;i<this->M*this->N;i++) this->values[i] = alpha*this->values[i]; … … 389 389 } 390 390 /*}}}*/ 391 void PentaInput 2::Pow(IssmDouble alpha){/*{{{*/391 void PentaInput::Pow(IssmDouble alpha){/*{{{*/ 392 392 393 393 for(int i=0;i<this->M*this->N;i++) this->values[i] = pow(this->values[i],alpha); … … 395 395 } 396 396 /*}}}*/ 397 void PentaInput 2::AXPY(Input2* xinput,IssmDouble alpha){/*{{{*/397 void PentaInput::AXPY(Input* xinput,IssmDouble alpha){/*{{{*/ 398 398 399 399 /*xinput is of the same type, so cast it: */ 400 if(xinput->ObjectEnum()!=PentaInput 2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));401 PentaInput 2* xpentainput=xDynamicCast<PentaInput2*>(xinput);400 if(xinput->ObjectEnum()!=PentaInputEnum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 401 PentaInput* xpentainput=xDynamicCast<PentaInput*>(xinput); 402 402 if(xpentainput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 403 403 … … 407 407 } 408 408 /*}}}*/ 409 void PentaInput 2::PointWiseMult(Input2* xinput){/*{{{*/409 void PentaInput::PointWiseMult(Input* xinput){/*{{{*/ 410 410 411 411 /*xinput is of the same type, so cast it: */ 412 if(xinput->ObjectEnum()!=PentaInput 2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));413 PentaInput 2* xpentainput=xDynamicCast<PentaInput2*>(xinput);412 if(xinput->ObjectEnum()!=PentaInputEnum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 413 PentaInput* xpentainput=xDynamicCast<PentaInput*>(xinput); 414 414 if(xpentainput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 415 415 -
issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h
r25378 r25379 3 3 4 4 /*Headers:*/ 5 #include "./ElementInput 2.h"5 #include "./ElementInput.h" 6 6 #include "../Elements/PentaRef.h" 7 7 8 class PentaInput 2: public ElementInput2, public PentaRef{8 class PentaInput: public ElementInput, public PentaRef{ 9 9 10 10 private: 11 11 int isserved_collapsed; 12 12 public: 13 /*PentaInput 2constructors, destructors: {{{*/14 PentaInput 2();15 PentaInput 2(int nbe_in,int nbv_in,int interp_in);16 ~PentaInput 2();13 /*PentaInput constructors, destructors: {{{*/ 14 PentaInput(); 15 PentaInput(int nbe_in,int nbv_in,int interp_in); 16 ~PentaInput(); 17 17 /*}}}*/ 18 18 /*Object virtual functions definitions:{{{ */ 19 Input 2*copy();19 Input *copy(); 20 20 void DeepEcho(); 21 21 void Echo(); … … 24 24 int ObjectEnum(); 25 25 /*}}}*/ 26 /*PentaInput 2management: {{{*/26 /*PentaInput management: {{{*/ 27 27 void SetInput(int interp_in,int row,IssmDouble value_in); 28 28 void SetInput(int interp_in,int numinds,int* rows,IssmDouble* values_in); … … 34 34 IssmDouble GetInputMax(); 35 35 IssmDouble GetInputMaxAbs(); 36 PentaInput 2* GetPentaInput(){return this;};36 PentaInput* GetPentaInput(){return this;}; 37 37 void GetInputValue(IssmDouble* pvalue,Gauss* gauss); 38 38 void Scale(IssmDouble scalar); 39 39 void Pow(IssmDouble scalar); 40 void AXPY(Input 2* xinput,IssmDouble scalar);41 void PointWiseMult(Input 2* xinput);40 void AXPY(Input* xinput,IssmDouble scalar); 41 void PointWiseMult(Input* xinput); 42 42 void Serve(int numindices,int* indices); 43 43 void Serve(int row,int numindices); -
issm/trunk-jpl/src/c/classes/Inputs/SegInput.cpp
r25378 r25379 1 /*!\file SegInput 2.c2 * \brief: implementation of the SegInput 2object1 /*!\file SegInput.c 2 * \brief: implementation of the SegInput object 3 3 */ 4 4 … … 11 11 #include "../classes.h" 12 12 #include "../../shared/shared.h" 13 #include "./SegInput 2.h"14 15 /*SegInput 2constructors and destructor*/16 SegInput 2::SegInput2(void){/*{{{*/13 #include "./SegInput.h" 14 15 /*SegInput constructors and destructor*/ 16 SegInput::SegInput(void){/*{{{*/ 17 17 18 18 this->numberofelements_local = -1; … … 25 25 26 26 }/*}}}*/ 27 SegInput 2::SegInput2(int nbe_in,int nbv_in,int interp_in){/*{{{*/27 SegInput::SegInput(int nbe_in,int nbv_in,int interp_in){/*{{{*/ 28 28 29 29 _assert_(nbe_in>0); … … 38 38 this->Reset(interp_in); 39 39 }/*}}}*/ 40 SegInput 2::~SegInput2(){/*{{{*/40 SegInput::~SegInput(){/*{{{*/ 41 41 if(this->element_values) xDelete<IssmDouble>(this->element_values); 42 42 if(this->values) xDelete<IssmDouble>(this->values); 43 43 } 44 44 /*}}}*/ 45 void SegInput 2::Reset(int interp_in){/*{{{*/45 void SegInput::Reset(int interp_in){/*{{{*/ 46 46 47 47 /*Clean up*/ … … 68 68 69 69 /*Object virtual functions definitions:*/ 70 Input 2* SegInput2::copy() {/*{{{*/71 72 SegInput 2* output = new SegInput2(this->numberofelements_local,this->numberofvertices_local,this->interpolation);70 Input* SegInput::copy() {/*{{{*/ 71 72 SegInput* output = new SegInput(this->numberofelements_local,this->numberofvertices_local,this->interpolation); 73 73 74 74 xMemCpy<IssmDouble>(output->values,this->values,this->M*this->N); … … 78 78 } 79 79 /*}}}*/ 80 void SegInput 2::DeepEcho(void){/*{{{*/81 _printf_("SegInput 2Echo:\n");80 void SegInput::DeepEcho(void){/*{{{*/ 81 _printf_("SegInput Echo:\n"); 82 82 _printf_(" interpolation: "<<EnumToStringx(this->interpolation)<<"\n"); 83 83 _printf_(" Size: "<<M<<"x"<<N<<"\n"); … … 89 89 } 90 90 printarray(this->values,this->M,this->N); 91 //_printf_(setw(15)<<" SegInput 2"<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");92 } 93 /*}}}*/ 94 void SegInput 2::Echo(void){/*{{{*/95 _printf_("SegInput 2Echo:\n");91 //_printf_(setw(15)<<" SegInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n"); 92 } 93 /*}}}*/ 94 void SegInput::Echo(void){/*{{{*/ 95 _printf_("SegInput Echo:\n"); 96 96 _printf_(" interpolation: "<<EnumToStringx(this->interpolation)<<"\n"); 97 97 _printf_(" Size: "<<M<<"x"<<N<<"\n"); … … 105 105 } 106 106 /*}}}*/ 107 int SegInput 2::Id(void){/*{{{*/107 int SegInput::Id(void){/*{{{*/ 108 108 return -1; 109 109 }/*}}}*/ 110 void SegInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/111 112 MARSHALLING_ENUM(SegInput 2Enum);110 void SegInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 111 112 MARSHALLING_ENUM(SegInputEnum); 113 113 MARSHALLING(this->numberofelements_local); 114 114 MARSHALLING(this->numberofvertices_local); … … 128 128 } 129 129 /*}}}*/ 130 int SegInput 2::ObjectEnum(void){/*{{{*/131 return SegInput 2Enum;132 } 133 /*}}}*/ 134 135 /*SegInput 2management*/136 void SegInput 2::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/130 int SegInput::ObjectEnum(void){/*{{{*/ 131 return SegInputEnum; 132 } 133 /*}}}*/ 134 135 /*SegInput management*/ 136 void SegInput::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/ 137 137 138 138 _assert_(this); … … 145 145 } 146 146 /*}}}*/ 147 void SegInput 2::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/147 void SegInput::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/ 148 148 149 149 _assert_(this); … … 181 181 } 182 182 /*}}}*/ 183 void SegInput 2::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/183 void SegInput::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/ 184 184 185 185 _assert_(this); … … 195 195 } 196 196 /*}}}*/ 197 void SegInput 2::Serve(int numindices,int* indices){/*{{{*/197 void SegInput::Serve(int numindices,int* indices){/*{{{*/ 198 198 199 199 _assert_(this); … … 211 211 } 212 212 /*}}}*/ 213 void SegInput 2::Serve(int row,int numindices){/*{{{*/213 void SegInput::Serve(int row,int numindices){/*{{{*/ 214 214 215 215 _assert_(this); … … 225 225 this->isserved = true; 226 226 } /*}}}*/ 227 int SegInput 2::GetInterpolation(){/*{{{*/227 int SegInput::GetInterpolation(){/*{{{*/ 228 228 return this->interpolation; 229 229 }/*}}}*/ 230 void SegInput 2::GetInputAverage(IssmDouble* pvalue){/*{{{*/230 void SegInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/ 231 231 _assert_(this); 232 232 _assert_(this->isserved); … … 241 241 *pvalue=value; 242 242 }/*}}}*/ 243 IssmDouble SegInput 2::GetInputMin(void){/*{{{*/243 IssmDouble SegInput::GetInputMin(void){/*{{{*/ 244 244 _assert_(this); 245 245 _assert_(this->isserved); … … 253 253 return min; 254 254 }/*}}}*/ 255 IssmDouble SegInput 2::GetInputMax(void){/*{{{*/255 IssmDouble SegInput::GetInputMax(void){/*{{{*/ 256 256 _assert_(this); 257 257 _assert_(this->isserved); … … 265 265 return max; 266 266 }/*}}}*/ 267 IssmDouble SegInput 2::GetInputMaxAbs(void){/*{{{*/267 IssmDouble SegInput::GetInputMaxAbs(void){/*{{{*/ 268 268 _assert_(this); 269 269 _assert_(this->isserved); … … 277 277 return maxabs; 278 278 }/*}}}*/ 279 void SegInput 2::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/279 void SegInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/ 280 280 _assert_(this); 281 281 _assert_(this->isserved); … … 283 283 SegRef::GetInputDerivativeValue(derivativevalues,this->element_values,xyz_list,(GaussSeg*)gauss,this->interpolation); 284 284 }/*}}}*/ 285 void SegInput 2::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/285 void SegInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/ 286 286 _assert_(this); 287 287 _assert_(this->isserved); … … 289 289 SegRef::GetInputValue(pvalue,this->element_values,(GaussSeg*)gauss,this->interpolation); 290 290 }/*}}}*/ 291 int SegInput 2::GetResultArraySize(void){/*{{{*/291 int SegInput::GetResultArraySize(void){/*{{{*/ 292 292 return 1; 293 293 } 294 294 /*}}}*/ 295 int SegInput 2::GetResultInterpolation(void){/*{{{*/295 int SegInput::GetResultInterpolation(void){/*{{{*/ 296 296 if(this->interpolation==P0Enum || this->interpolation==P0DGEnum){ 297 297 return P0Enum; … … 299 299 return P1Enum; 300 300 }/*}}}*/ 301 int SegInput 2::GetResultNumberOfNodes(void){/*{{{*/301 int SegInput::GetResultNumberOfNodes(void){/*{{{*/ 302 302 return SegRef::NumberofNodes(this->interpolation); 303 303 } 304 304 /*}}}*/ 305 void SegInput 2::Scale(IssmDouble alpha){/*{{{*/305 void SegInput::Scale(IssmDouble alpha){/*{{{*/ 306 306 307 307 for(int i=0;i<this->M*this->N;i++) this->values[i] = alpha*this->values[i]; … … 309 309 } 310 310 /*}}}*/ 311 void SegInput 2::Pow(IssmDouble alpha){/*{{{*/311 void SegInput::Pow(IssmDouble alpha){/*{{{*/ 312 312 313 313 for(int i=0;i<this->M*this->N;i++) this->values[i] = pow(this->values[i],alpha); … … 315 315 } 316 316 /*}}}*/ 317 void SegInput 2::AXPY(Input2* xinput,IssmDouble alpha){/*{{{*/317 void SegInput::AXPY(Input* xinput,IssmDouble alpha){/*{{{*/ 318 318 319 319 /*xinput is of the same type, so cast it: */ 320 if(xinput->ObjectEnum()!=SegInput 2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));321 SegInput 2* xseginput=xDynamicCast<SegInput2*>(xinput);320 if(xinput->ObjectEnum()!=SegInputEnum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 321 SegInput* xseginput=xDynamicCast<SegInput*>(xinput); 322 322 if(xseginput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 323 323 … … 327 327 } 328 328 /*}}}*/ 329 void SegInput 2::PointWiseMult(Input2* xinput){/*{{{*/329 void SegInput::PointWiseMult(Input* xinput){/*{{{*/ 330 330 331 331 /*xinput is of the same type, so cast it: */ 332 if(xinput->ObjectEnum()!=SegInput 2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));333 SegInput 2* xseginput=xDynamicCast<SegInput2*>(xinput);332 if(xinput->ObjectEnum()!=SegInputEnum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 333 SegInput* xseginput=xDynamicCast<SegInput*>(xinput); 334 334 if(xseginput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 335 335 -
issm/trunk-jpl/src/c/classes/Inputs/SegInput.h
r25378 r25379 3 3 4 4 /*Headers:*/ 5 #include "./ElementInput 2.h"5 #include "./ElementInput.h" 6 6 #include "../Elements/SegRef.h" 7 7 8 class SegInput 2: public ElementInput2, public SegRef{8 class SegInput: public ElementInput, public SegRef{ 9 9 10 10 public: 11 /*SegInput 2constructors, destructors: {{{*/12 SegInput 2();13 SegInput 2(int nbe_in,int nbv_in,int interp_in);14 ~SegInput 2();11 /*SegInput constructors, destructors: {{{*/ 12 SegInput(); 13 SegInput(int nbe_in,int nbv_in,int interp_in); 14 ~SegInput(); 15 15 /*}}}*/ 16 16 /*Object virtual functions definitions:{{{ */ 17 Input 2*copy();17 Input *copy(); 18 18 void DeepEcho(); 19 19 void Echo(); … … 22 22 int ObjectEnum(); 23 23 /*}}}*/ 24 /*SegInput 2management: {{{*/24 /*SegInput management: {{{*/ 25 25 void SetInput(int interp_in,int row,IssmDouble value_in); 26 26 void SetInput(int interp_in,int numinds,int* rows,IssmDouble* values_in); … … 32 32 IssmDouble GetInputMax(); 33 33 IssmDouble GetInputMaxAbs(); 34 SegInput 2* GetSegInput(){return this;};34 SegInput* GetSegInput(){return this;}; 35 35 void GetInputValue(IssmDouble* pvalue,Gauss* gauss); 36 36 void Scale(IssmDouble scalar); 37 37 void Pow(IssmDouble scalar); 38 void AXPY(Input 2* xinput,IssmDouble scalar);39 void PointWiseMult(Input 2* xinput);38 void AXPY(Input* xinput,IssmDouble scalar); 39 void PointWiseMult(Input* xinput); 40 40 void Serve(int numindices,int* indices); 41 41 void Serve(int row,int numindices); -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
r25378 r25379 1 /*!\file TransientInput 2.c2 * \brief: implementation of the TransientInput 2object1 /*!\file TransientInput.c 2 * \brief: implementation of the TransientInput object 3 3 */ 4 4 /*Headers*/ … … 9 9 #endif 10 10 11 #include "./TransientInput 2.h"12 #include "./TriaInput 2.h"13 #include "./PentaInput 2.h"11 #include "./TransientInput.h" 12 #include "./TriaInput.h" 13 #include "./PentaInput.h" 14 14 #include "../../shared/shared.h" 15 15 #include "../Params/Parameters.h" 16 16 17 /*TransientInput 2constructors and destructor*/18 TransientInput 2::TransientInput2(){/*{{{*/17 /*TransientInput constructors and destructor*/ 18 TransientInput::TransientInput(){/*{{{*/ 19 19 20 20 enum_type=UNDEF; … … 29 29 } 30 30 /*}}}*/ 31 TransientInput 2::TransientInput2(int in_enum_type,int nbe,int nbv,IssmDouble* timesin,int N){/*{{{*/31 TransientInput::TransientInput(int in_enum_type,int nbe,int nbv,IssmDouble* timesin,int N){/*{{{*/ 32 32 33 33 /*Set Enum*/ … … 43 43 xMemCpy(this->timesteps,timesin,N); 44 44 45 this->inputs = xNew<Input 2*>(N);45 this->inputs = xNew<Input*>(N); 46 46 for(int i=0;i<N;i++) this->inputs[i] = NULL; 47 47 } … … 55 55 } 56 56 /*}}}*/ 57 TransientInput 2::~TransientInput2(){/*{{{*/57 TransientInput::~TransientInput(){/*{{{*/ 58 58 59 59 for(int i=0;i<this->numtimesteps;i++){ 60 60 delete this->inputs[i]; 61 61 } 62 xDelete<Input 2*>(this->inputs);62 xDelete<Input*>(this->inputs); 63 63 xDelete<IssmDouble>(this->timesteps); 64 64 … … 68 68 69 69 /*Object virtual functions definitions:*/ 70 Input 2* TransientInput2::copy() {/*{{{*/71 72 TransientInput 2* output=NULL;73 74 output = new TransientInput 2();70 Input* TransientInput::copy() {/*{{{*/ 71 72 TransientInput* output=NULL; 73 74 output = new TransientInput(); 75 75 output->enum_type=this->enum_type; 76 76 output->numtimesteps=this->numtimesteps; … … 78 78 output->timesteps=xNew<IssmDouble>(this->numtimesteps); 79 79 xMemCpy(output->timesteps,this->timesteps,this->numtimesteps); 80 output->inputs = xNew<Input 2*>(this->numtimesteps);80 output->inputs = xNew<Input*>(this->numtimesteps); 81 81 for(int i=0;i<this->numtimesteps;i++){ 82 82 output->inputs[i] = this->inputs[i]->copy(); … … 87 87 return output; 88 88 }/*}}}*/ 89 void TransientInput 2::DeepEcho(void){/*{{{*/89 void TransientInput::DeepEcho(void){/*{{{*/ 90 90 91 91 int i; 92 92 93 _printf_("TransientInput 2:\n");93 _printf_("TransientInput:\n"); 94 94 _printf_(" enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")\n"); 95 95 _printf_(" numtimesteps: " << this->numtimesteps << "\n"); … … 102 102 } 103 103 /*}}}*/ 104 void TransientInput 2::Configure(Parameters* params){/*{{{*/104 void TransientInput::Configure(Parameters* params){/*{{{*/ 105 105 this->parameters=params; 106 106 } 107 107 /*}}}*/ 108 void TransientInput 2::Echo(void){/*{{{*/108 void TransientInput::Echo(void){/*{{{*/ 109 109 this->DeepEcho(); 110 110 } 111 111 /*}}}*/ 112 int TransientInput 2::Id(void){ return -1; }/*{{{*/113 /*}}}*/ 114 void TransientInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/112 int TransientInput::Id(void){ return -1; }/*{{{*/ 113 /*}}}*/ 114 void TransientInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 115 115 116 116 if (marshall_direction == MARSHALLING_BACKWARD){ … … 119 119 } 120 120 121 MARSHALLING_ENUM(TransientInput 2Enum);121 MARSHALLING_ENUM(TransientInputEnum); 122 122 123 123 MARSHALLING(enum_type); … … 128 128 } 129 129 /*}}}*/ 130 int TransientInput 2::ObjectEnum(void){/*{{{*/131 132 return TransientInput 2Enum;130 int TransientInput::ObjectEnum(void){/*{{{*/ 131 132 return TransientInputEnum; 133 133 134 134 } … … 136 136 137 137 /*Intermediary*/ 138 void TransientInput 2::AddTriaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/138 void TransientInput::AddTriaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/ 139 139 140 140 /*Check whether this is the last time step that we have*/ … … 150 150 151 151 IssmDouble *old_timesteps = NULL; 152 Input 2**old_inputs = NULL;152 Input **old_inputs = NULL; 153 153 if (this->numtimesteps > 0){ 154 154 old_timesteps=xNew<IssmDouble>(this->numtimesteps); 155 155 xMemCpy(old_timesteps,this->timesteps,this->numtimesteps); 156 156 xDelete<IssmDouble>(this->timesteps); 157 old_inputs=xNew<Input 2*>(this->numtimesteps);157 old_inputs=xNew<Input*>(this->numtimesteps); 158 158 xMemCpy(old_inputs,this->inputs,this->numtimesteps); 159 xDelete<Input 2*>(this->inputs);159 xDelete<Input*>(this->inputs); 160 160 } 161 161 162 162 this->numtimesteps=this->numtimesteps+1; 163 163 this->timesteps=xNew<IssmDouble>(this->numtimesteps); 164 this->inputs = xNew<Input 2*>(this->numtimesteps);164 this->inputs = xNew<Input*>(this->numtimesteps); 165 165 166 166 if (this->numtimesteps > 1){ … … 168 168 xMemCpy(this->timesteps,old_timesteps,this->numtimesteps-1); 169 169 xDelete(old_timesteps); 170 xDelete<Input 2*>(old_inputs);170 xDelete<Input*>(old_inputs); 171 171 } 172 172 … … 178 178 } 179 179 /*}}}*/ 180 void TransientInput 2::AddPentaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/180 void TransientInput::AddPentaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/ 181 181 182 182 /*Check whether this is the last time step that we have*/ … … 192 192 193 193 IssmDouble *old_timesteps = NULL; 194 Input 2**old_inputs = NULL;194 Input **old_inputs = NULL; 195 195 if (this->numtimesteps > 0){ 196 196 old_timesteps=xNew<IssmDouble>(this->numtimesteps); 197 197 xMemCpy(old_timesteps,this->timesteps,this->numtimesteps); 198 198 xDelete<IssmDouble>(this->timesteps); 199 old_inputs=xNew<Input 2*>(this->numtimesteps);199 old_inputs=xNew<Input*>(this->numtimesteps); 200 200 xMemCpy(old_inputs,this->inputs,this->numtimesteps); 201 xDelete<Input 2*>(this->inputs);201 xDelete<Input*>(this->inputs); 202 202 } 203 203 204 204 this->numtimesteps=this->numtimesteps+1; 205 205 this->timesteps=xNew<IssmDouble>(this->numtimesteps); 206 this->inputs = xNew<Input 2*>(this->numtimesteps);206 this->inputs = xNew<Input*>(this->numtimesteps); 207 207 208 208 if (this->numtimesteps > 1){ … … 210 210 xMemCpy(this->timesteps,old_timesteps,this->numtimesteps-1); 211 211 xDelete(old_timesteps); 212 xDelete<Input 2*>(old_inputs);212 xDelete<Input*>(old_inputs); 213 213 } 214 214 … … 220 220 } 221 221 /*}}}*/ 222 void TransientInput 2::AddTriaTimeInput(int step,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/222 void TransientInput::AddTriaTimeInput(int step,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/ 223 223 224 224 _assert_(step>=0 && step<this->numtimesteps); … … 226 226 /*Create it if necessary*/ 227 227 if(this->inputs[step]){ 228 if(this->inputs[step]->ObjectEnum()!=TriaInput 2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[step]->ObjectEnum()));228 if(this->inputs[step]->ObjectEnum()!=TriaInputEnum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[step]->ObjectEnum())); 229 229 } 230 230 else{ 231 this->inputs[step] = new TriaInput 2(this->numberofelements_local,this->numberofvertices_local,interp_in);231 this->inputs[step] = new TriaInput(this->numberofelements_local,this->numberofvertices_local,interp_in); 232 232 } 233 233 234 234 /*Set input*/ 235 TriaInput 2* input = xDynamicCast<TriaInput2*>(this->inputs[step]);235 TriaInput* input = xDynamicCast<TriaInput*>(this->inputs[step]); 236 236 input->SetInput(interp_in,numindices,indices,values_in); 237 237 238 238 } 239 239 /*}}}*/ 240 void TransientInput 2::AddPentaTimeInput(int step,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/240 void TransientInput::AddPentaTimeInput(int step,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/ 241 241 242 242 _assert_(step>=0 && step<this->numtimesteps); … … 244 244 /*Create it if necessary*/ 245 245 if(this->inputs[step]){ 246 if(this->inputs[step]->ObjectEnum()!=PentaInput 2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[step]->ObjectEnum()));246 if(this->inputs[step]->ObjectEnum()!=PentaInputEnum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[step]->ObjectEnum())); 247 247 } 248 248 else{ 249 this->inputs[step] = new PentaInput 2(this->numberofelements_local,this->numberofvertices_local,interp_in);249 this->inputs[step] = new PentaInput(this->numberofelements_local,this->numberofvertices_local,interp_in); 250 250 } 251 251 252 252 /*Set input*/ 253 PentaInput 2* input = xDynamicCast<PentaInput2*>(this->inputs[step]);253 PentaInput* input = xDynamicCast<PentaInput*>(this->inputs[step]); 254 254 input->SetInput(interp_in,numindices,indices,values_in); 255 255 256 256 } 257 257 /*}}}*/ 258 void TransientInput 2::GetAllTimes(IssmDouble** ptimesteps,int* pnumtimesteps){/*{{{*/258 void TransientInput::GetAllTimes(IssmDouble** ptimesteps,int* pnumtimesteps){/*{{{*/ 259 259 260 260 if(ptimesteps){ … … 268 268 } 269 269 /*}}}*/ 270 TriaInput 2* TransientInput2::GetTriaInput(){/*{{{*/270 TriaInput* TransientInput::GetTriaInput(){/*{{{*/ 271 271 272 272 IssmDouble time; … … 276 276 } 277 277 /*}}}*/ 278 TriaInput 2* TransientInput2::GetTriaInput(IssmDouble time){/*{{{*/278 TriaInput* TransientInput::GetTriaInput(IssmDouble time){/*{{{*/ 279 279 280 280 /*Set current time input*/ … … 283 283 284 284 /*Cast and return*/ 285 if(this->current_input->ObjectEnum()!=TriaInput 2Enum){286 _error_("Cannot return a TriaInput 2");287 } 288 return xDynamicCast<TriaInput 2*>(this->current_input);289 290 } 291 /*}}}*/ 292 TriaInput 2* TransientInput2::GetTriaInput(IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/285 if(this->current_input->ObjectEnum()!=TriaInputEnum){ 286 _error_("Cannot return a TriaInput"); 287 } 288 return xDynamicCast<TriaInput*>(this->current_input); 289 290 } 291 /*}}}*/ 292 TriaInput* TransientInput::GetTriaInput(IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/ 293 293 294 294 /*Set current time input*/ … … 297 297 298 298 /*Cast and return*/ 299 if(this->current_input->ObjectEnum()!=TriaInput 2Enum){300 _error_("Cannot return a TriaInput 2");301 } 302 return xDynamicCast<TriaInput 2*>(this->current_input);303 304 } 305 /*}}}*/ 306 TriaInput 2* TransientInput2::GetTriaInput(int offset){/*{{{*/299 if(this->current_input->ObjectEnum()!=TriaInputEnum){ 300 _error_("Cannot return a TriaInput"); 301 } 302 return xDynamicCast<TriaInput*>(this->current_input); 303 304 } 305 /*}}}*/ 306 TriaInput* TransientInput::GetTriaInput(int offset){/*{{{*/ 307 307 308 308 /*Check offset*/ … … 310 310 _error_("Cannot return input for offset "<<offset); 311 311 } 312 Input 2* input = this->inputs[offset];312 Input* input = this->inputs[offset]; 313 313 314 314 /*Cast and return*/ 315 315 _assert_(input); 316 if(input->ObjectEnum()!=TriaInput 2Enum) _error_("Cannot return a TriaInput2");317 return xDynamicCast<TriaInput 2*>(input);318 319 } 320 /*}}}*/ 321 PentaInput 2* TransientInput2::GetPentaInput(){/*{{{*/316 if(input->ObjectEnum()!=TriaInputEnum) _error_("Cannot return a TriaInput"); 317 return xDynamicCast<TriaInput*>(input); 318 319 } 320 /*}}}*/ 321 PentaInput* TransientInput::GetPentaInput(){/*{{{*/ 322 322 323 323 IssmDouble time; … … 326 326 } 327 327 /*}}}*/ 328 PentaInput 2* TransientInput2::GetPentaInput(IssmDouble time){/*{{{*/328 PentaInput* TransientInput::GetPentaInput(IssmDouble time){/*{{{*/ 329 329 330 330 /*Set current time input*/ … … 333 333 334 334 /*Cast and return*/ 335 if(this->current_input->ObjectEnum()!=PentaInput 2Enum){336 _error_("Cannot return a PentaInput 2");337 } 338 return xDynamicCast<PentaInput 2*>(this->current_input);339 340 } 341 /*}}}*/ 342 PentaInput 2* TransientInput2::GetPentaInput(int offset){/*{{{*/335 if(this->current_input->ObjectEnum()!=PentaInputEnum){ 336 _error_("Cannot return a PentaInput"); 337 } 338 return xDynamicCast<PentaInput*>(this->current_input); 339 340 } 341 /*}}}*/ 342 PentaInput* TransientInput::GetPentaInput(int offset){/*{{{*/ 343 343 344 344 … … 347 347 _error_("Cannot return input for offset "<<offset); 348 348 } 349 Input 2* input = this->inputs[offset];349 Input* input = this->inputs[offset]; 350 350 351 351 /*Cast and return*/ 352 if(input->ObjectEnum()!=PentaInput 2Enum) _error_("Cannot return a PentaInput2");353 return xDynamicCast<PentaInput 2*>(input);354 355 } 356 /*}}}*/ 357 PentaInput 2* TransientInput2::GetPentaInput(IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/352 if(input->ObjectEnum()!=PentaInputEnum) _error_("Cannot return a PentaInput"); 353 return xDynamicCast<PentaInput*>(input); 354 355 } 356 /*}}}*/ 357 PentaInput* TransientInput::GetPentaInput(IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/ 358 358 359 359 /*Set current time input*/ … … 362 362 363 363 /*Cast and return*/ 364 if(this->current_input->ObjectEnum()!=PentaInput 2Enum){365 _error_("Cannot return a PentaInput 2");366 } 367 return xDynamicCast<PentaInput 2*>(this->current_input);368 369 } 370 /*}}}*/ 371 372 void TransientInput 2::SetCurrentTimeInput(IssmDouble time){/*{{{*/364 if(this->current_input->ObjectEnum()!=PentaInputEnum){ 365 _error_("Cannot return a PentaInput"); 366 } 367 return xDynamicCast<PentaInput*>(this->current_input); 368 369 } 370 /*}}}*/ 371 372 void TransientInput::SetCurrentTimeInput(IssmDouble time){/*{{{*/ 373 373 374 374 /*First, recover current time from parameters: */ … … 427 427 IssmDouble alpha1=(1.0-alpha2); 428 428 429 Input 2* input1=this->inputs[offset];430 Input 2* input2=this->inputs[offset+1];429 Input* input1=this->inputs[offset]; 430 Input* input2=this->inputs[offset+1]; 431 431 432 432 this->current_input = input1->copy(); … … 436 436 437 437 }/*}}}*/ 438 void TransientInput 2::SetAverageAsCurrentTimeInput(IssmDouble start_time,IssmDouble end_time, int averaging_method){/*{{{*/438 void TransientInput::SetAverageAsCurrentTimeInput(IssmDouble start_time,IssmDouble end_time, int averaging_method){/*{{{*/ 439 439 440 440 IssmDouble dt,durinv; … … 480 480 _assert_(dt>0.); 481 481 } 482 Input 2* stepinput=this->inputs[offset+1];482 Input* stepinput=this->inputs[offset+1]; 483 483 484 484 switch(averaging_method){ … … 535 535 } 536 536 }/*}}}*/ 537 IssmDouble TransientInput 2::GetTimeByOffset(int offset){/*{{{*/537 IssmDouble TransientInput::GetTimeByOffset(int offset){/*{{{*/ 538 538 if(offset<0) offset=0; 539 539 _assert_(offset<this->numtimesteps); … … 541 541 } 542 542 /*}}}*/ 543 int TransientInput 2::GetTimeInputOffset(IssmDouble time){/*{{{*/543 int TransientInput::GetTimeInputOffset(IssmDouble time){/*{{{*/ 544 544 545 545 int offset; -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h
r25378 r25379 1 /*! \file TransientInput 2.h1 /*! \file TransientInput.h 2 2 * \brief: header file for transientinput object 3 3 */ … … 7 7 8 8 /*Headers:*/ 9 #include "./Input 2.h"9 #include "./Input.h" 10 10 class Gauss; 11 11 class Parameters; 12 12 13 class TransientInput 2: public Input2{13 class TransientInput: public Input{ 14 14 15 15 private: … … 20 20 int enum_type; 21 21 int numtimesteps; 22 Input 2** inputs;22 Input** inputs; 23 23 IssmDouble *timesteps; 24 24 Parameters *parameters; //to find current time. 25 25 26 26 IssmDouble current_step; 27 Input 2* current_input;27 Input* current_input; 28 28 29 /*TransientInput 2constructors, destructors: {{{*/30 TransientInput 2();31 TransientInput 2(int in_enum_type,int nbe,int nbv,IssmDouble* times,int N);32 ~TransientInput 2();33 void AddTimeInput(Input 2* input,IssmDouble time); /*FIXME: remove!*/29 /*TransientInput constructors, destructors: {{{*/ 30 TransientInput(); 31 TransientInput(int in_enum_type,int nbe,int nbv,IssmDouble* times,int N); 32 ~TransientInput(); 33 void AddTimeInput(Input* input,IssmDouble time); /*FIXME: remove!*/ 34 34 void AddTriaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in); 35 35 void AddPentaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in); … … 38 38 /*}}}*/ 39 39 /*Object virtual functions definitions:{{{*/ 40 Input 2* copy();40 Input* copy(); 41 41 void Configure(Parameters* params); 42 42 void DeepEcho(); … … 46 46 int ObjectEnum(); 47 47 /*}}}*/ 48 /*TransientInput 2management:*/48 /*TransientInput management:*/ 49 49 void GetAllTimes(IssmDouble** ptimesteps,int* pnumtimesteps); 50 TriaInput 2* GetTriaInput();51 TriaInput 2* GetTriaInput(IssmDouble time);52 TriaInput 2* GetTriaInput(IssmDouble start_time,IssmDouble end_time,int averaging_method);53 TriaInput 2* GetTriaInput(int offset);54 PentaInput 2* GetPentaInput();55 PentaInput 2* GetPentaInput(IssmDouble time);56 PentaInput 2* GetPentaInput(int offset);57 PentaInput 2* GetPentaInput(IssmDouble start_time,IssmDouble end_time,int averaging_method);58 Input 2* GetTimeInput(IssmDouble time){_error_("This should not happen!");};50 TriaInput* GetTriaInput(); 51 TriaInput* GetTriaInput(IssmDouble time); 52 TriaInput* GetTriaInput(IssmDouble start_time,IssmDouble end_time,int averaging_method); 53 TriaInput* GetTriaInput(int offset); 54 PentaInput* GetPentaInput(); 55 PentaInput* GetPentaInput(IssmDouble time); 56 PentaInput* GetPentaInput(int offset); 57 PentaInput* GetPentaInput(IssmDouble start_time,IssmDouble end_time,int averaging_method); 58 Input* GetTimeInput(IssmDouble time){_error_("This should not happen!");}; 59 59 IssmDouble GetTimeByOffset(int offset); 60 60 int GetTimeInputOffset(IssmDouble time); -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
r25378 r25379 1 /*!\file TriaInput 2.c2 * \brief: implementation of the TriaInput 2object1 /*!\file TriaInput.c 2 * \brief: implementation of the TriaInput object 3 3 */ 4 4 … … 11 11 #include "../classes.h" 12 12 #include "../../shared/shared.h" 13 #include "./TriaInput 2.h"14 15 /*TriaInput 2constructors and destructor*/16 TriaInput 2::TriaInput2(void){/*{{{*/13 #include "./TriaInput.h" 14 15 /*TriaInput constructors and destructor*/ 16 TriaInput::TriaInput(void){/*{{{*/ 17 17 18 18 this->numberofelements_local = -1; … … 26 26 27 27 }/*}}}*/ 28 TriaInput 2::TriaInput2(int nbe_in,int nbv_in,int interp_in){/*{{{*/28 TriaInput::TriaInput(int nbe_in,int nbv_in,int interp_in){/*{{{*/ 29 29 30 30 _assert_(nbe_in>0); … … 40 40 this->Reset(interp_in); 41 41 }/*}}}*/ 42 TriaInput 2::~TriaInput2(){/*{{{*/42 TriaInput::~TriaInput(){/*{{{*/ 43 43 if(this->element_values) xDelete<IssmDouble>(this->element_values); 44 44 if(this->values) xDelete<IssmDouble>(this->values); 45 45 } 46 46 /*}}}*/ 47 void TriaInput 2::Reset(int interp_in){/*{{{*/47 void TriaInput::Reset(int interp_in){/*{{{*/ 48 48 49 49 /*Clean up*/ … … 70 70 71 71 /*Object virtual functions definitions:*/ 72 Input 2* TriaInput2::copy() {/*{{{*/73 74 TriaInput 2* output = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,this->interpolation);72 Input* TriaInput::copy() {/*{{{*/ 73 74 TriaInput* output = new TriaInput(this->numberofelements_local,this->numberofvertices_local,this->interpolation); 75 75 76 76 xMemCpy<IssmDouble>(output->values,this->values,this->M*this->N); … … 80 80 } 81 81 /*}}}*/ 82 void TriaInput 2::DeepEcho(void){/*{{{*/83 _printf_("TriaInput 2Echo:\n");82 void TriaInput::DeepEcho(void){/*{{{*/ 83 _printf_("TriaInput Echo:\n"); 84 84 _printf_(" interpolation: "<<EnumToStringx(this->interpolation)<<"\n"); 85 85 _printf_(" Size: "<<M<<"x"<<N<<"\n"); … … 92 92 } 93 93 printarray(this->values,this->M,this->N); 94 //_printf_(setw(15)<<" TriaInput 2"<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");95 } 96 /*}}}*/ 97 void TriaInput 2::Echo(void){/*{{{*/98 _printf_("TriaInput 2Echo:\n");94 //_printf_(setw(15)<<" TriaInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n"); 95 } 96 /*}}}*/ 97 void TriaInput::Echo(void){/*{{{*/ 98 _printf_("TriaInput Echo:\n"); 99 99 _printf_(" interpolation: "<<EnumToStringx(this->interpolation)<<"\n"); 100 100 _printf_(" Size: "<<M<<"x"<<N<<"\n"); … … 109 109 } 110 110 /*}}}*/ 111 int TriaInput 2::Id(void){/*{{{*/111 int TriaInput::Id(void){/*{{{*/ 112 112 return -1; 113 113 }/*}}}*/ 114 void TriaInput 2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/115 116 MARSHALLING_ENUM(TriaInput 2Enum);114 void TriaInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/ 115 116 MARSHALLING_ENUM(TriaInputEnum); 117 117 MARSHALLING(this->numberofelements_local); 118 118 MARSHALLING(this->numberofvertices_local); … … 133 133 } 134 134 /*}}}*/ 135 int TriaInput 2::ObjectEnum(void){/*{{{*/136 return TriaInput 2Enum;137 } 138 /*}}}*/ 139 140 /*TriaInput 2management*/141 void TriaInput 2::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/135 int TriaInput::ObjectEnum(void){/*{{{*/ 136 return TriaInputEnum; 137 } 138 /*}}}*/ 139 140 /*TriaInput management*/ 141 void TriaInput::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/ 142 142 143 143 _assert_(this); … … 150 150 } 151 151 /*}}}*/ 152 void TriaInput 2::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/152 void TriaInput::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/ 153 153 154 154 _assert_(this); … … 186 186 } 187 187 /*}}}*/ 188 void TriaInput 2::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/188 void TriaInput::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/ 189 189 190 190 _assert_(this); … … 200 200 } 201 201 /*}}}*/ 202 void TriaInput 2::Serve(int numindices,int* indices){/*{{{*/202 void TriaInput::Serve(int numindices,int* indices){/*{{{*/ 203 203 204 204 _assert_(this); … … 217 217 } 218 218 /*}}}*/ 219 void TriaInput 2::Serve(int row,int numindices){/*{{{*/219 void TriaInput::Serve(int row,int numindices){/*{{{*/ 220 220 221 221 _assert_(this); … … 232 232 this->isserved_collapsed = 0; 233 233 } /*}}}*/ 234 void TriaInput 2::ServeCollapsed(int row,int id1,int id2){/*{{{*/234 void TriaInput::ServeCollapsed(int row,int id1,int id2){/*{{{*/ 235 235 236 236 _assert_(this); … … 248 248 this->isserved_collapsed = 1; 249 249 }/*}}}*/ 250 void TriaInput 2::SetServeCollapsed(bool status){/*{{{*/250 void TriaInput::SetServeCollapsed(bool status){/*{{{*/ 251 251 this->isserved_collapsed = 1; 252 252 }/*}}}*/ 253 int TriaInput 2::GetInterpolation(){/*{{{*/253 int TriaInput::GetInterpolation(){/*{{{*/ 254 254 return this->interpolation; 255 255 }/*}}}*/ 256 void TriaInput 2::GetInputAverage(IssmDouble* pvalue){/*{{{*/256 void TriaInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/ 257 257 _assert_(this); 258 258 _assert_(this->isserved); … … 268 268 *pvalue=value; 269 269 }/*}}}*/ 270 IssmDouble TriaInput 2::GetInputMin(void){/*{{{*/270 IssmDouble TriaInput::GetInputMin(void){/*{{{*/ 271 271 _assert_(this); 272 272 _assert_(this->isserved); … … 281 281 return min; 282 282 }/*}}}*/ 283 IssmDouble TriaInput 2::GetInputMax(void){/*{{{*/283 IssmDouble TriaInput::GetInputMax(void){/*{{{*/ 284 284 _assert_(this); 285 285 _assert_(this->isserved); … … 294 294 return max; 295 295 }/*}}}*/ 296 IssmDouble TriaInput 2::GetInputMaxAbs(void){/*{{{*/296 IssmDouble TriaInput::GetInputMaxAbs(void){/*{{{*/ 297 297 _assert_(this); 298 298 _assert_(this->isserved); … … 307 307 return maxabs; 308 308 }/*}}}*/ 309 void TriaInput 2::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/309 void TriaInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/ 310 310 _assert_(this); 311 311 _assert_(this->isserved); … … 326 326 } 327 327 }/*}}}*/ 328 void TriaInput 2::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/328 void TriaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/ 329 329 _assert_(this); 330 330 _assert_(this->isserved); … … 344 344 } 345 345 }/*}}}*/ 346 int TriaInput 2::GetResultArraySize(void){/*{{{*/346 int TriaInput::GetResultArraySize(void){/*{{{*/ 347 347 return 1; 348 348 } 349 349 /*}}}*/ 350 int TriaInput 2::GetResultInterpolation(void){/*{{{*/350 int TriaInput::GetResultInterpolation(void){/*{{{*/ 351 351 if(this->interpolation==P0Enum || this->interpolation==P0DGEnum){ 352 352 return P0Enum; … … 354 354 return P1Enum; 355 355 }/*}}}*/ 356 int TriaInput 2::GetResultNumberOfNodes(void){/*{{{*/356 int TriaInput::GetResultNumberOfNodes(void){/*{{{*/ 357 357 return TriaRef::NumberofNodes(this->interpolation); 358 358 } 359 359 /*}}}*/ 360 void TriaInput 2::Scale(IssmDouble alpha){/*{{{*/360 void TriaInput::Scale(IssmDouble alpha){/*{{{*/ 361 361 362 362 for(int i=0;i<this->M*this->N;i++) this->values[i] = alpha*this->values[i]; … … 364 364 } 365 365 /*}}}*/ 366 void TriaInput 2::Pow(IssmDouble alpha){/*{{{*/366 void TriaInput::Pow(IssmDouble alpha){/*{{{*/ 367 367 368 368 for(int i=0;i<this->M*this->N;i++) this->values[i] = pow(this->values[i],alpha); … … 370 370 } 371 371 /*}}}*/ 372 void TriaInput 2::AXPY(Input2* xinput,IssmDouble alpha){/*{{{*/372 void TriaInput::AXPY(Input* xinput,IssmDouble alpha){/*{{{*/ 373 373 374 374 /*xinput is of the same type, so cast it: */ 375 if(xinput->ObjectEnum()!=TriaInput 2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));376 TriaInput 2* xtriainput=xDynamicCast<TriaInput2*>(xinput);375 if(xinput->ObjectEnum()!=TriaInputEnum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 376 TriaInput* xtriainput=xDynamicCast<TriaInput*>(xinput); 377 377 if(xtriainput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 378 378 … … 382 382 } 383 383 /*}}}*/ 384 void TriaInput 2::PointWiseMult(Input2* xinput){/*{{{*/384 void TriaInput::PointWiseMult(Input* xinput){/*{{{*/ 385 385 386 386 /*xinput is of the same type, so cast it: */ 387 if(xinput->ObjectEnum()!=TriaInput 2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));388 TriaInput 2* xtriainput=xDynamicCast<TriaInput2*>(xinput);387 if(xinput->ObjectEnum()!=TriaInputEnum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 388 TriaInput* xtriainput=xDynamicCast<TriaInput*>(xinput); 389 389 if(xtriainput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum())); 390 390 -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h
r25378 r25379 3 3 4 4 /*Headers:*/ 5 #include "./ElementInput 2.h"5 #include "./ElementInput.h" 6 6 #include "../Elements/TriaRef.h" 7 7 8 class TriaInput 2: public ElementInput2, public TriaRef{8 class TriaInput: public ElementInput, public TriaRef{ 9 9 10 10 private: … … 12 12 int collapsed_ids[2]; 13 13 public: 14 /*TriaInput 2constructors, destructors: {{{*/15 TriaInput 2();16 TriaInput 2(int nbe_in,int nbv_in,int interp_in);17 ~TriaInput 2();14 /*TriaInput constructors, destructors: {{{*/ 15 TriaInput(); 16 TriaInput(int nbe_in,int nbv_in,int interp_in); 17 ~TriaInput(); 18 18 /*}}}*/ 19 19 /*Object virtual functions definitions:{{{ */ 20 Input 2*copy();20 Input *copy(); 21 21 void DeepEcho(); 22 22 void Echo(); … … 25 25 int ObjectEnum(); 26 26 /*}}}*/ 27 /*TriaInput 2management: {{{*/27 /*TriaInput management: {{{*/ 28 28 void SetInput(int interp_in,int row,IssmDouble value_in); 29 29 void SetInput(int interp_in,int numinds,int* rows,IssmDouble* values_in); … … 35 35 IssmDouble GetInputMax(); 36 36 IssmDouble GetInputMaxAbs(); 37 TriaInput 2* GetTriaInput(){return this;};37 TriaInput* GetTriaInput(){return this;}; 38 38 void GetInputValue(IssmDouble* pvalue,Gauss* gauss); 39 39 void Scale(IssmDouble scalar); 40 40 void Pow(IssmDouble scalar); 41 void AXPY(Input 2* xinput,IssmDouble scalar);42 void PointWiseMult(Input 2* xinput);41 void AXPY(Input* xinput,IssmDouble scalar); 42 void PointWiseMult(Input* xinput); 43 43 void Serve(int numindices,int* indices); 44 44 void Serve(int row,int numindices); -
issm/trunk-jpl/src/c/classes/IoModel.cpp
r25213 r25379 27 27 #include "../shared/io/io.h" 28 28 #include "../shared/shared.h" 29 #include "../classes/Inputs 2/TransientInput2.h"29 #include "../classes/Inputs/TransientInput.h" 30 30 31 31 #ifdef _HAVE_CODIPACK_ … … 1607 1607 } 1608 1608 /*}}}*/ 1609 void IoModel::FetchDataToInput(Inputs 2* inputs2,Elements* elements,const char* vector_name,int input_enum,IssmDouble default_value){/*{{{*/1609 void IoModel::FetchDataToInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum,IssmDouble default_value){/*{{{*/ 1610 1610 1611 1611 /*First, look whether it is not already loaded in this->data*/ … … 1617 1617 for(int i=0;i<elements->Size();i++){ 1618 1618 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1619 element->InputCreate(iodata->data,inputs 2,this,iodata->M,iodata->N,iodata->layout,input_enum,iodata->code);//we need i to index into elements.1619 element->InputCreate(iodata->data,inputs,this,iodata->M,iodata->N,iodata->layout,input_enum,iodata->code);//we need i to index into elements. 1620 1620 } 1621 1621 return; … … 1639 1639 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1640 1640 if(!doublearray){ 1641 element->SetElementInput(inputs 2,input_enum,default_value);1641 element->SetElementInput(inputs,input_enum,default_value); 1642 1642 } 1643 1643 else{ 1644 element->InputCreate(doublearray,inputs 2,this,M,N,vector_layout,input_enum,code);//we need i to index into elements.1644 element->InputCreate(doublearray,inputs,this,M,N,vector_layout,input_enum,code);//we need i to index into elements. 1645 1645 } 1646 1646 } … … 1650 1650 } 1651 1651 /*}}}*/ 1652 void IoModel::FetchDataToInput(Inputs 2* inputs2,Elements* elements,const char* vector_name,int input_enum){/*{{{*/1652 void IoModel::FetchDataToInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum){/*{{{*/ 1653 1653 1654 1654 /*First, look whether it is not already loaded in this->data*/ … … 1659 1659 for(int i=0;i<elements->Size();i++){ 1660 1660 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1661 element->InputCreate(iodata->data,inputs 2,this,iodata->M,iodata->N,iodata->layout,input_enum,iodata->code);//we need i to index into elements.1661 element->InputCreate(iodata->data,inputs,this,iodata->M,iodata->N,iodata->layout,input_enum,iodata->code);//we need i to index into elements. 1662 1662 } 1663 1663 return; … … 1684 1684 for(i=0;i<elements->Size();i++){ 1685 1685 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1686 element->SetBoolInput(inputs 2,input_enum,boolean);1686 element->SetBoolInput(inputs,input_enum,boolean); 1687 1687 } 1688 1688 break; … … 1691 1691 for(i=0;i<elements->Size();i++){ 1692 1692 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1693 element->SetIntInput(inputs 2,input_enum,integer);1693 element->SetIntInput(inputs,input_enum,integer); 1694 1694 } 1695 1695 break; … … 1698 1698 for(i=0;i<elements->Size();i++){ 1699 1699 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1700 element->SetElementInput(inputs 2,input_enum,scalar);1700 element->SetElementInput(inputs,input_enum,scalar); 1701 1701 } 1702 1702 break; … … 1706 1706 for(i=0;i<elements->Size();i++){ 1707 1707 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1708 element->InputCreate(doublearray,inputs 2,this,M,N,vector_layout,input_enum,code);//we need i to index into elements.1708 element->InputCreate(doublearray,inputs,this,M,N,vector_layout,input_enum,code);//we need i to index into elements. 1709 1709 } 1710 1710 break; … … 1714 1714 for(i=0;i<elements->Size();i++){ 1715 1715 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1716 element->InputCreate(doublearray,inputs 2,this,M,N,vector_layout,input_enum,code);//we need i to index into elements.1716 element->InputCreate(doublearray,inputs,this,M,N,vector_layout,input_enum,code);//we need i to index into elements. 1717 1717 } 1718 1718 break; … … 1742 1742 1743 1743 //initialize transient input dataset: 1744 TransientInput 2* transientinput=inputs2->SetDatasetTransientInput(input_enum,i, times,N);1744 TransientInput* transientinput=inputs->SetDatasetTransientInput(input_enum,i, times,N); 1745 1745 for(int j=0;j<elements->Size();j++){ 1746 1746 … … 1816 1816 for(i=0;i<elements->Size();i++){ 1817 1817 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1818 element->InputCreate(doublearray,inputs 2,this,M,N,vector_layout,input_enum,code);//we need i to index into elements.1818 element->InputCreate(doublearray,inputs,this,M,N,vector_layout,input_enum,code);//we need i to index into elements. 1819 1819 } 1820 1820 break; … … 1827 1827 } 1828 1828 /*}}}*/ 1829 void IoModel::FetchDataToDatasetInput(Inputs 2* inputs2,Elements* elements,const char* vector_name,int input_enum){/*{{{*/1829 void IoModel::FetchDataToDatasetInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum){/*{{{*/ 1830 1830 1831 1831 /*First, look whether it is not already loaded in this->data*/ … … 1837 1837 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1838 1838 _error_("to be implemented..."); 1839 //element->InputCreate(iodata->data,inputs 2,this,iodata->M,iodata->N,iodata->layout,input_enum,iodata->code);//we need i to index into elements.1839 //element->InputCreate(iodata->data,inputs,this,iodata->M,iodata->N,iodata->layout,input_enum,iodata->code);//we need i to index into elements. 1840 1840 } 1841 1841 return; … … 1877 1877 for(int i=0;i<elements->Size();i++){ 1878 1878 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1879 element->DatasetInputCreate(doublearray,M,N,ids,N,inputs 2,this,input_enum);1879 element->DatasetInputCreate(doublearray,M,N,ids,N,inputs,this,input_enum); 1880 1880 } 1881 1881 xDelete<int>(ids); … … 1892 1892 for(int i=0;i<elements->Size();i++){ 1893 1893 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1894 element->DatasetInputCreate(doublearray,M,N,ids,N,inputs 2,this,input_enum);1894 element->DatasetInputCreate(doublearray,M,N,ids,N,inputs,this,input_enum); 1895 1895 } 1896 1896 xDelete<int>(ids); -
issm/trunk-jpl/src/c/classes/IoModel.h
r24579 r25379 13 13 class Parameters; 14 14 class Elements; 15 class Inputs 2;15 class Inputs; 16 16 class Param; 17 17 class Options; … … 139 139 void FetchData(Options *options,const char* data_name); 140 140 void FetchData(int num,...); 141 void FetchDataToInput(Inputs 2* inputs2,Elements* elements,const char* vector_name,int input_enum);142 void FetchDataToInput(Inputs 2* inputs2,Elements* elements,const char* vector_name,int input_enum,IssmDouble default_value);143 void FetchDataToDatasetInput(Inputs 2* inputs2,Elements* elements,const char* vector_name,int input_enum);141 void FetchDataToInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum); 142 void FetchDataToInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum,IssmDouble default_value); 143 void FetchDataToDatasetInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum); 144 144 void FetchIndependent(const char* dependent_name); 145 145 void FetchMultipleData(char*** pstringarray,int* pnumstrings,const char* data_name); -
issm/trunk-jpl/src/c/classes/Loads/Channel.cpp
r24335 r25379 387 387 IssmDouble c_t = element->FindParam(HydrologyPressureMeltCoefficientEnum); 388 388 389 Input 2* h_input = element->GetInput2(HydrologySheetThicknessEnum);_assert_(h_input);390 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);391 Input 2* b_input = element->GetInput2(BedEnum); _assert_(b_input);392 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);393 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);394 Input 2* ks_input = element->GetInput2(HydrologySheetConductivityEnum); _assert_(ks_input);395 Input 2* phi_input = element->GetInput2(HydraulicPotentialEnum); _assert_(phi_input);389 Input* h_input = element->GetInput(HydrologySheetThicknessEnum);_assert_(h_input); 390 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 391 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 392 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 393 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 394 Input* ks_input = element->GetInput(HydrologySheetConductivityEnum); _assert_(ks_input); 395 Input* phi_input = element->GetInput(HydraulicPotentialEnum); _assert_(phi_input); 396 396 397 397 /*Get tangent vector*/ … … 518 518 IssmDouble c_t = element->FindParam(HydrologyPressureMeltCoefficientEnum); 519 519 520 Input 2* h_input = element->GetInput2(HydrologySheetThicknessEnum);_assert_(h_input);521 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);522 Input 2* b_input = element->GetInput2(BedEnum); _assert_(b_input);523 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);524 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);525 Input 2* ks_input = element->GetInput2(HydrologySheetConductivityEnum); _assert_(ks_input);526 Input 2* phi_input = element->GetInput2(HydraulicPotentialEnum); _assert_(phi_input);520 Input* h_input = element->GetInput(HydrologySheetThicknessEnum);_assert_(h_input); 521 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 522 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 523 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 524 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 525 Input* ks_input = element->GetInput(HydrologySheetConductivityEnum); _assert_(ks_input); 526 Input* phi_input = element->GetInput(HydraulicPotentialEnum); _assert_(phi_input); 527 527 528 528 /*Get tangent vector*/ … … 630 630 IssmDouble dt = element->FindParam(TimesteppingTimeStepEnum); 631 631 632 Input 2* h_input = element->GetInput2(HydrologySheetThicknessEnum);_assert_(h_input);633 Input 2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);634 Input 2* b_input = element->GetInput2(BedEnum); _assert_(b_input);635 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);636 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);637 Input 2* ks_input = element->GetInput2(HydrologySheetConductivityEnum); _assert_(ks_input);638 Input 2* phi_input = element->GetInput2(HydraulicPotentialEnum); _assert_(phi_input);632 Input* h_input = element->GetInput(HydrologySheetThicknessEnum);_assert_(h_input); 633 Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input); 634 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 635 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 636 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 637 Input* ks_input = element->GetInput(HydrologySheetConductivityEnum); _assert_(ks_input); 638 Input* phi_input = element->GetInput(HydraulicPotentialEnum); _assert_(phi_input); 639 639 640 640 /*Get tangent vector*/ -
issm/trunk-jpl/src/c/classes/Loads/Neumannflux.cpp
r24335 r25379 361 361 /*Retrieve all inputs and parameters*/ 362 362 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 363 Input 2* flux_input = tria->GetInput2(HydrologyNeumannfluxEnum); _assert_(flux_input);363 Input* flux_input = tria->GetInput(HydrologyNeumannfluxEnum); _assert_(flux_input); 364 364 365 365 /*Check wether it is an inflow or outflow BC (0 is the middle of the segment)*/ … … 405 405 /*Retrieve all inputs and parameters*/ 406 406 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 407 Input 2* flux_input = tria->GetInput2(HydrologyNeumannfluxEnum); _assert_(flux_input);407 Input* flux_input = tria->GetInput(HydrologyNeumannfluxEnum); _assert_(flux_input); 408 408 409 409 /*Check wether it is an inflow or outflow BC (0 is the middle of the segment)*/ -
issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp
r24335 r25379 516 516 /*Retrieve all inputs and parameters*/ 517 517 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 518 Input 2* vxaverage_input=tria->GetInput2(VxEnum); _assert_(vxaverage_input);519 Input 2* vyaverage_input=tria->GetInput2(VyEnum); _assert_(vyaverage_input);518 Input* vxaverage_input=tria->GetInput(VxEnum); _assert_(vxaverage_input); 519 Input* vyaverage_input=tria->GetInput(VyEnum); _assert_(vyaverage_input); 520 520 GetNormal(&normal[0],xyz_list); 521 521 … … 591 591 /*Retrieve all inputs and parameters*/ 592 592 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 593 Input 2* vxaverage_input=tria->GetInput2(VxEnum); _assert_(vxaverage_input);594 Input 2* vyaverage_input=tria->GetInput2(VyEnum); _assert_(vyaverage_input);593 Input* vxaverage_input=tria->GetInput(VxEnum); _assert_(vxaverage_input); 594 Input* vyaverage_input=tria->GetInput(VyEnum); _assert_(vyaverage_input); 595 595 GetNormal(&normal[0],xyz_list); 596 596 … … 688 688 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 689 689 IssmDouble dt = parameters->FindParam(TimesteppingTimeStepEnum); 690 Input 2* vxaverage_input=tria->GetInput2(VxEnum); _assert_(vxaverage_input);691 Input 2* vyaverage_input=tria->GetInput2(VyEnum); _assert_(vyaverage_input);690 Input* vxaverage_input=tria->GetInput(VxEnum); _assert_(vxaverage_input); 691 Input* vyaverage_input=tria->GetInput(VyEnum); _assert_(vyaverage_input); 692 692 GetNormal(&normal[0],xyz_list); 693 693 … … 764 764 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 765 765 IssmDouble dt = parameters->FindParam(TimesteppingTimeStepEnum); 766 Input 2* vxaverage_input=tria->GetInput2(VxEnum); _assert_(vxaverage_input);767 Input 2* vyaverage_input=tria->GetInput2(VyEnum); _assert_(vyaverage_input);766 Input* vxaverage_input=tria->GetInput(VxEnum); _assert_(vxaverage_input); 767 Input* vyaverage_input=tria->GetInput(VyEnum); _assert_(vyaverage_input); 768 768 GetNormal(&normal[0],xyz_list); 769 769 … … 866 866 /*Retrieve all inputs and parameters*/ 867 867 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 868 Input 2* vxaverage_input = tria->GetInput2(VxEnum); _assert_(vxaverage_input);869 Input 2* vyaverage_input = tria->GetInput2(VyEnum); _assert_(vyaverage_input);870 Input 2* thickness_input = tria->GetInput2(ThicknessEnum); _assert_(thickness_input);868 Input* vxaverage_input = tria->GetInput(VxEnum); _assert_(vxaverage_input); 869 Input* vyaverage_input = tria->GetInput(VyEnum); _assert_(vyaverage_input); 870 Input* thickness_input = tria->GetInput(ThicknessEnum); _assert_(thickness_input); 871 871 GetNormal(&normal[0],xyz_list); 872 872 … … 947 947 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 948 948 IssmDouble dt = parameters->FindParam(TimesteppingTimeStepEnum); 949 Input 2* vxaverage_input = tria->GetInput2(VxEnum); _assert_(vxaverage_input);950 Input 2* vyaverage_input = tria->GetInput2(VyEnum); _assert_(vyaverage_input);951 Input 2* spcthickness_input = tria->GetInput2(MasstransportSpcthicknessEnum); _assert_(spcthickness_input);949 Input* vxaverage_input = tria->GetInput(VxEnum); _assert_(vxaverage_input); 950 Input* vyaverage_input = tria->GetInput(VyEnum); _assert_(vyaverage_input); 951 Input* spcthickness_input = tria->GetInput(MasstransportSpcthicknessEnum); _assert_(spcthickness_input); 952 952 GetNormal(&normal[0],xyz_list); 953 953 -
issm/trunk-jpl/src/c/classes/Materials/Material.h
r24377 r25379 16 16 class Gauss; 17 17 class Input; 18 class Input 2;18 class Input; 19 19 /*}}}*/ 20 20 … … 49 49 virtual void ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0; 50 50 virtual void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0; 51 virtual void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input)=0;52 virtual void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input)=0;53 virtual void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* surf)=0;54 virtual void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input)=0;55 virtual void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble epseff)=0;56 virtual void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble epseff)=0;57 virtual void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble epseff)=0;51 virtual void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0; 52 virtual void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0; 53 virtual void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf)=0; 54 virtual void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0; 55 virtual void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff)=0; 56 virtual void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0; 57 virtual void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0; 58 58 59 59 }; -
issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp
r24379 r25379 155 155 IssmDouble B; 156 156 157 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);157 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 158 158 B_input->GetInputValue(&B,gauss); 159 159 return B; … … 165 165 IssmDouble Bbar; 166 166 167 Input 2* B_input = element->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);167 Input* B_input = element->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 168 168 B_input->GetInputValue(&Bbar,gauss); 169 169 return Bbar; … … 184 184 IssmDouble Ec; 185 185 186 Input 2* Ec_input = element->GetInput2(MaterialsRheologyEcEnum); _assert_(Ec_input);186 Input* Ec_input = element->GetInput(MaterialsRheologyEcEnum); _assert_(Ec_input); 187 187 Ec_input->GetInputValue(&Ec,gauss); 188 188 return Ec; … … 194 194 IssmDouble Ecbar; 195 195 196 Input 2* Ecbar_input = element->GetInput2(MaterialsRheologyEcbarEnum); _assert_(Ecbar_input);196 Input* Ecbar_input = element->GetInput(MaterialsRheologyEcbarEnum); _assert_(Ecbar_input); 197 197 Ecbar_input->GetInputValue(&Ecbar,gauss); 198 198 return Ecbar; … … 204 204 IssmDouble Es; 205 205 206 Input 2* Es_input = element->GetInput2(MaterialsRheologyEsEnum); _assert_(Es_input);206 Input* Es_input = element->GetInput(MaterialsRheologyEsEnum); _assert_(Es_input); 207 207 Es_input->GetInputValue(&Es,gauss); 208 208 return Es; … … 214 214 IssmDouble Esbar; 215 215 216 Input 2* Esbar_input = element->GetInput2(MaterialsRheologyEsbarEnum); _assert_(Esbar_input);216 Input* Esbar_input = element->GetInput(MaterialsRheologyEsbarEnum); _assert_(Esbar_input); 217 217 Esbar_input->GetInputValue(&Esbar,gauss); 218 218 return Esbar; … … 393 393 }/*}}}*/ 394 394 395 void Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff){/*{{{*/395 void Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){/*{{{*/ 396 396 397 397 /*Intermediaries*/ … … 422 422 } 423 423 /*}}}*/ 424 void Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/424 void Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/ 425 425 426 426 /*Intermediaries*/ … … 450 450 *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss); 451 451 }/*}}}*/ 452 void Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/452 void Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/ 453 453 /*Intermediaries*/ 454 454 IssmDouble vx,vy,vz; … … 480 480 *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss); 481 481 }/*}}}*/ 482 void Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/482 void Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ 483 483 484 484 /*Intermediaries*/ … … 523 523 } 524 524 /*}}}*/ 525 void Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/525 void Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 526 526 527 527 /*Intermediaries*/ … … 565 565 *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss); 566 566 }/*}}}*/ 567 void Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/568 _error_("not implemented yet"); 569 }/*}}}*/ 570 void Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/567 void Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/ 568 _error_("not implemented yet"); 569 }/*}}}*/ 570 void Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 571 571 572 572 /*Intermediaries*/ -
issm/trunk-jpl/src/c/classes/Materials/Matestar.h
r24377 r25379 75 75 void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss); 76 76 77 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input);78 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);79 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* surf);80 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);81 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff);82 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble eps_eff);83 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble eps_eff);77 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 78 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 79 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf); 80 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 81 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff); 82 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff); 83 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff); 84 84 /*}}}*/ 85 85 IssmDouble GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged,Gauss* gauss); -
issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
r24379 r25379 216 216 /*Output*/ 217 217 IssmDouble B; 218 Input 2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);218 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 219 219 B_input->GetInputValue(&B,gauss); 220 220 return B; … … 228 228 IssmDouble Bbar; 229 229 230 Input 2* B_input = element->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);230 Input* B_input = element->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input); 231 231 B_input->GetInputValue(&Bbar,gauss); 232 232 return Bbar; … … 239 239 IssmDouble D; 240 240 if(this->isdamaged){ 241 Input 2* D_input = element->GetInput2(DamageDEnum); _assert_(D_input);241 Input* D_input = element->GetInput(DamageDEnum); _assert_(D_input); 242 242 D_input->GetInputValue(&D,gauss); 243 243 } … … 254 254 IssmDouble Dbar; 255 255 if(this->isdamaged){ 256 Input 2* D_input = element->GetInput2(DamageDbarEnum); _assert_(D_input);256 Input* D_input = element->GetInput(DamageDbarEnum); _assert_(D_input); 257 257 D_input->GetInputValue(&Dbar,gauss); 258 258 } … … 268 268 /*Output*/ 269 269 IssmDouble E; 270 Input 2* E_input = element->GetInput2(MaterialsRheologyEEnum); _assert_(E_input);270 Input* E_input = element->GetInput(MaterialsRheologyEEnum); _assert_(E_input); 271 271 E_input->GetInputValue(&E,gauss); 272 272 return E; … … 278 278 /*Output*/ 279 279 IssmDouble Ebar; 280 Input 2* E_input = element->GetInput2(MaterialsRheologyEbarEnum); _assert_(E_input);280 Input* E_input = element->GetInput(MaterialsRheologyEbarEnum); _assert_(E_input); 281 281 E_input->GetInputValue(&Ebar,gauss); 282 282 return Ebar; … … 287 287 /*Output*/ 288 288 IssmDouble n; 289 Input 2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);289 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); 290 290 n_input->GetInputAverage(&n); 291 291 return n; … … 671 671 }/*}}}*/ 672 672 673 void Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/673 void Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ 674 674 /*The effective strain rate is defined in Paterson 3d Ed p 91 eq 9, 675 675 * and Cuffey p 303 eq 8.18: … … 710 710 } 711 711 /*}}}*/ 712 void Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/712 void Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 713 713 714 714 /*Intermediaries*/ … … 736 736 *pviscosity=viscosity; 737 737 }/*}}}*/ 738 void Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/738 void Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/ 739 739 /*Compute the L1L2 viscosity 740 740 * … … 795 795 *pviscosity = viscosity; 796 796 }/*}}}*/ 797 void Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){/*{{{*/797 void Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 798 798 799 799 /*Intermediaries*/ -
issm/trunk-jpl/src/c/classes/Materials/Matice.h
r24377 r25379 77 77 void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss); 78 78 79 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input);80 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);81 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* surf);82 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input);83 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff){_error_("not supported");};84 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble eps_eff){_error_("not supported");};85 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble eps_eff){_error_("not supported");};79 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 80 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 81 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf); 82 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 83 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){_error_("not supported");}; 84 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");}; 85 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");}; 86 86 /*}}}*/ 87 87 }; -
issm/trunk-jpl/src/c/classes/Materials/Matlitho.h
r24377 r25379 66 66 void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");}; 67 67 68 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input){_error_("not supported");};69 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){_error_("not supported");};70 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* surf){_error_("not supported");};71 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input){_error_("not supported");};72 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble epseff){_error_("not supported");};73 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble epseff){_error_("not supported");};74 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input 2* vx_input,Input2* vy_input,IssmDouble epseff){_error_("not supported");};68 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");}; 69 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");}; 70 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf){_error_("not supported");}; 71 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");}; 72 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff){_error_("not supported");}; 73 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff){_error_("not supported");}; 74 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff){_error_("not supported");}; 75 75 76 76 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Misfit.cpp
r24379 r25379 235 235 /*Now, the observation is buried inside the elements, go fish it in the first element (cludgy, needs fixing): */ 236 236 Element* element = (Element*)femmodel->elements->GetObjectByOffset(0); _assert_(element); 237 Input 2* input = element->GetInput2(observation_enum); _assert_(input);237 Input* input = element->GetInput(observation_enum); _assert_(input); 238 238 input->GetInputAverage(&observation); 239 239 -
issm/trunk-jpl/src/c/classes/Radar.cpp
r24379 r25379 128 128 129 129 /*Retrieve all inputs we will be needing: */ 130 Input 2* temp_input=element->GetInput2(TemperatureEnum); _assert_(temp_input);131 Input 2* ice_period_input=element->GetInput2(RadarIcePeriodEnum); _assert_(ice_period_input);130 Input* temp_input=element->GetInput(TemperatureEnum); _assert_(temp_input); 131 Input* ice_period_input=element->GetInput(RadarIcePeriodEnum); _assert_(ice_period_input); 132 132 133 133 /* Start looping on the number of vertices: */ … … 187 187 188 188 /*Add Attenuation rate results into inputs*/ 189 element->AddInput 2(RadarAttenuationMacGregorEnum,&attenuation_rate_macgregor[0],P1Enum);190 element->AddInput 2(RadarAttenuationWolffEnum,&attenuation_rate_wolff[0],P1Enum);189 element->AddInput(RadarAttenuationMacGregorEnum,&attenuation_rate_macgregor[0],P1Enum); 190 element->AddInput(RadarAttenuationWolffEnum,&attenuation_rate_wolff[0],P1Enum); 191 191 192 192 /*Clean up*/ … … 212 212 /* Get node coordinates*/ 213 213 element->GetVerticesCoordinates(&xyz_list); 214 Input 2 *atten_input_M07 = element->GetInput2(RadarAttenuationMacGregorEnum); _assert_(atten_input_M07);215 Input 2 *atten_input_W97 = element->GetInput2(RadarAttenuationWolffEnum); _assert_(atten_input_W97);216 Input 2 *surf_input = element->GetInput2(SurfaceEnum); _assert_(surf_input);217 Input 2 *thick_input = element->GetInput2(ThicknessEnum); _assert_(thick_input);218 Input 2 *temp_input = element->GetInput2(TemperatureEnum); _assert_(temp_input);214 Input *atten_input_M07 = element->GetInput(RadarAttenuationMacGregorEnum); _assert_(atten_input_M07); 215 Input *atten_input_W97 = element->GetInput(RadarAttenuationWolffEnum); _assert_(atten_input_W97); 216 Input *surf_input = element->GetInput(SurfaceEnum); _assert_(surf_input); 217 Input *thick_input = element->GetInput(ThicknessEnum); _assert_(thick_input); 218 Input *temp_input = element->GetInput(TemperatureEnum); _assert_(temp_input); 219 219 220 220 /* Start looping on the number of vertices: */ … … 269 269 270 270 /*Add power results into inputs*/ 271 element->AddInput 2(RadarPowerMacGregorEnum,&power_M07[0],P1Enum);272 element->AddInput 2(RadarPowerWolffEnum,&power_W97[0],P1Enum);271 element->AddInput(RadarPowerMacGregorEnum,&power_M07[0],P1Enum); 272 element->AddInput(RadarPowerWolffEnum,&power_W97[0],P1Enum); 273 273 274 274 /*Clean up and return*/ -
issm/trunk-jpl/src/c/classes/classes.h
r24938 r25379 67 67 #include "./Options/OptionUtilities.h" 68 68 69 /*Inputs 2*/70 #include "./Inputs 2/Inputs2.h"71 #include "./Inputs 2/Input2.h"69 /*Inputs*/ 70 #include "./Inputs/Inputs.h" 71 #include "./Inputs/Input.h" 72 72 73 73 /*ExternalResults: */ -
issm/trunk-jpl/src/c/cores/gia_core.cpp
r25080 r25379 6 6 #include "../toolkits/toolkits.h" 7 7 #include "../classes/classes.h" 8 #include "../classes/Inputs 2/TriaInput2.h"9 #include "../classes/Inputs 2/DatasetInput2.h"8 #include "../classes/Inputs/TriaInput.h" 9 #include "../classes/Inputs/DatasetInput.h" 10 10 #include "../shared/shared.h" 11 11 #include "../modules/modules.h" … … 76 76 77 77 /*find the Ngia and Ugia dataset:*/ 78 DatasetInput 2* dataset_input_ngia=femmodel->inputs2->GetDatasetInput2(GiaMmeNgiaEnum);79 DatasetInput 2* dataset_input_ugia=femmodel->inputs2->GetDatasetInput2(GiaMmeUgiaEnum);78 DatasetInput* dataset_input_ngia=femmodel->inputs->GetDatasetInput(GiaMmeNgiaEnum); 79 DatasetInput* dataset_input_ugia=femmodel->inputs->GetDatasetInput(GiaMmeUgiaEnum); 80 80 /*Go find the modelid'th input:*/ 81 TriaInput 2* tria_input_ngia=dataset_input_ngia->GetTriaInputByOffset(modelid);82 TriaInput 2* tria_input_ugia=dataset_input_ugia->GetTriaInputByOffset(modelid);81 TriaInput* tria_input_ngia=dataset_input_ngia->GetTriaInputByOffset(modelid); 82 TriaInput* tria_input_ugia=dataset_input_ugia->GetTriaInputByOffset(modelid); 83 83 84 84 /*Plug into SealevelUGiaRate and SealevelNGiaRate inputs:*/ 85 Input 2* tria_input_copy_ngia=tria_input_ngia->copy();86 Input 2* tria_input_copy_ugia=tria_input_ugia->copy();85 Input* tria_input_copy_ngia=tria_input_ngia->copy(); 86 Input* tria_input_copy_ugia=tria_input_ugia->copy(); 87 87 tria_input_copy_ngia->ChangeEnum(NGiaRateEnum); 88 88 tria_input_copy_ugia->ChangeEnum(UGiaRateEnum); 89 femmodel->inputs 2->AddInput(tria_input_copy_ngia);90 femmodel->inputs 2->AddInput(tria_input_copy_ugia);89 femmodel->inputs->AddInput(tria_input_copy_ngia); 90 femmodel->inputs->AddInput(tria_input_copy_ugia); 91 91 } 92 92 -
issm/trunk-jpl/src/c/cores/sealevelchange_core.cpp
r25332 r25379 6 6 #include "../toolkits/toolkits.h" 7 7 #include "../classes/classes.h" 8 #include "../classes/Inputs 2/TriaInput2.h"9 #include "../classes/Inputs 2/TransientInput2.h"10 #include "../classes/Inputs 2/DatasetInput2.h"8 #include "../classes/Inputs/TriaInput.h" 9 #include "../classes/Inputs/TransientInput.h" 10 #include "../classes/Inputs/DatasetInput.h" 11 11 #include "../shared/shared.h" 12 12 #include "../modules/modules.h" … … 71 71 if(VerboseSolution()) _printf0_(" saving results\n"); 72 72 femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SealevelriseRequestedOutputsEnum); 73 femmodel->inputs 2->Echo();73 femmodel->inputs->Echo(); 74 74 femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs); 75 75 if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);} … … 226 226 227 227 //reset cumdeltathickness to 0: 228 InputUpdateFromConstantx(femmodel->inputs 2,femmodel->elements,0.,SealevelriseCumDeltathicknessEnum);228 InputUpdateFromConstantx(femmodel->inputs,femmodel->elements,0.,SealevelriseCumDeltathicknessEnum); 229 229 } 230 230 … … 668 668 femmodel->parameters->FindParam(&time,TimeEnum); 669 669 if(dslmodel==1){ 670 TransientInput 2* transient_input = femmodel->inputs2->GetTransientInput(DslSeaSurfaceHeightChangeAboveGeoidEnum);671 TriaInput 2* tria_input=transient_input->GetTriaInput(time);672 Input 2* tria_input_copy=tria_input->copy();670 TransientInput* transient_input = femmodel->inputs->GetTransientInput(DslSeaSurfaceHeightChangeAboveGeoidEnum); 671 TriaInput* tria_input=transient_input->GetTriaInput(time); 672 Input* tria_input_copy=tria_input->copy(); 673 673 tria_input_copy->ChangeEnum(DslDynamicRateEnum); 674 femmodel->inputs 2->AddInput(tria_input_copy);674 femmodel->inputs->AddInput(tria_input_copy); 675 675 } 676 676 else if(dslmodel==2){ … … 683 683 684 684 /*find the DslSeaSurfaceHeightChangeAboveGeoidEnum dataset of transient inputs:*/ 685 DatasetInput 2* dataset_input=femmodel->inputs2->GetDatasetInput2(DslSeaSurfaceHeightChangeAboveGeoidEnum);685 DatasetInput* dataset_input=femmodel->inputs->GetDatasetInput(DslSeaSurfaceHeightChangeAboveGeoidEnum); 686 686 687 687 /*Go find the modelid'th transient input:*/ 688 TriaInput 2* tria_input=dataset_input->GetTriaInputByOffset(reCast<int, IssmDouble>(modelid));688 TriaInput* tria_input=dataset_input->GetTriaInputByOffset(reCast<int, IssmDouble>(modelid)); 689 689 690 690 /*Plug into DslDynamicRate input: */ 691 Input 2* tria_input_copy=tria_input->copy();691 Input* tria_input_copy=tria_input->copy(); 692 692 tria_input_copy->ChangeEnum(DslDynamicRateEnum); 693 femmodel->inputs 2->AddInput(tria_input_copy);693 femmodel->inputs->AddInput(tria_input_copy); 694 694 } 695 695 else _error_("not implemented yet"); … … 711 711 femmodel->parameters->FindParam(&time,TimeEnum); 712 712 if(dslmodel==1){ 713 TransientInput 2* transient_input = femmodel->inputs2->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum);714 TriaInput 2* tria_input=transient_input->GetTriaInput(time);715 Input 2* tria_input_copy=tria_input->copy();713 TransientInput* transient_input = femmodel->inputs->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum); 714 TriaInput* tria_input=transient_input->GetTriaInput(time); 715 Input* tria_input_copy=tria_input->copy(); 716 716 tria_input_copy->ChangeEnum(DslStericRateEnum); 717 femmodel->inputs 2->AddInput(tria_input_copy);717 femmodel->inputs->AddInput(tria_input_copy); 718 718 } 719 719 else if (dslmodel==2){ … … 726 726 727 727 /*find the DslGlobalAverageThermostericSeaLevelChangeEnum dataset of transient inputs:*/ 728 DatasetInput 2* dataset_input=femmodel->inputs2->GetDatasetInput2(DslGlobalAverageThermostericSeaLevelChangeEnum);728 DatasetInput* dataset_input=femmodel->inputs->GetDatasetInput(DslGlobalAverageThermostericSeaLevelChangeEnum); 729 729 730 730 /*Go find the modelid'th transient input:*/ 731 TriaInput 2* tria_input=dataset_input->GetTriaInputByOffset(reCast<int, IssmDouble>(modelid));731 TriaInput* tria_input=dataset_input->GetTriaInputByOffset(reCast<int, IssmDouble>(modelid)); 732 732 733 733 /*Plug into DslStericRate input: */ 734 Input 2* tria_input_copy=tria_input->copy();734 Input* tria_input_copy=tria_input->copy(); 735 735 tria_input_copy->ChangeEnum(DslStericRateEnum); 736 femmodel->inputs 2->AddInput(tria_input_copy);736 femmodel->inputs->AddInput(tria_input_copy); 737 737 } 738 738 else _error_("not implemented yet"); … … 753 753 IssmDouble modelid; 754 754 /*figure out the type of DslSeaWaterPressureChangeAtSeaFloor input:*/ 755 type=femmodel->inputs 2->GetInputObjectEnum(DslSeaWaterPressureChangeAtSeaFloorEnum);756 757 if(type==DatasetInput 2Enum){755 type=femmodel->inputs->GetInputObjectEnum(DslSeaWaterPressureChangeAtSeaFloorEnum); 756 757 if(type==DatasetInputEnum){ 758 758 759 759 /*find the DslSeaWaterPressureChangeAtSeaFloor dataset of transient inputs:*/ 760 DatasetInput 2* dataset_input=femmodel->inputs2->GetDatasetInput2(DslSeaWaterPressureChangeAtSeaFloorEnum);760 DatasetInput* dataset_input=femmodel->inputs->GetDatasetInput(DslSeaWaterPressureChangeAtSeaFloorEnum); 761 761 762 762 /*Recover modelid:*/ … … 765 765 766 766 /*Go find the modelid'th transient input:*/ 767 TransientInput 2* transient_input=dataset_input->GetTransientInputByOffset(reCast<int, IssmDouble>(modelid));767 TransientInput* transient_input=dataset_input->GetTransientInputByOffset(reCast<int, IssmDouble>(modelid)); 768 768 769 769 /*Plug into DslSeaWaterPressureChangeAtSeaFloor input: */ 770 Input 2* transient_input_copy=transient_input->copy();770 Input* transient_input_copy=transient_input->copy(); 771 771 transient_input_copy->ChangeEnum(DslSeaWaterPressureChangeAtSeaFloorEnum); 772 femmodel->inputs 2->AddInput(transient_input_copy);772 femmodel->inputs->AddInput(transient_input_copy); 773 773 } 774 774 } -
issm/trunk-jpl/src/c/main/esmfbinders.cpp
r24335 r25379 114 114 115 115 /*Recover surface from the ISSM element: */ 116 Input 2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);116 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 117 117 surface_input->GetInputAverage(&surface); 118 118 -
issm/trunk-jpl/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp
r24335 r25379 9 9 #include "../../classes/classes.h" 10 10 11 int ConfigureObjectsx( Elements* elements, Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs 2* inputs2){11 int ConfigureObjectsx( Elements* elements, Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs* inputs){ 12 12 13 13 /*Get analysis type: */ … … 18 18 for(int i=0;i<elements->Size();i++){ 19 19 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 20 element->Configure(elements,loads,nodes,vertices,materials,parameters,inputs 2);20 element->Configure(elements,loads,nodes,vertices,materials,parameters,inputs); 21 21 } 22 22 if(VerboseMProcessor()) _printf0_(" Configuring loads...\n"); … … 31 31 } 32 32 if(VerboseMProcessor()) _printf0_(" Configuring inputs...\n"); 33 inputs 2->Configure(parameters);33 inputs->Configure(parameters); 34 34 35 35 return 1; -
issm/trunk-jpl/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.h
r24335 r25379 9 9 10 10 /* local prototypes: */ 11 int ConfigureObjectsx( Elements* elements, Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials, Parameters* parameters,Inputs 2* inputs2);11 int ConfigureObjectsx( Elements* elements, Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials, Parameters* parameters,Inputs* inputs); 12 12 13 13 #endif /* _CONFIGUREOBJECTSX_H */ -
issm/trunk-jpl/src/c/modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.cpp
r25366 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void DragCoefficientAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 61 61 62 62 /*Retrieve all inputs we will be needing: */ 63 DatasetInput 2* weights_input=basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);63 DatasetInput* weights_input=basalelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 64 64 65 65 /* get the friction law: if 11-Schoof, which has a different name of C */ 66 66 element->FindParam(&frictionlaw, FrictionLawEnum); 67 Input 2* drag_input;67 Input* drag_input; 68 68 switch(frictionlaw) { 69 69 case 2: 70 70 case 11: 71 drag_input = basalelement->GetInput 2(FrictionCEnum); _assert_(drag_input);71 drag_input = basalelement->GetInput(FrictionCEnum); _assert_(drag_input); 72 72 break; 73 73 default: 74 drag_input = basalelement->GetInput 2(FrictionCoefficientEnum); _assert_(drag_input);74 drag_input = basalelement->GetInput(FrictionCoefficientEnum); _assert_(drag_input); 75 75 } 76 76 -
issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatePicox/FloatingiceMeltingRatePicox.cpp
r24861 r25379 18 18 int numvertices = element->GetNumberOfVertices(); 19 19 IssmDouble* values = xNewZeroInit<IssmDouble>(numvertices); 20 element->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);20 element->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum); 21 21 xDelete<IssmDouble>(values); 22 22 } … … 169 169 if(el_boxid!=boxid) continue; 170 170 171 Input 2* tocs_input=basalelement->GetInput2(BasalforcingsPicoSubShelfOceanTempEnum); _assert_(tocs_input);172 Input 2* socs_input=basalelement->GetInput2(BasalforcingsPicoSubShelfOceanSalinityEnum); _assert_(socs_input);171 Input* tocs_input=basalelement->GetInput(BasalforcingsPicoSubShelfOceanTempEnum); _assert_(tocs_input); 172 Input* socs_input=basalelement->GetInput(BasalforcingsPicoSubShelfOceanSalinityEnum); _assert_(socs_input); 173 173 174 174 basalelement->GetInputValue(&basinid,BasalforcingsPicoBasinIdEnum); … … 210 210 if(el_boxid!=boxid) continue; 211 211 212 Input 2* overturnings_input=basalelement->GetInput2(BasalforcingsPicoSubShelfOceanOverturningEnum); _assert_(overturnings_input);212 Input* overturnings_input=basalelement->GetInput(BasalforcingsPicoSubShelfOceanOverturningEnum); _assert_(overturnings_input); 213 213 214 214 basalelement->GetInputValue(&basinid,BasalforcingsPicoBasinIdEnum); -
issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp
r24335 r25379 6 6 #include "../../shared/shared.h" 7 7 #include "../../toolkits/toolkits.h" 8 #include "./../../classes/Inputs 2/DatasetInput2.h"8 #include "./../../classes/Inputs/DatasetInput.h" 9 9 10 10 void FloatingiceMeltingRatex(FemModel* femmodel){/*{{{*/ … … 103 103 if(!element->IsIceInElement() || !element->IsFloating() || !element->IsOnBase()){ 104 104 IssmDouble* values = xNewZeroInit<IssmDouble>(numvertices); 105 element->AddInput 2(BasalforcingsFloatingiceMeltingRateEnum,values,P1DGEnum);106 element->AddInput 2(BasalforcingsIsmip6TfShelfEnum,values,P1DGEnum);105 element->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1DGEnum); 106 element->AddInput(BasalforcingsIsmip6TfShelfEnum,values,P1DGEnum); 107 107 xDelete<IssmDouble>(values); 108 108 continue; … … 112 112 IssmDouble* tf_test = xNew<IssmDouble>(numvertices); 113 113 IssmDouble* depth_vertices = xNew<IssmDouble>(numvertices); 114 DatasetInput 2* tf_input = element->GetDatasetInput2(BasalforcingsIsmip6TfEnum); _assert_(tf_input);114 DatasetInput* tf_input = element->GetDatasetInput(BasalforcingsIsmip6TfEnum); _assert_(tf_input); 115 115 116 116 element->GetInputListOnVertices(&depth_vertices[0],BaseEnum); … … 149 149 } 150 150 151 element->AddInput 2(BasalforcingsIsmip6TfShelfEnum,tf_test,P1DGEnum);151 element->AddInput(BasalforcingsIsmip6TfShelfEnum,tf_test,P1DGEnum); 152 152 xDelete<IssmDouble>(tf_test); 153 153 xDelete<IssmDouble>(depth_vertices); … … 162 162 /*Spawn basal element if on base to compute element area*/ 163 163 Element* basalelement = element->SpawnBasalElement(); 164 Input 2* tf_input=basalelement->GetInput2(BasalforcingsIsmip6TfShelfEnum); _assert_(tf_input);164 Input* tf_input=basalelement->GetInput(BasalforcingsIsmip6TfShelfEnum); _assert_(tf_input); 165 165 basalelement->GetInputValue(&basinid,BasalforcingsIsmip6BasinIdEnum); 166 166 Gauss* gauss=basalelement->NewGauss(1); gauss->GaussPoint(0); -
issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp
r24335 r25379 87 87 /*We go find the input of the first element, and query its interpolation type: */ 88 88 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(0)); 89 Input 2* input=element->GetInput2(name);89 Input* input=element->GetInput(name); 90 90 if (!input) _error_("could not find input: " << name); 91 91 -
issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp
r24335 r25379 9 9 10 10 void InputDuplicatex(FemModel* femmodel,int original_enum, int new_enum){ 11 femmodel->inputs 2->DuplicateInput(original_enum,new_enum);11 femmodel->inputs->DuplicateInput(original_enum,new_enum); 12 12 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.cpp
r24374 r25379 6 6 #include "../../shared/shared.h" 7 7 #include "../../toolkits/toolkits.h" 8 #include "../../classes/Inputs 2/Inputs2.h"8 #include "../../classes/Inputs/Inputs.h" 9 9 10 10 void InputUpdateFromConstantx(FemModel* femmodel,bool constant, int name){ … … 50 50 } 51 51 } 52 void InputUpdateFromConstantx(Inputs 2* inputs2,Elements* elements,IssmDouble constant, int name){52 void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,IssmDouble constant, int name){ 53 53 54 54 if(VerboseModule()) _printf0_(" Input updates from constant\n"); … … 57 57 for(int i=0;i<elements->Size();i++){ 58 58 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 59 element->SetElementInput(inputs 2,name,constant);59 element->SetElementInput(inputs,name,constant); 60 60 } 61 61 } 62 void InputUpdateFromConstantx(Inputs 2* inputs2,Elements* elements,bool constant, int name){62 void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,bool constant, int name){ 63 63 64 64 if(VerboseModule()) _printf0_(" Input updates from constant\n"); … … 67 67 for(int i=0;i<elements->Size();i++){ 68 68 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 69 element->SetBoolInput(inputs 2,name,constant);69 element->SetBoolInput(inputs,name,constant); 70 70 } 71 71 } 72 72 #ifdef _HAVE_AD_ 73 void InputUpdateFromConstantx(Inputs 2* inputs2,Elements* elements,IssmPDouble constant, int name){73 void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,IssmPDouble constant, int name){ 74 74 75 75 if(VerboseModule()) _printf0_(" Input updates from constant\n"); … … 81 81 for(int i=0;i<elements->Size();i++){ 82 82 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 83 element->SetElementInput(inputs 2,name,constant2);83 element->SetElementInput(inputs,name,constant2); 84 84 } 85 85 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.h
r24374 r25379 7 7 8 8 #include "../../classes/classes.h" 9 class Inputs 2;9 class Inputs; 10 10 11 11 /* local prototypes: */ … … 14 14 void InputUpdateFromConstantx(FemModel* femmodel,IssmDouble constant,int name); 15 15 #ifdef _HAVE_AD_ 16 void InputUpdateFromConstantx(Inputs 2* inputs2,Elements* elements,IssmPDouble constant,int name);16 void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,IssmPDouble constant,int name); 17 17 #endif 18 void InputUpdateFromConstantx(Inputs 2* inputs2,Elements* elements,IssmDouble constant,int name);19 void InputUpdateFromConstantx(Inputs 2* inputs2,Elements* elements,bool constant,int name);18 void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,IssmDouble constant,int name); 19 void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,bool constant,int name); 20 20 21 21 #endif /* _UPDATEINPUTSFROMCONSTANTXX_H */ -
issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp
r25305 r25379 6 6 #include "../../shared/shared.h" 7 7 #include "../../toolkits/toolkits.h" 8 #include "../../classes/Inputs 2/TransientInput2.h"9 #include "../../classes/Inputs 2/DatasetInput2.h"10 #include "../../classes/Inputs 2/TriaInput2.h"8 #include "../../classes/Inputs/TransientInput.h" 9 #include "../../classes/Inputs/DatasetInput.h" 10 #include "../../classes/Inputs/TriaInput.h" 11 11 #include "../InputUpdateFromMatrixDakotax/InputUpdateFromMatrixDakotax.h" 12 12 #include "../InputUpdateFromConstantx/InputUpdateFromConstantx.h" … … 169 169 170 170 171 if (femmodel->inputs 2->GetInputObjectEnum(SurfaceloadIceThicknessChangeEnum)==DatasetInput2Enum)171 if (femmodel->inputs->GetInputObjectEnum(SurfaceloadIceThicknessChangeEnum)==DatasetInputEnum) 172 172 MmeToInput(femmodel,distributed_values,variable_partition,npart,SurfaceloadIceThicknessChangeEnum, P0Enum); 173 173 174 if (femmodel->inputs 2->GetInputObjectEnum(MaskIceLevelsetEnum)==DatasetInput2Enum)174 if (femmodel->inputs->GetInputObjectEnum(MaskIceLevelsetEnum)==DatasetInputEnum) 175 175 MmeToInput(femmodel,distributed_values,variable_partition,npart,MaskIceLevelsetEnum, P1Enum); 176 176 177 if (femmodel->inputs 2->GetInputObjectEnum(MaskOceanLevelsetEnum)==DatasetInput2Enum)177 if (femmodel->inputs->GetInputObjectEnum(MaskOceanLevelsetEnum)==DatasetInputEnum) 178 178 MmeToInput(femmodel,distributed_values,variable_partition,npart,MaskOceanLevelsetEnum, P1Enum); 179 179 … … 184 184 void MmeToInput(FemModel* femmodel,IssmDouble* distributed_values,IssmDouble* variable_partition,int npart,int rootenum, int interpolationenum){ /*{{{*/ 185 185 186 TransientInput 2* transientinput = NULL;187 TransientInput 2* transientinput2 = NULL;186 TransientInput* transientinput = NULL; 187 TransientInput* transientinput2 = NULL; 188 188 Tria* element = NULL; 189 189 IssmDouble value; … … 194 194 195 195 /*find thickness dataset: */ 196 DatasetInput 2* datasetinput = femmodel->inputs2->GetDatasetInput2(rootenum);196 DatasetInput* datasetinput = femmodel->inputs->GetDatasetInput(rootenum); 197 197 198 198 /*Initialize new transient input: */ 199 199 transientinput = datasetinput->GetTransientInputByOffset(0); _assert_(transientinput); 200 200 transientinput->GetAllTimes(×,&N); 201 femmodel->inputs 2->SetTransientInput(DummyEnum,times,N);202 transientinput2 = femmodel->inputs 2->GetTransientInput(DummyEnum);201 femmodel->inputs->SetTransientInput(DummyEnum,times,N); 202 transientinput2 = femmodel->inputs->GetTransientInput(DummyEnum); 203 203 204 204 for (int i=0;i<femmodel->elements->Size();i++){ … … 214 214 /*copy values from the transientinput to the final transientinput2: */ 215 215 for (int j=0;j<N;j++){ 216 TriaInput 2* tria_input=transientinput->GetTriaInput(j);216 TriaInput* tria_input=transientinput->GetTriaInput(j); 217 217 element->InputServe(tria_input); 218 218 if(interpolationenum==P0Enum){ … … 237 237 238 238 /*wipe out existing SurfaceloadIceThicknessChangeEnum dataset:*/ 239 femmodel->inputs 2->ChangeEnum(DummyEnum,rootenum);239 femmodel->inputs->ChangeEnum(DummyEnum,rootenum); 240 240 241 241 //reconfigure: … … 245 245 246 246 /*Copy input:*/ 247 femmodel->inputs 2->DuplicateInput(name,DummyEnum);247 femmodel->inputs->DuplicateInput(name,DummyEnum); 248 248 249 249 /*Go through elements, copy input name to dummy, and scale it using the distributed_values and the partition vector:*/ … … 255 255 /*We created a dummy input, which was a scaled copy of the name input. Now wipe 256 256 * out the name input with the new input:*/ 257 femmodel->inputs 2->ChangeEnum(DummyEnum,name);257 femmodel->inputs->ChangeEnum(DummyEnum,name); 258 258 259 259 /*Some specialty code:*/ 260 260 switch(name){ 261 261 case MaterialsRheologyBEnum: 262 femmodel->inputs 2->DuplicateInput(name,MaterialsRheologyBbarEnum);262 femmodel->inputs->DuplicateInput(name,MaterialsRheologyBbarEnum); 263 263 break; 264 264 } -
issm/trunk-jpl/src/c/modules/KillIcebergsx/KillIcebergsx.cpp
r24376 r25379 114 114 IssmDouble* values = xNew<IssmDouble>(numvertices); 115 115 for(int j=0;j<numvertices;j++) values[j] = 1.; /*Anything >0 = no ice*/ 116 element->AddInput 2(MaskIceLevelsetEnum,values,P1Enum);116 element->AddInput(MaskIceLevelsetEnum,values,P1Enum); 117 117 xDelete<IssmDouble>(values); 118 118 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
r25337 r25379 9 9 #include "../ModelProcessorx.h" 10 10 11 void UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs 2* inputs2,Materials* materials, IoModel* iomodel){11 void UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel){ 12 12 /*Intermediary*/ 13 13 bool control_analysis; … … 34 34 iomodel->FindConstant(&isautodiff,"md.autodiff.isautodiff"); 35 35 if(isautodiff){ 36 UpdateElementsAndMaterialsControlAD(elements,parameters,inputs 2,materials,iomodel);36 UpdateElementsAndMaterialsControlAD(elements,parameters,inputs,materials,iomodel); 37 37 return; 38 38 } … … 72 72 for(int i=0;i<num_cost_functions;i++){ 73 73 cost_function=cost_function_enums[i]; 74 if( cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.inversion.thickness_obs",InversionThicknessObsEnum);75 else if(cost_function==SurfaceAbsMisfitEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.inversion.surface_obs",InversionSurfaceObsEnum);76 else if(cost_function==RheologyBInitialguessMisfitEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",RheologyBInitialguessEnum);74 if( cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(inputs,elements,"md.inversion.thickness_obs",InversionThicknessObsEnum); 75 else if(cost_function==SurfaceAbsMisfitEnum) iomodel->FetchDataToInput(inputs,elements,"md.inversion.surface_obs",InversionSurfaceObsEnum); 76 else if(cost_function==RheologyBInitialguessMisfitEnum) iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",RheologyBInitialguessEnum); 77 77 else if(cost_function==SurfaceAbsVelMisfitEnum 78 78 || cost_function==SurfaceRelVelMisfitEnum … … 80 80 || cost_function==SurfaceLogVxVyMisfitEnum 81 81 || cost_function==SurfaceAverageVelMisfitEnum){ 82 iomodel->FetchDataToInput(inputs 2,elements,"md.inversion.vx_obs",InversionVxObsEnum);83 if(domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.inversion.vy_obs",InversionVyObsEnum);82 iomodel->FetchDataToInput(inputs,elements,"md.inversion.vx_obs",InversionVxObsEnum); 83 if(domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(inputs,elements,"md.inversion.vy_obs",InversionVyObsEnum); 84 84 } 85 85 for(int j=0;j<elements->Size();j++){ 86 86 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 87 element->DatasetInputAdd(InversionCostFunctionsCoefficientsEnum,&weights[i*iomodel->numberofvertices],inputs 2,iomodel,M,1,1,cost_function,7,cost_function);87 element->DatasetInputAdd(InversionCostFunctionsCoefficientsEnum,&weights[i*iomodel->numberofvertices],inputs,iomodel,M,1,1,cost_function,7,cost_function); 88 88 } 89 89 } … … 162 162 for(int j=0;j<elements->Size();j++){ 163 163 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 164 element->ControlInputCreate(independent,&independents_min[offset],&independents_max[offset],inputs 2,iomodel,M,N,scale,control,i+1);164 element->ControlInputCreate(independent,&independents_min[offset],&independents_max[offset],inputs,iomodel,M,N,scale,control,i+1); 165 165 } 166 166 xDelete<IssmDouble>(independent); … … 207 207 xDelete<char*>(controls); 208 208 } 209 void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs 2* inputs2,Materials* materials, IoModel* iomodel){209 void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel){ 210 210 211 211 #if defined(_HAVE_AD_) … … 292 292 for(int j=0;j<elements->Size();j++){ 293 293 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 294 element->ControlInputCreate(independent,independents_min,independents_max,inputs 2,iomodel,M,N,1.,input_enum,i+1);294 element->ControlInputCreate(independent,independents_min,independents_max,inputs,iomodel,M,N,1.,input_enum,i+1); 295 295 } 296 296 xDelete<IssmDouble>(independent); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
r25229 r25379 85 85 86 86 }/*}}}*/ 87 void CreateMaterials(Elements* elements,Inputs 2* inputs2,Materials* materials,IoModel* iomodel,const int nummodels){/*{{{*/87 void CreateMaterials(Elements* elements,Inputs* inputs,Materials* materials,IoModel* iomodel,const int nummodels){/*{{{*/ 88 88 89 89 /*Intermediary*/ … … 102 102 switch(materials_type){ 103 103 case MaticeEnum: 104 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);105 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);104 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 105 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 106 106 for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel)); 107 107 switch(iomodel->domaindim){ 108 108 case 2: 109 inputs 2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);109 inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); 110 110 break; 111 111 case 3: … … 116 116 break; 117 117 case MatenhancediceEnum: 118 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);119 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);120 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_E",MaterialsRheologyEEnum);118 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 119 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 120 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_E",MaterialsRheologyEEnum); 121 121 for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel)); 122 122 switch(iomodel->domaindim){ 123 123 case 2: 124 inputs 2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);125 inputs 2->DuplicateInput(MaterialsRheologyEEnum,MaterialsRheologyEbarEnum);124 inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); 125 inputs->DuplicateInput(MaterialsRheologyEEnum,MaterialsRheologyEbarEnum); 126 126 break; 127 127 case 3: … … 132 132 break; 133 133 case MatdamageiceEnum: 134 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);135 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);136 iomodel->FetchDataToInput(inputs 2,elements,"md.damage.D",DamageDEnum);134 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 135 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 136 iomodel->FetchDataToInput(inputs,elements,"md.damage.D",DamageDEnum); 137 137 for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel)); 138 138 switch(iomodel->domaindim){ 139 139 case 2: 140 inputs 2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);141 inputs 2->DuplicateInput(DamageDEnum,DamageDbarEnum);140 inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); 141 inputs->DuplicateInput(DamageDEnum,DamageDbarEnum); 142 142 break; 143 143 case 3: … … 148 148 break; 149 149 case MatestarEnum: 150 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);151 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum);152 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_Es",MaterialsRheologyEsEnum);150 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 151 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum); 152 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_Es",MaterialsRheologyEsEnum); 153 153 for(i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matestar(i+1,i,iomodel)); 154 154 switch(iomodel->domaindim){ 155 155 case 2: 156 inputs 2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);157 inputs 2->DuplicateInput(MaterialsRheologyEcEnum,MaterialsRheologyEcbarEnum);158 inputs 2->DuplicateInput(MaterialsRheologyEsEnum,MaterialsRheologyEsbarEnum);156 inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); 157 inputs->DuplicateInput(MaterialsRheologyEcEnum,MaterialsRheologyEcbarEnum); 158 inputs->DuplicateInput(MaterialsRheologyEsEnum,MaterialsRheologyEsbarEnum); 159 159 break; 160 160 case 3: … … 182 182 switch(IoCodeToEnumNature(nature[i])){ //{{{ 183 183 case MaticeEnum: 184 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);185 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);184 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 185 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 186 186 for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel)); 187 187 switch(iomodel->domaindim){ 188 188 case 2: 189 inputs 2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);189 inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); 190 190 break; 191 191 case 3: … … 234 234 235 235 case MatenhancediceEnum: 236 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);237 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);238 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_E",MaterialsRheologyEEnum);236 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 237 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 238 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_E",MaterialsRheologyEEnum); 239 239 for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel)); 240 240 switch(iomodel->domaindim){ 241 241 case 2: 242 inputs 2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);243 inputs 2->DuplicateInput(MaterialsRheologyEEnum,MaterialsRheologyEbarEnum);242 inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); 243 inputs->DuplicateInput(MaterialsRheologyEEnum,MaterialsRheologyEbarEnum); 244 244 break; 245 245 case 3: … … 250 250 break; 251 251 case MatdamageiceEnum: 252 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);253 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);254 iomodel->FetchDataToInput(inputs 2,elements,"md.damage.D",DamageDEnum);252 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 253 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum); 254 iomodel->FetchDataToInput(inputs,elements,"md.damage.D",DamageDEnum); 255 255 for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel)); 256 256 switch(iomodel->domaindim){ 257 257 case 2: 258 inputs 2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);259 inputs 2->DuplicateInput(DamageDEnum,DamageDbarEnum);258 inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); 259 inputs->DuplicateInput(DamageDEnum,DamageDbarEnum); 260 260 break; 261 261 case 3: … … 266 266 break; 267 267 case MatestarEnum: 268 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);269 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum);270 iomodel->FetchDataToInput(inputs 2,elements,"md.materials.rheology_Es",MaterialsRheologyEsEnum);268 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum); 269 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum); 270 iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_Es",MaterialsRheologyEsEnum); 271 271 for(i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matestar(i+1,i,iomodel)); 272 272 switch(iomodel->domaindim){ 273 273 case 2: 274 inputs 2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);275 inputs 2->DuplicateInput(MaterialsRheologyEcEnum,MaterialsRheologyEcbarEnum);276 inputs 2->DuplicateInput(MaterialsRheologyEsEnum,MaterialsRheologyEsbarEnum);274 inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum); 275 inputs->DuplicateInput(MaterialsRheologyEcEnum,MaterialsRheologyEcbarEnum); 276 inputs->DuplicateInput(MaterialsRheologyEsEnum,MaterialsRheologyEsbarEnum); 277 277 break; 278 278 case 3: -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp
r24335 r25379 8 8 #include "./ModelProcessorx.h" 9 9 10 void CreateOutputDefinitions(Elements* elements,Parameters* parameters,Inputs 2* inputs2,IoModel* iomodel){10 void CreateOutputDefinitions(Elements* elements,Parameters* parameters,Inputs* inputs,IoModel* iomodel){ 11 11 12 12 int i,j; … … 120 120 for(int k=0;k<elements->Size();k++){ 121 121 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k)); 122 element->InputCreate(misfit_observation_s[j],inputs 2,iomodel,misfit_observation_M_s[j],misfit_observation_N_s[j],obs_vector_type,StringToEnumx(misfit_observation_string_s[j]),7);123 element->InputCreate(misfit_weights_s[j],inputs 2,iomodel,misfit_weights_M_s[j],misfit_weights_N_s[j],weight_vector_type,StringToEnumx(misfit_weights_string_s[j]),7);122 element->InputCreate(misfit_observation_s[j],inputs,iomodel,misfit_observation_M_s[j],misfit_observation_N_s[j],obs_vector_type,StringToEnumx(misfit_observation_string_s[j]),7); 123 element->InputCreate(misfit_weights_s[j],inputs,iomodel,misfit_weights_M_s[j],misfit_weights_N_s[j],weight_vector_type,StringToEnumx(misfit_weights_string_s[j]),7); 124 124 } 125 125 … … 210 210 for(int k=0;k<elements->Size();k++){ 211 211 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k)); 212 element->DatasetInputAdd(StringToEnumx(cfsurfacesquare_definitionstring_s[j]),cfsurfacesquare_observation_s[j],inputs 2,iomodel,cfsurfacesquare_observation_M_s[j],cfsurfacesquare_observation_N_s[j],obs_vector_type,StringToEnumx(cfsurfacesquare_observation_string_s[j]),7,SurfaceObservationEnum);213 element->DatasetInputAdd(StringToEnumx(cfsurfacesquare_definitionstring_s[j]),cfsurfacesquare_weights_s[j],inputs 2,iomodel,cfsurfacesquare_weights_M_s[j],cfsurfacesquare_weights_N_s[j],weight_vector_type,StringToEnumx(cfsurfacesquare_weights_string_s[j]),7,WeightsSurfaceObservationEnum);212 element->DatasetInputAdd(StringToEnumx(cfsurfacesquare_definitionstring_s[j]),cfsurfacesquare_observation_s[j],inputs,iomodel,cfsurfacesquare_observation_M_s[j],cfsurfacesquare_observation_N_s[j],obs_vector_type,StringToEnumx(cfsurfacesquare_observation_string_s[j]),7,SurfaceObservationEnum); 213 element->DatasetInputAdd(StringToEnumx(cfsurfacesquare_definitionstring_s[j]),cfsurfacesquare_weights_s[j],inputs,iomodel,cfsurfacesquare_weights_M_s[j],cfsurfacesquare_weights_N_s[j],weight_vector_type,StringToEnumx(cfsurfacesquare_weights_string_s[j]),7,WeightsSurfaceObservationEnum); 214 214 215 215 } … … 282 282 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k)); 283 283 284 element->DatasetInputAdd(StringToEnumx(cfdragcoeffabsgrad_definitionstring_s[j]),cfdragcoeffabsgrad_weights_s[j],inputs 2,iomodel,cfdragcoeffabsgrad_weights_M_s[j],cfdragcoeffabsgrad_weights_N_s[j],weight_vector_type,StringToEnumx(cfdragcoeffabsgrad_weights_string_s[j]),7,WeightsSurfaceObservationEnum);284 element->DatasetInputAdd(StringToEnumx(cfdragcoeffabsgrad_definitionstring_s[j]),cfdragcoeffabsgrad_weights_s[j],inputs,iomodel,cfdragcoeffabsgrad_weights_M_s[j],cfdragcoeffabsgrad_weights_N_s[j],weight_vector_type,StringToEnumx(cfdragcoeffabsgrad_weights_string_s[j]),7,WeightsSurfaceObservationEnum); 285 285 286 286 } … … 365 365 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k)); 366 366 367 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vxobs[j],inputs 2,iomodel,cfsurfacelogvel_observation_M[j],cfsurfacelogvel_observation_N[j],obs_vector_type,StringToEnumx(cfsurfacelogvel_vxobs_string[j]),7,VxObsEnum);368 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vyobs[j],inputs 2,iomodel,cfsurfacelogvel_observation_M[j],cfsurfacelogvel_observation_N[j],obs_vector_type,StringToEnumx(cfsurfacelogvel_vyobs_string[j]),7,VyObsEnum);369 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_weights[j],inputs 2,iomodel,cfsurfacelogvel_weights_M[j],cfsurfacelogvel_weights_N[j],weight_vector_type,StringToEnumx(cfsurfacelogvel_weightstring[j]),7,WeightsSurfaceObservationEnum);367 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vxobs[j],inputs,iomodel,cfsurfacelogvel_observation_M[j],cfsurfacelogvel_observation_N[j],obs_vector_type,StringToEnumx(cfsurfacelogvel_vxobs_string[j]),7,VxObsEnum); 368 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vyobs[j],inputs,iomodel,cfsurfacelogvel_observation_M[j],cfsurfacelogvel_observation_N[j],obs_vector_type,StringToEnumx(cfsurfacelogvel_vyobs_string[j]),7,VyObsEnum); 369 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_weights[j],inputs,iomodel,cfsurfacelogvel_weights_M[j],cfsurfacelogvel_weights_N[j],weight_vector_type,StringToEnumx(cfsurfacelogvel_weightstring[j]),7,WeightsSurfaceObservationEnum); 370 370 371 371 } … … 591 591 for(int i=0;i<num_cost_functions;i++){ 592 592 cost_function=cost_function_enums[i]; 593 if( cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.numberedcostfunction.thickness_obs",InversionThicknessObsEnum);594 else if(cost_function==SurfaceAbsMisfitEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.numberedcostfunction.surface_obs",InversionSurfaceObsEnum);593 if( cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(inputs,elements,"md.numberedcostfunction.thickness_obs",InversionThicknessObsEnum); 594 else if(cost_function==SurfaceAbsMisfitEnum) iomodel->FetchDataToInput(inputs,elements,"md.numberedcostfunction.surface_obs",InversionSurfaceObsEnum); 595 595 else if(cost_function==SurfaceAbsVelMisfitEnum 596 596 || cost_function==SurfaceRelVelMisfitEnum … … 598 598 || cost_function==SurfaceLogVxVyMisfitEnum 599 599 || cost_function==SurfaceAverageVelMisfitEnum){ 600 iomodel->FetchDataToInput(inputs 2,elements,"md.numberedcostfunction.vx_obs",InversionVxObsEnum);601 if(domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.numberedcostfunction.vy_obs",InversionVyObsEnum);600 iomodel->FetchDataToInput(inputs,elements,"md.numberedcostfunction.vx_obs",InversionVxObsEnum); 601 if(domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(inputs,elements,"md.numberedcostfunction.vy_obs",InversionVyObsEnum); 602 602 } 603 603 } … … 608 608 for(int k=0;k<elements->Size();k++){ 609 609 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k)); 610 element->DatasetInputCreate(cost_functions_weights[j],cost_functions_weights_M[j],cost_functions_weights_N[j],cost_function_enums,num_cost_functions,inputs 2,iomodel,InversionCostFunctionsCoefficientsEnum);610 element->DatasetInputCreate(cost_functions_weights[j],cost_functions_weights_M[j],cost_functions_weights_N[j],cost_function_enums,num_cost_functions,inputs,iomodel,InversionCostFunctionsCoefficientsEnum); 611 611 } 612 612 output_definitions->AddObject(new Numberedcostfunction(ncf_name_s[j],StringToEnumx(ncf_definitionstring_s[j]),num_cost_functions,cost_function_enums)); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/UpdateElementsAndMaterialsDakota.cpp
r24335 r25379 9 9 #include "../ModelProcessorx.h" 10 10 11 void UpdateElementsAndMaterialsDakota(Elements* elements,Inputs 2* inputs2,Materials* materials, IoModel* iomodel){11 void UpdateElementsAndMaterialsDakota(Elements* elements,Inputs* inputs,Materials* materials, IoModel* iomodel){ 12 12 13 13 /*recover parameters: */ … … 15 15 iomodel->FindConstant(&dakota_analysis,"md.qmu.isdakota"); 16 16 17 if(dakota_analysis) iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.hydrostatic_ratio",GeometryHydrostaticRatioEnum,0.);17 if(dakota_analysis) iomodel->FetchDataToInput(inputs,elements,"md.geometry.hydrostatic_ratio",GeometryHydrostaticRatioEnum,0.); 18 18 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
r24630 r25379 13 13 #include "./ModelProcessorx.h" 14 14 15 void ModelProcessorx(Elements** pelements, Nodes*** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints*** pconstraints, Loads*** ploads, Parameters** pparameters,Inputs 2** pinputs2,IoModel* iomodel,FILE* toolkitfile, char* rootpath,const int solution_enum,const int nummodels,const int* analysis_enum_list){15 void ModelProcessorx(Elements** pelements, Nodes*** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints*** pconstraints, Loads*** ploads, Parameters** pparameters,Inputs** pinputs,IoModel* iomodel,FILE* toolkitfile, char* rootpath,const int solution_enum,const int nummodels,const int* analysis_enum_list){ 16 16 _assert_(nummodels>0); 17 17 … … 43 43 CreateParameters(parameters,iomodel,rootpath,toolkitfile,solution_enum); 44 44 45 /*Should move to CreateInputs 2*/46 Inputs 2 *inputs2 = new Inputs2(elements->Size(),vertices->Size());47 if (iomodel->domaintype != Domain3DsurfaceEnum) iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.scale_factor",MeshScaleFactorEnum,1.);45 /*Should move to CreateInputs*/ 46 Inputs *inputs = new Inputs(elements->Size(),vertices->Size()); 47 if (iomodel->domaintype != Domain3DsurfaceEnum) iomodel->FetchDataToInput(inputs,elements,"md.mesh.scale_factor",MeshScaleFactorEnum,1.); 48 48 49 49 /*Can now do Materials since we have created Inputs*/ 50 CreateMaterials(elements,inputs 2,materials,iomodel,nummodels);50 CreateMaterials(elements,inputs,materials,iomodel,nummodels); 51 51 52 52 /*Update datasets based on each analysis (and add nodes, constrains and loads)*/ … … 60 60 analysis->UpdateParameters(parameters,iomodel,solution_enum,analysis_enum); 61 61 analysis->CreateNodes(nodes[i],iomodel); 62 analysis->UpdateElements(elements,inputs 2,iomodel,i,analysis_enum);62 analysis->UpdateElements(elements,inputs,iomodel,i,analysis_enum); 63 63 analysis->CreateConstraints(constraints[i],iomodel); 64 64 analysis->CreateLoads(loads[i],iomodel); … … 76 76 /*Solution specific updates*/ 77 77 if(VerboseMProcessor()) _printf0_(" updating elements and materials for control parameters" << "\n"); 78 UpdateElementsAndMaterialsControl(elements,parameters,inputs 2,materials,iomodel);78 UpdateElementsAndMaterialsControl(elements,parameters,inputs,materials,iomodel); 79 79 #ifdef _HAVE_DAKOTA_ 80 80 if(VerboseMProcessor()) _printf0_(" updating elements and materials for uncertainty quantification" << "\n"); 81 UpdateElementsAndMaterialsDakota(elements,inputs 2,materials,iomodel);81 UpdateElementsAndMaterialsDakota(elements,inputs,materials,iomodel); 82 82 #endif 83 if(solution_enum==TransientSolutionEnum) UpdateElementsTransient(elements,parameters,inputs 2,iomodel);83 if(solution_enum==TransientSolutionEnum) UpdateElementsTransient(elements,parameters,inputs,iomodel); 84 84 85 85 /*Output definitions dataset: */ 86 86 if(VerboseMProcessor()) _printf0_(" creating output definitions" << "\n"); 87 CreateOutputDefinitions(elements,parameters,inputs 2,iomodel);87 CreateOutputDefinitions(elements,parameters,inputs,iomodel); 88 88 89 89 /* Sort datasets: … … 103 103 *ploads = loads; 104 104 *pparameters = parameters; 105 *pinputs 2 = inputs2;105 *pinputs = inputs; 106 106 107 107 if(VerboseMProcessor()) _printf0_(" done with model processor \n"); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.h
r24335 r25379 9 9 #include "../../analyses/analyses.h" 10 10 11 void ModelProcessorx(Elements** pelements, Nodes*** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints*** pconstraints, Loads*** ploads, Parameters** pparameters,Inputs 2** pinputs2,IoModel* iomodel,FILE* toolkitfile, char* rootpath,const int solution_type,const int nummodels,const int* analysis_type_listh);11 void ModelProcessorx(Elements** pelements, Nodes*** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints*** pconstraints, Loads*** ploads, Parameters** pparameters,Inputs** pinputs,IoModel* iomodel,FILE* toolkitfile, char* rootpath,const int solution_type,const int nummodels,const int* analysis_type_listh); 12 12 13 13 /*Creation of fem datasets: general drivers*/ 14 14 void CreateElements(Elements* elements,IoModel* iomodel,int nummodels); 15 void CreateMaterials(Elements* elements,Inputs 2* inputs2,Materials* materials,IoModel* iomodel,int nummodels);15 void CreateMaterials(Elements* elements,Inputs* inputs,Materials* materials,IoModel* iomodel,int nummodels); 16 16 void CreateVertices(Elements* elements,Vertices* vertices,IoModel* iomodel,int solution_type,bool isamr=false); 17 17 void CreateParameters(Parameters*parameters,IoModel* iomodel,char* rootpath,FILE* toolkitfile,const int solution_type); … … 19 19 void CreateParametersControl(Parameters* parameters,IoModel* iomodel,int solution_type); 20 20 void CreateParametersDakota(Parameters* parameters,IoModel* iomodel,char* rootpath); 21 void CreateOutputDefinitions(Elements* elements, Parameters* parameters,Inputs 2* inputs2,IoModel* iomodel);22 void UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs 2* inputs2,Materials* materials, IoModel* iomodel);23 void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs 2* inputs2,Materials* materials, IoModel* iomodel);24 void UpdateElementsAndMaterialsDakota(Elements* elements,Inputs 2* inputs2,Materials* materials, IoModel* iomodel);25 void UpdateElementsTransient(Elements* elements,Parameters* parameters,Inputs 2* inputs2,IoModel* iomodel);21 void CreateOutputDefinitions(Elements* elements, Parameters* parameters,Inputs* inputs,IoModel* iomodel); 22 void UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel); 23 void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel); 24 void UpdateElementsAndMaterialsDakota(Elements* elements,Inputs* inputs,Materials* materials, IoModel* iomodel); 25 void UpdateElementsTransient(Elements* elements,Parameters* parameters,Inputs* inputs,IoModel* iomodel); 26 26 void CreateNodes(Nodes*nodes, IoModel* iomodel,int analysis,int finite_element,bool isamr=false,int approximation=NoneApproximationEnum,int* approximations=NULL); 27 27 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Transient/UpdateElementsTransient.cpp
r24335 r25379 9 9 #include "../ModelProcessorx.h" 10 10 11 void UpdateElementsTransient(Elements* elements, Parameters* parameters,Inputs 2* inputs2,IoModel* iomodel){11 void UpdateElementsTransient(Elements* elements, Parameters* parameters,Inputs* inputs,IoModel* iomodel){ 12 12 13 13 /*FIXME: this should go into parameterization update*/ … … 17 17 18 18 if(isgroundingline){ 19 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.bed",BedEnum);19 iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum); 20 20 } 21 21 } -
issm/trunk-jpl/src/c/modules/RheologyBAbsGradientx/RheologyBAbsGradientx.cpp
r24335 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void RheologyBAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 54 54 55 55 /*Retrieve all inputs we will be needing: */ 56 DatasetInput 2* weights_input=element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);57 Input 2* rheologyb_input=element->GetInput2(MaterialsRheologyBEnum); _assert_(rheologyb_input);56 DatasetInput* weights_input=element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 57 Input* rheologyb_input=element->GetInput(MaterialsRheologyBEnum); _assert_(rheologyb_input); 58 58 59 59 /* Start looping on the number of gaussian points: */ … … 125 125 126 126 /*Retrieve all inputs we will be needing: */ 127 DatasetInput 2* weights_input=element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);128 Input 2* rheologyb_input=element->GetInput2(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);129 Input 2* rheologyb0_input=element->GetInput2(RheologyBInitialguessEnum); _assert_(rheologyb0_input);127 DatasetInput* weights_input=element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 128 Input* rheologyb_input=element->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input); 129 Input* rheologyb0_input=element->GetInput(RheologyBInitialguessEnum); _assert_(rheologyb0_input); 130 130 131 131 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.cpp
r24335 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void RheologyBbarAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 60 60 61 61 /*Retrieve all inputs we will be needing: */ 62 DatasetInput 2* weights_input=basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);63 Input 2* rheologyb_input=basalelement->GetInput2(MaterialsRheologyBbarEnum); _assert_(rheologyb_input);62 DatasetInput* weights_input=basalelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 63 Input* rheologyb_input=basalelement->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input); 64 64 65 65 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp
r25338 r25379 27 27 case TaylorHoodEnum:case XTaylorHoodEnum:case LATaylorHoodEnum: 28 28 case CrouzeixRaviartEnum:case LACrouzeixRaviartEnum:case OneLayerP4zEnum:{ 29 Input 2* input=element->GetInput2(IceMaskNodeActivationEnum);29 Input* input=element->GetInput(IceMaskNodeActivationEnum); 30 30 if(!input) _error_("Input " << EnumToStringx(IceMaskNodeActivationEnum) << " not found in element"); 31 31 -
issm/trunk-jpl/src/c/modules/SurfaceAbsVelMisfitx/SurfaceAbsVelMisfitx.cpp
r24335 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void SurfaceAbsVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 60 60 61 61 /*Retrieve all inputs we will be needing: */ 62 DatasetInput 2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);63 Input 2* vx_input =topelement->GetInput2(VxEnum); _assert_(vx_input);64 Input 2* vxobs_input =topelement->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);65 Input 2* vy_input = NULL;66 Input 2* vyobs_input = NULL;62 DatasetInput* weights_input=topelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 63 Input* vx_input =topelement->GetInput(VxEnum); _assert_(vx_input); 64 Input* vxobs_input =topelement->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 65 Input* vy_input = NULL; 66 Input* vyobs_input = NULL; 67 67 if(numcomponents==2){ 68 vy_input =topelement->GetInput 2(VyEnum); _assert_(vy_input);69 vyobs_input =topelement->GetInput 2(InversionVyObsEnum); _assert_(vyobs_input);68 vy_input =topelement->GetInput(VyEnum); _assert_(vy_input); 69 vyobs_input =topelement->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 70 70 } 71 71 -
issm/trunk-jpl/src/c/modules/SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.cpp
r24716 r25379 8 8 #include "../../toolkits/toolkits.h" 9 9 #include "../SurfaceAreax/SurfaceAreax.h" 10 #include "../../classes/Inputs 2/DatasetInput2.h"10 #include "../../classes/Inputs/DatasetInput.h" 11 11 12 12 void SurfaceAverageVelMisfitx(IssmDouble* pJ,FemModel* femmodel){ … … 67 67 68 68 /*Retrieve all inputs we will be needing: */ 69 DatasetInput 2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);70 Input 2* S_input = topelement->GetInput2(SurfaceAreaEnum); _assert_(S_input);71 Input 2* vx_input = topelement->GetInput2(VxEnum); _assert_(vx_input);72 Input 2* vxobs_input = topelement->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);73 Input 2* vy_input = NULL;74 Input 2* vyobs_input = NULL;69 DatasetInput* weights_input=topelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 70 Input* S_input = topelement->GetInput(SurfaceAreaEnum); _assert_(S_input); 71 Input* vx_input = topelement->GetInput(VxEnum); _assert_(vx_input); 72 Input* vxobs_input = topelement->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 73 Input* vy_input = NULL; 74 Input* vyobs_input = NULL; 75 75 if(numcomponents==2){ 76 vy_input =topelement->GetInput 2(VyEnum); _assert_(vy_input);77 vyobs_input =topelement->GetInput 2(InversionVyObsEnum); _assert_(vyobs_input);76 vy_input =topelement->GetInput(VyEnum); _assert_(vy_input); 77 vyobs_input =topelement->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 78 78 } 79 79 -
issm/trunk-jpl/src/c/modules/SurfaceLogVelMisfitx/SurfaceLogVelMisfitx.cpp
r24335 r25379 6 6 #include "../../shared/shared.h" 7 7 #include "../../toolkits/toolkits.h" 8 #include "../../classes/Inputs 2/DatasetInput2.h"8 #include "../../classes/Inputs/DatasetInput.h" 9 9 10 10 void SurfaceLogVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 62 62 63 63 /*Retrieve all inputs we will be needing: */ 64 DatasetInput 2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);65 Input 2* vx_input =topelement->GetInput2(VxEnum); _assert_(vx_input);66 Input 2* vxobs_input =topelement->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);67 Input 2* vy_input = NULL;68 Input 2* vyobs_input = NULL;64 DatasetInput* weights_input=topelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 65 Input* vx_input =topelement->GetInput(VxEnum); _assert_(vx_input); 66 Input* vxobs_input =topelement->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 67 Input* vy_input = NULL; 68 Input* vyobs_input = NULL; 69 69 if(numcomponents==2){ 70 vy_input =topelement->GetInput 2(VyEnum); _assert_(vy_input);71 vyobs_input =topelement->GetInput 2(InversionVyObsEnum); _assert_(vyobs_input);70 vy_input =topelement->GetInput(VyEnum); _assert_(vy_input); 71 vyobs_input =topelement->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 72 72 } 73 73 -
issm/trunk-jpl/src/c/modules/SurfaceLogVxVyMisfitx/SurfaceLogVxVyMisfitx.cpp
r24335 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void SurfaceLogVxVyMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 62 62 63 63 /*Retrieve all inputs we will be needing: */ 64 DatasetInput 2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);65 Input 2* vx_input =topelement->GetInput2(VxEnum); _assert_(vx_input);66 Input 2* vxobs_input =topelement->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);67 Input 2* vy_input = NULL;68 Input 2* vyobs_input = NULL;64 DatasetInput* weights_input=topelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 65 Input* vx_input =topelement->GetInput(VxEnum); _assert_(vx_input); 66 Input* vxobs_input =topelement->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 67 Input* vy_input = NULL; 68 Input* vyobs_input = NULL; 69 69 if(numcomponents==2){ 70 vy_input =topelement->GetInput 2(VyEnum); _assert_(vy_input);71 vyobs_input =topelement->GetInput 2(InversionVyObsEnum); _assert_(vyobs_input);70 vy_input =topelement->GetInput(VyEnum); _assert_(vy_input); 71 vyobs_input =topelement->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 72 72 } 73 73 -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
r24760 r25379 7 7 #include "../../toolkits/toolkits.h" 8 8 #include "../modules.h" 9 #include "../../classes/Inputs 2/TransientInput2.h"9 #include "../../classes/Inputs/TransientInput.h" 10 10 11 11 const double Pi = 3.141592653589793; … … 65 65 if (isclimatology){ 66 66 //If this is a climatology, we need to repeat the forcing after the final time 67 TransientInput 2* Ta_input_tr = element->inputs2->GetTransientInput(SmbTaEnum); _assert_(Ta_input_tr);67 TransientInput* Ta_input_tr = element->inputs->GetTransientInput(SmbTaEnum); _assert_(Ta_input_tr); 68 68 69 69 /*Get temperature climatology value*/ -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
r24335 r25379 7 7 #include "../../toolkits/toolkits.h" 8 8 #include "../modules.h" 9 #include "../../classes/Inputs 2/TransientInput2.h"9 #include "../../classes/Inputs/TransientInput.h" 10 10 11 11 void SmbForcingx(FemModel* femmodel){/*{{{*/ … … 29 29 /*FIXME: this is wrong, should be done at the ElementUpdate step of analysis, not here!*/ 30 30 InputDuplicatex(femmodel,SmbMassBalanceEnum,SmbMassBalanceClimateEnum); 31 femmodel->inputs 2->DeleteInput(SmbMassBalanceEnum);31 femmodel->inputs->DeleteInput(SmbMassBalanceEnum); 32 32 } 33 33 34 34 /*If this is a climatology, we need to repeat the forcing after the final time*/ 35 TransientInput 2* smb_input=femmodel->inputs2->GetTransientInput(SmbMassBalanceClimateEnum); _assert_(smb_input);35 TransientInput* smb_input=femmodel->inputs->GetTransientInput(SmbMassBalanceClimateEnum); _assert_(smb_input); 36 36 37 37 /*Get accumulation climatology value*/ … … 62 62 63 63 /*Add input to element and Free memory*/ 64 element->AddInput 2(SmbMassBalanceEnum,smb,P1Enum);64 element->AddInput(SmbMassBalanceEnum,smb,P1Enum); 65 65 xDelete<IssmDouble>(smb); 66 66 } … … 121 121 122 122 /*Add input to element and Free memory*/ 123 element->AddInput 2(SmbMassBalanceEnum,smb,P1Enum);123 element->AddInput(SmbMassBalanceEnum,smb,P1Enum); 124 124 xDelete<IssmDouble>(Href); 125 125 xDelete<IssmDouble>(Smbref); … … 185 185 186 186 /*Add input to element and Free memory*/ 187 element->AddInput 2(SmbMassBalanceEnum,smb,P1Enum);187 element->AddInput(SmbMassBalanceEnum,smb,P1Enum); 188 188 xDelete<IssmDouble>(ela); 189 189 xDelete<IssmDouble>(b_pos); … … 395 395 396 396 /*Add input to element and Free memory*/ 397 element->AddInput 2(SmbMassBalanceEnum,smblist,P1Enum);397 element->AddInput(SmbMassBalanceEnum,smblist,P1Enum); 398 398 xDelete<IssmDouble>(surfacelist); 399 399 xDelete<IssmDouble>(smblistref); … … 437 437 438 438 //If this is a climatology, we need to repeat the forcing after the final time 439 TransientInput 2* acc_input = element->inputs2->GetTransientInput(SmbAccumulationEnum); _assert_(acc_input);440 TransientInput 2* evap_input = element->inputs2->GetTransientInput(SmbEvaporationEnum); _assert_(evap_input);441 TransientInput 2* runoff_input = element->inputs2->GetTransientInput(SmbRunoffEnum); _assert_(runoff_input);439 TransientInput* acc_input = element->inputs->GetTransientInput(SmbAccumulationEnum); _assert_(acc_input); 440 TransientInput* evap_input = element->inputs->GetTransientInput(SmbEvaporationEnum); _assert_(evap_input); 441 TransientInput* runoff_input = element->inputs->GetTransientInput(SmbRunoffEnum); _assert_(runoff_input); 442 442 443 443 //Get accumulation climatology value … … 493 493 494 494 /*Add input to element and Free memory*/ 495 element->AddInput 2(SmbMassBalanceEnum,smb,P1Enum);495 element->AddInput(SmbMassBalanceEnum,smb,P1Enum); 496 496 xDelete<IssmDouble>(acc); 497 497 xDelete<IssmDouble>(evap); … … 537 537 538 538 //If this is a climatology, we need to repeat the forcing after the final time 539 TransientInput 2* acc_input = element->inputs2->GetTransientInput(SmbAccumulationEnum); _assert_(acc_input);540 TransientInput 2* evap_input = element->inputs2->GetTransientInput(SmbEvaporationEnum); _assert_(evap_input);541 TransientInput 2* melt_input = element->inputs2->GetTransientInput(SmbMeltEnum); _assert_(melt_input);542 TransientInput 2* refreeze_input = element->inputs2->GetTransientInput(SmbRefreezeEnum); _assert_(refreeze_input);539 TransientInput* acc_input = element->inputs->GetTransientInput(SmbAccumulationEnum); _assert_(acc_input); 540 TransientInput* evap_input = element->inputs->GetTransientInput(SmbEvaporationEnum); _assert_(evap_input); 541 TransientInput* melt_input = element->inputs->GetTransientInput(SmbMeltEnum); _assert_(melt_input); 542 TransientInput* refreeze_input = element->inputs->GetTransientInput(SmbRefreezeEnum); _assert_(refreeze_input); 543 543 544 544 //Get accumulation climatology value … … 609 609 610 610 /*Add input to element and Free memory*/ 611 element->AddInput 2(SmbMassBalanceEnum,smb,P1Enum);611 element->AddInput(SmbMassBalanceEnum,smb,P1Enum); 612 612 xDelete<IssmDouble>(acc); 613 613 xDelete<IssmDouble>(evap); -
issm/trunk-jpl/src/c/modules/SurfaceRelVelMisfitx/SurfaceRelVelMisfitx.cpp
r24335 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void SurfaceRelVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 62 62 63 63 /*Retrieve all inputs we will be needing: */ 64 DatasetInput 2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);65 Input 2* vx_input =topelement->GetInput2(VxEnum); _assert_(vx_input);66 Input 2* vxobs_input =topelement->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);67 Input 2* vy_input = NULL;68 Input 2* vyobs_input = NULL;64 DatasetInput* weights_input=topelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 65 Input* vx_input =topelement->GetInput(VxEnum); _assert_(vx_input); 66 Input* vxobs_input =topelement->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 67 Input* vy_input = NULL; 68 Input* vyobs_input = NULL; 69 69 if(numcomponents==2){ 70 vy_input =topelement->GetInput 2(VyEnum); _assert_(vy_input);71 vyobs_input =topelement->GetInput 2(InversionVyObsEnum); _assert_(vyobs_input);70 vy_input =topelement->GetInput(VyEnum); _assert_(vy_input); 71 vyobs_input =topelement->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 72 72 } 73 73 -
issm/trunk-jpl/src/c/modules/ThicknessAbsMisfitx/ThicknessAbsMisfitx.cpp
r24335 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 44 44 45 45 /*Retrieve all inputs we will be needing: */ 46 DatasetInput 2* weights_input =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);47 Input 2* thickness_input =element->GetInput2(ThicknessEnum); _assert_(thickness_input);48 Input 2* thicknessobs_input=element->GetInput2(InversionThicknessObsEnum); _assert_(thicknessobs_input);46 DatasetInput* weights_input =element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 47 Input* thickness_input =element->GetInput(ThicknessEnum); _assert_(thickness_input); 48 Input* thicknessobs_input=element->GetInput(InversionThicknessObsEnum); _assert_(thicknessobs_input); 49 49 50 50 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/modules/ThicknessAcrossGradientx/ThicknessAcrossGradientx.cpp
r24335 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void ThicknessAcrossGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 46 46 47 47 /*Retrieve all inputs we will be needing: */ 48 DatasetInput 2* weights_input =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);49 Input 2* thickness_input =element->GetInput2(ThicknessEnum); _assert_(thickness_input);50 Input 2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input);51 Input 2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input);48 DatasetInput* weights_input =element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 49 Input* thickness_input =element->GetInput(ThicknessEnum); _assert_(thickness_input); 50 Input* vx_input =element->GetInput(VxEnum); _assert_(vx_input); 51 Input* vy_input =element->GetInput(VyEnum); _assert_(vy_input); 52 52 53 53 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/modules/ThicknessAlongGradientx/ThicknessAlongGradientx.cpp
r24335 r25379 7 7 #include "../../shared/shared.h" 8 8 #include "../../toolkits/toolkits.h" 9 #include "../../classes/Inputs 2/DatasetInput2.h"9 #include "../../classes/Inputs/DatasetInput.h" 10 10 11 11 void ThicknessAlongGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ … … 46 46 47 47 /*Retrieve all inputs we will be needing: */ 48 DatasetInput 2* weights_input =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);49 Input 2* thickness_input =element->GetInput2(ThicknessEnum); _assert_(thickness_input);50 Input 2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input);51 Input 2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input);48 DatasetInput* weights_input =element->GetDatasetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 49 Input* thickness_input =element->GetInput(ThicknessEnum); _assert_(thickness_input); 50 Input* vx_input =element->GetInput(VxEnum); _assert_(vx_input); 51 Input* vy_input =element->GetInput(VyEnum); _assert_(vy_input); 52 52 53 53 /* Start looping on the number of gaussian points: */ -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r25323 r25379 996 996 syn keyword cConstant BoolExternalResultEnum 997 997 syn keyword cConstant BoolInputEnum 998 syn keyword cConstant BoolInput2Enum 999 syn keyword cConstant IntInput2Enum 1000 syn keyword cConstant DoubleInput2Enum 998 syn keyword cConstant IntInputEnum 999 syn keyword cConstant DoubleInputEnum 1001 1000 syn keyword cConstant BoolParamEnum 1002 1001 syn keyword cConstant BoundaryEnum … … 1019 1018 syn keyword cConstant ContoursEnum 1020 1019 syn keyword cConstant ControlInputEnum 1021 syn keyword cConstant ControlInput2Enum1022 1020 syn keyword cConstant ControlInputGradEnum 1023 1021 syn keyword cConstant ControlInputMaxsEnum … … 1032 1030 syn keyword cConstant DataSetParamEnum 1033 1031 syn keyword cConstant DatasetInputEnum 1034 syn keyword cConstant DatasetInput2Enum1035 1032 syn keyword cConstant DefaultAnalysisEnum 1036 1033 syn keyword cConstant DefaultCalvingEnum … … 1042 1039 syn keyword cConstant Domain3DsurfaceEnum 1043 1040 syn keyword cConstant DoubleArrayInputEnum 1044 syn keyword cConstant ArrayInput 2Enum1041 syn keyword cConstant ArrayInputEnum 1045 1042 syn keyword cConstant DoubleExternalResultEnum 1046 syn keyword cConstant DoubleInputEnum1047 1043 syn keyword cConstant DoubleMatArrayParamEnum 1048 1044 syn keyword cConstant DoubleMatExternalResultEnum … … 1122 1118 syn keyword cConstant IndexedEnum 1123 1119 syn keyword cConstant IntExternalResultEnum 1124 syn keyword cConstant IntInputEnum 1125 syn keyword cConstant ElementInput2Enum 1126 syn keyword cConstant SegInput2Enum 1127 syn keyword cConstant TriaInput2Enum 1128 syn keyword cConstant PentaInput2Enum 1120 syn keyword cConstant ElementInputEnum 1129 1121 syn keyword cConstant IntMatExternalResultEnum 1130 1122 syn keyword cConstant IntMatParamEnum 1131 1123 syn keyword cConstant IntParamEnum 1132 1124 syn keyword cConstant IntVecParamEnum 1133 syn keyword cConstant Inputs 2Enum1125 syn keyword cConstant InputsEnum 1134 1126 syn keyword cConstant InternalEnum 1135 1127 syn keyword cConstant IntersectEnum … … 1316 1308 syn keyword cConstant TransientArrayParamEnum 1317 1309 syn keyword cConstant TransientInputEnum 1318 syn keyword cConstant TransientInput2Enum1319 1310 syn keyword cConstant TransientParamEnum 1320 1311 syn keyword cConstant TransientSolutionEnum … … 1356 1347 syn keyword cType AdaptiveMeshRefinement 1357 1348 syn keyword cType AmrBamg 1358 syn keyword cType ArrayInput 21359 syn keyword cType BoolInput 21349 syn keyword cType ArrayInput 1350 syn keyword cType BoolInput 1360 1351 syn keyword cType BoolParam 1361 1352 syn keyword cType Cfdragcoeffabsgrad … … 1368 1359 syn keyword cType Contour 1369 1360 syn keyword cType Contours 1370 syn keyword cType ControlInput 21361 syn keyword cType ControlInput 1371 1362 syn keyword cType Covertree 1372 syn keyword cType DatasetInput 21363 syn keyword cType DatasetInput 1373 1364 syn keyword cType DataSetParam 1374 1365 syn keyword cType Definition 1375 1366 syn keyword cType DependentObject 1376 syn keyword cType DoubleInput 21367 syn keyword cType DoubleInput 1377 1368 syn keyword cType DoubleMatArrayParam 1378 1369 syn keyword cType DoubleMatParam … … 1382 1373 syn keyword cType Element 1383 1374 syn keyword cType ElementHook 1384 syn keyword cType ElementInput 21375 syn keyword cType ElementInput 1385 1376 syn keyword cType ElementMatrix 1386 1377 syn keyword cType Elements … … 1403 1394 syn keyword cType GiaDeflectionCoreArgs 1404 1395 syn keyword cType Hook 1405 syn keyword cType Input 21406 syn keyword cType Inputs 21407 syn keyword cType IntInput 21396 syn keyword cType Input 1397 syn keyword cType Inputs 1398 syn keyword cType IntInput 1408 1399 syn keyword cType IntMatParam 1409 1400 syn keyword cType IntParam … … 1443 1434 syn keyword cType Penpair 1444 1435 syn keyword cType Penta 1445 syn keyword cType PentaInput 21436 syn keyword cType PentaInput 1446 1437 syn keyword cType PentaRef 1447 1438 syn keyword cType PowerVariogram … … 1455 1446 syn keyword cType SealevelMasks 1456 1447 syn keyword cType Seg 1457 syn keyword cType SegInput 21448 syn keyword cType SegInput 1458 1449 syn keyword cType Segment 1459 1450 syn keyword cType SegRef … … 1467 1458 syn keyword cType TetraRef 1468 1459 syn keyword cType TransientArrayParam 1469 syn keyword cType TransientInput 21460 syn keyword cType TransientInput 1470 1461 syn keyword cType TransientParam 1471 1462 syn keyword cType Tria 1472 syn keyword cType TriaInput 21463 syn keyword cType TriaInput 1473 1464 syn keyword cType TriaRef 1474 1465 syn keyword cType Variogram -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r25323 r25379 995 995 BoolExternalResultEnum, 996 996 BoolInputEnum, 997 BoolInput2Enum, 998 IntInput2Enum, 999 DoubleInput2Enum, 997 IntInputEnum, 998 DoubleInputEnum, 1000 999 BoolParamEnum, 1001 1000 BoundaryEnum, … … 1018 1017 ContoursEnum, 1019 1018 ControlInputEnum, 1020 ControlInput2Enum,1021 1019 ControlInputGradEnum, 1022 1020 ControlInputMaxsEnum, … … 1031 1029 DataSetParamEnum, 1032 1030 DatasetInputEnum, 1033 DatasetInput2Enum,1034 1031 DefaultAnalysisEnum, 1035 1032 DefaultCalvingEnum, … … 1041 1038 Domain3DsurfaceEnum, 1042 1039 DoubleArrayInputEnum, 1043 ArrayInput 2Enum,1040 ArrayInputEnum, 1044 1041 DoubleExternalResultEnum, 1045 DoubleInputEnum,1046 1042 DoubleMatArrayParamEnum, 1047 1043 DoubleMatExternalResultEnum, … … 1121 1117 IndexedEnum, 1122 1118 IntExternalResultEnum, 1123 IntInputEnum, 1124 ElementInput2Enum, 1125 SegInput2Enum, 1126 TriaInput2Enum, 1127 PentaInput2Enum, 1119 ElementInputEnum, 1128 1120 IntMatExternalResultEnum, 1129 1121 IntMatParamEnum, 1130 1122 IntParamEnum, 1131 1123 IntVecParamEnum, 1132 Inputs 2Enum,1124 InputsEnum, 1133 1125 InternalEnum, 1134 1126 IntersectEnum, … … 1315 1307 TransientArrayParamEnum, 1316 1308 TransientInputEnum, 1317 TransientInput2Enum,1318 1309 TransientParamEnum, 1319 1310 TransientSolutionEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r25323 r25379 998 998 case BoolExternalResultEnum : return "BoolExternalResult"; 999 999 case BoolInputEnum : return "BoolInput"; 1000 case BoolInput2Enum : return "BoolInput2"; 1001 case IntInput2Enum : return "IntInput2"; 1002 case DoubleInput2Enum : return "DoubleInput2"; 1000 case IntInputEnum : return "IntInput"; 1001 case DoubleInputEnum : return "DoubleInput"; 1003 1002 case BoolParamEnum : return "BoolParam"; 1004 1003 case BoundaryEnum : return "Boundary"; … … 1021 1020 case ContoursEnum : return "Contours"; 1022 1021 case ControlInputEnum : return "ControlInput"; 1023 case ControlInput2Enum : return "ControlInput2";1024 1022 case ControlInputGradEnum : return "ControlInputGrad"; 1025 1023 case ControlInputMaxsEnum : return "ControlInputMaxs"; … … 1034 1032 case DataSetParamEnum : return "DataSetParam"; 1035 1033 case DatasetInputEnum : return "DatasetInput"; 1036 case DatasetInput2Enum : return "DatasetInput2";1037 1034 case DefaultAnalysisEnum : return "DefaultAnalysis"; 1038 1035 case DefaultCalvingEnum : return "DefaultCalving"; … … 1044 1041 case Domain3DsurfaceEnum : return "Domain3Dsurface"; 1045 1042 case DoubleArrayInputEnum : return "DoubleArrayInput"; 1046 case ArrayInput 2Enum : return "ArrayInput2";1043 case ArrayInputEnum : return "ArrayInput"; 1047 1044 case DoubleExternalResultEnum : return "DoubleExternalResult"; 1048 case DoubleInputEnum : return "DoubleInput";1049 1045 case DoubleMatArrayParamEnum : return "DoubleMatArrayParam"; 1050 1046 case DoubleMatExternalResultEnum : return "DoubleMatExternalResult"; … … 1124 1120 case IndexedEnum : return "Indexed"; 1125 1121 case IntExternalResultEnum : return "IntExternalResult"; 1126 case IntInputEnum : return "IntInput"; 1127 case ElementInput2Enum : return "ElementInput2"; 1128 case SegInput2Enum : return "SegInput2"; 1129 case TriaInput2Enum : return "TriaInput2"; 1130 case PentaInput2Enum : return "PentaInput2"; 1122 case ElementInputEnum : return "ElementInput"; 1131 1123 case IntMatExternalResultEnum : return "IntMatExternalResult"; 1132 1124 case IntMatParamEnum : return "IntMatParam"; 1133 1125 case IntParamEnum : return "IntParam"; 1134 1126 case IntVecParamEnum : return "IntVecParam"; 1135 case Inputs 2Enum : return "Inputs2";1127 case InputsEnum : return "Inputs"; 1136 1128 case InternalEnum : return "Internal"; 1137 1129 case IntersectEnum : return "Intersect"; … … 1318 1310 case TransientArrayParamEnum : return "TransientArrayParam"; 1319 1311 case TransientInputEnum : return "TransientInput"; 1320 case TransientInput2Enum : return "TransientInput2";1321 1312 case TransientParamEnum : return "TransientParam"; 1322 1313 case TransientSolutionEnum : return "TransientSolution"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r25323 r25379 629 629 else if (strcmp(name,"HydrologydcMaskThawedNode")==0) return HydrologydcMaskThawedNodeEnum; 630 630 else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum; 631 else if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum;632 631 else stage=6; 633 632 } 634 633 if(stage==6){ 635 if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum; 634 if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum; 635 else if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum; 636 636 else if (strcmp(name,"HydrologyGapHeight")==0) return HydrologyGapHeightEnum; 637 637 else if (strcmp(name,"HydrologyHead")==0) return HydrologyHeadEnum; … … 752 752 else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum; 753 753 else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum; 754 else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;755 754 else stage=7; 756 755 } 757 756 if(stage==7){ 758 if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum; 757 if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum; 758 else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum; 759 759 else if (strcmp(name,"SmbEC")==0) return SmbECEnum; 760 760 else if (strcmp(name,"SmbECDt")==0) return SmbECDtEnum; … … 875 875 else if (strcmp(name,"Vy")==0) return VyEnum; 876 876 else if (strcmp(name,"VyMesh")==0) return VyMeshEnum; 877 else if (strcmp(name,"VyObs")==0) return VyObsEnum;878 877 else stage=8; 879 878 } 880 879 if(stage==8){ 881 if (strcmp(name,"Vz")==0) return VzEnum; 880 if (strcmp(name,"VyObs")==0) return VyObsEnum; 881 else if (strcmp(name,"Vz")==0) return VzEnum; 882 882 else if (strcmp(name,"VzFS")==0) return VzFSEnum; 883 883 else if (strcmp(name,"VzHO")==0) return VzHOEnum; … … 998 998 else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum; 999 999 else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum; 1000 else if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum;1001 1000 else stage=9; 1002 1001 } 1003 1002 if(stage==9){ 1004 if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum; 1003 if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum; 1004 else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum; 1005 1005 else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum; 1006 1006 else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum; … … 1022 1022 else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 1023 1023 else if (strcmp(name,"BoolInput")==0) return BoolInputEnum; 1024 else if (strcmp(name,"BoolInput2")==0) return BoolInput2Enum; 1025 else if (strcmp(name,"IntInput2")==0) return IntInput2Enum; 1026 else if (strcmp(name,"DoubleInput2")==0) return DoubleInput2Enum; 1024 else if (strcmp(name,"IntInput")==0) return IntInputEnum; 1025 else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum; 1027 1026 else if (strcmp(name,"BoolParam")==0) return BoolParamEnum; 1028 1027 else if (strcmp(name,"Boundary")==0) return BoundaryEnum; … … 1045 1044 else if (strcmp(name,"Contours")==0) return ContoursEnum; 1046 1045 else if (strcmp(name,"ControlInput")==0) return ControlInputEnum; 1047 else if (strcmp(name,"ControlInput2")==0) return ControlInput2Enum;1048 1046 else if (strcmp(name,"ControlInputGrad")==0) return ControlInputGradEnum; 1049 1047 else if (strcmp(name,"ControlInputMaxs")==0) return ControlInputMaxsEnum; … … 1058 1056 else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum; 1059 1057 else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum; 1060 else if (strcmp(name,"DatasetInput2")==0) return DatasetInput2Enum;1061 1058 else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum; 1062 1059 else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum; … … 1068 1065 else if (strcmp(name,"Domain3Dsurface")==0) return Domain3DsurfaceEnum; 1069 1066 else if (strcmp(name,"DoubleArrayInput")==0) return DoubleArrayInputEnum; 1070 else if (strcmp(name,"ArrayInput 2")==0) return ArrayInput2Enum;1067 else if (strcmp(name,"ArrayInput")==0) return ArrayInputEnum; 1071 1068 else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum; 1072 else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum;1073 1069 else if (strcmp(name,"DoubleMatArrayParam")==0) return DoubleMatArrayParamEnum; 1074 1070 else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum; … … 1122 1118 else if (strcmp(name,"Gset")==0) return GsetEnum; 1123 1119 else if (strcmp(name,"Gsl")==0) return GslEnum; 1120 else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum; 1121 else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum; 1122 else if (strcmp(name,"Hook")==0) return HookEnum; 1124 1123 else stage=10; 1125 1124 } 1126 1125 if(stage==10){ 1127 if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum; 1128 else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum; 1129 else if (strcmp(name,"Hook")==0) return HookEnum; 1130 else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; 1126 if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; 1131 1127 else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum; 1132 1128 else if (strcmp(name,"HydrologyGlaDSAnalysis")==0) return HydrologyGlaDSAnalysisEnum; … … 1151 1147 else if (strcmp(name,"Indexed")==0) return IndexedEnum; 1152 1148 else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum; 1153 else if (strcmp(name,"IntInput")==0) return IntInputEnum; 1154 else if (strcmp(name,"ElementInput2")==0) return ElementInput2Enum; 1155 else if (strcmp(name,"SegInput2")==0) return SegInput2Enum; 1156 else if (strcmp(name,"TriaInput2")==0) return TriaInput2Enum; 1157 else if (strcmp(name,"PentaInput2")==0) return PentaInput2Enum; 1149 else if (strcmp(name,"ElementInput")==0) return ElementInputEnum; 1158 1150 else if (strcmp(name,"IntMatExternalResult")==0) return IntMatExternalResultEnum; 1159 1151 else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum; 1160 1152 else if (strcmp(name,"IntParam")==0) return IntParamEnum; 1161 1153 else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum; 1162 else if (strcmp(name,"Inputs 2")==0) return Inputs2Enum;1154 else if (strcmp(name,"Inputs")==0) return InputsEnum; 1163 1155 else if (strcmp(name,"Internal")==0) return InternalEnum; 1164 1156 else if (strcmp(name,"Intersect")==0) return IntersectEnum; … … 1245 1237 else if (strcmp(name,"P0Array")==0) return P0ArrayEnum; 1246 1238 else if (strcmp(name,"P0DG")==0) return P0DGEnum; 1247 else stage=11; 1248 } 1249 if(stage==11){ 1250 if (strcmp(name,"P1DG")==0) return P1DGEnum; 1239 else if (strcmp(name,"P1DG")==0) return P1DGEnum; 1251 1240 else if (strcmp(name,"P1P1")==0) return P1P1Enum; 1252 1241 else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum; … … 1255 1244 else if (strcmp(name,"P1xP2")==0) return P1xP2Enum; 1256 1245 else if (strcmp(name,"P1xP3")==0) return P1xP3Enum; 1257 else if (strcmp(name,"P1xP4")==0) return P1xP4Enum; 1246 else stage=11; 1247 } 1248 if(stage==11){ 1249 if (strcmp(name,"P1xP4")==0) return P1xP4Enum; 1258 1250 else if (strcmp(name,"P2")==0) return P2Enum; 1259 1251 else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum; … … 1348 1340 else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum; 1349 1341 else if (strcmp(name,"TransientInput")==0) return TransientInputEnum; 1350 else if (strcmp(name,"TransientInput2")==0) return TransientInput2Enum;1351 1342 else if (strcmp(name,"TransientParam")==0) return TransientParamEnum; 1352 1343 else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum; … … 1368 1359 else if (strcmp(name,"BalancethicknessDiffusionCoefficient")==0) return BalancethicknessDiffusionCoefficientEnum; 1369 1360 else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum; 1370 else stage=12; 1371 } 1372 if(stage==12){ 1373 if (strcmp(name,"CalvingdevCoeff")==0) return CalvingdevCoeffEnum; 1361 else if (strcmp(name,"CalvingdevCoeff")==0) return CalvingdevCoeffEnum; 1374 1362 else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum; 1375 1363 else if (strcmp(name,"EtaAbsGradient")==0) return EtaAbsGradientEnum; … … 1379 1367 else if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum; 1380 1368 else if (strcmp(name,"SealevelWeights")==0) return SealevelWeightsEnum; 1381 else if (strcmp(name,"StrainRate")==0) return StrainRateEnum; 1369 else stage=12; 1370 } 1371 if(stage==12){ 1372 if (strcmp(name,"StrainRate")==0) return StrainRateEnum; 1382 1373 else if (strcmp(name,"StressTensor")==0) return StressTensorEnum; 1383 1374 else if (strcmp(name,"StressbalanceViscosityOvershoot")==0) return StressbalanceViscosityOvershootEnum;
Note:
See TracChangeset
for help on using the changeset viewer.