Changeset 25379 for issm/trunk-jpl/src


Ignore:
Timestamp:
08/11/20 19:43:31 (5 years ago)
Author:
Mathieu Morlighem
Message:

CHG: moving inputs2 back to inputs

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  
    318318        ./modules/OutputDefinitionsResponsex/OutputDefinitionsResponsex.cpp \
    319319        ./modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp \
    320         ./classes/Inputs2/Inputs2.cpp \
    321         ./classes/Inputs2/BoolInput2.cpp \
    322         ./classes/Inputs2/DoubleInput2.cpp \
    323         ./classes/Inputs2/IntInput2.cpp \
    324         ./classes/Inputs2/ElementInput2.cpp \
    325         ./classes/Inputs2/SegInput2.cpp \
    326         ./classes/Inputs2/TriaInput2.cpp \
    327         ./classes/Inputs2/PentaInput2.cpp \
    328         ./classes/Inputs2/DatasetInput2.cpp \
    329         ./classes/Inputs2/ControlInput2.cpp \
    330         ./classes/Inputs2/TransientInput2.cpp \
    331         ./classes/Inputs2/ArrayInput2.cpp
     320        ./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
    332332#}}}
    333333#ADJOINTMPI/MeDiPack sources {{{
  • issm/trunk-jpl/src/c/analyses/AdjointBalancethickness2Analysis.cpp

    r25317 r25379  
    44#include "../shared/shared.h"
    55#include "../modules/modules.h"
    6 #include "../classes/Inputs2/DatasetInput2.h"
     6#include "../classes/Inputs/DatasetInput.h"
    77
    88/*Model processor*/
     
    1919        return 1;
    2020}/*}}}*/
    21 void AdjointBalancethickness2Analysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     21void AdjointBalancethickness2Analysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2222        _error_("not implemented yet");
    2323}/*}}}*/
     
    6666        element->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    6767        element->FindParam(&responses,NULL,InversionCostFunctionsEnum);
    68         Input2* surface_input      = element->GetInput2(SurfaceEnum);                          _assert_(surface_input);
    69         Input2* surfaceobs_input   = element->GetInput2(InversionSurfaceObsEnum);              _assert_(surfaceobs_input);
    70         DatasetInput2* weights_input      = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    71         Input2* vx_input           = element->GetInput2(VxEnum);                                 _assert_(vx_input);
    72         Input2* 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);
    7373
    7474        /* Start  looping on the number of gaussian points: */
     
    172172        element->GetVerticesCoordinates(&xyz_list);
    173173        element->GradientIndexing(&vertexpidlist[0],control_index);
    174         Input2* adjoint_input = element->GetInput2(AdjointEnum);            _assert_(adjoint_input);
     174        Input* adjoint_input = element->GetInput(AdjointEnum);            _assert_(adjoint_input);
    175175
    176176        Gauss* gauss=element->NewGauss(2);
     
    216216        element->GetVerticesCoordinates(&xyz_list);
    217217        element->GradientIndexing(&vertexpidlist[0],control_index);
    218         Input2* adjoint_input = element->GetInput2(AdjointEnum);            _assert_(adjoint_input);
    219         Input2* omega_input   = element->GetInput2(BalancethicknessOmegaEnum); _assert_(omega_input);
    220         Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);
    221         Input2* surfaceslopex_input = element->GetInput2(SurfaceSlopeXEnum); _assert_(surfaceslopex_input);
    222         Input2* surfaceslopey_input = element->GetInput2(SurfaceSlopeYEnum); _assert_(surfaceslopey_input);
    223         Input2* 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);
    224224
    225225        Gauss* gauss=element->NewGauss(2);
     
    273273        element->GetVerticesCoordinates(&xyz_list);
    274274        element->GradientIndexing(&vertexpidlist[0],control_index);
    275         Input2* omega_input = element->GetInput2(BalancethicknessOmegaEnum); _assert_(omega_input);
    276         DatasetInput2* 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);
    277277
    278278        /* Start  looping on the number of gaussian points: */
     
    322322        element->GetVerticesCoordinates(&xyz_list);
    323323        element->GradientIndexing(&vertexpidlist[0],control_index);
    324         Input2* omega_input = element->GetInput2(BalancethicknessOmegaEnum);   _assert_(omega_input);
    325         Input2* omega0_input = element->GetInput2(BalancethicknessOmega0Enum); _assert_(omega0_input);
    326         DatasetInput2* 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);
    327327
    328328        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/analyses/AdjointBalancethickness2Analysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp

    r25317 r25379  
    44#include "../shared/shared.h"
    55#include "../modules/modules.h"
    6 #include "../classes/Inputs2/DatasetInput2.h"
     6#include "../classes/Inputs/DatasetInput.h"
    77
    88/*Model processor*/
     
    1919        return 1;
    2020}/*}}}*/
    21 void AdjointBalancethicknessAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     21void AdjointBalancethicknessAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2222        _error_("not implemented yet");
    2323}/*}}}*/
     
    8686        basalelement->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    8787        basalelement->FindParam(&responses,NULL,InversionCostFunctionsEnum);
    88         Input2* thickness_input    = basalelement->GetInput2(ThicknessEnum);                          _assert_(thickness_input);
    89         Input2* thicknessobs_input = basalelement->GetInput2(InversionThicknessObsEnum);              _assert_(thicknessobs_input);
    90         DatasetInput2* weights_input      = basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    91         Input2* vx_input           = basalelement->GetInput2(VxEnum);                                 _assert_(vx_input);
    92         Input2* 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);
    9393
    9494        /* Start  looping on the number of gaussian points: */
     
    283283        element->GetVerticesCoordinates(&xyz_list);
    284284        element->GradientIndexing(&vertexpidlist[0],control_index);
    285         Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    286         Input2* 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);
    287287
    288288        /* Start  looping on the number of gaussian points: */
     
    330330        element->GetVerticesCoordinates(&xyz_list);
    331331        element->GradientIndexing(&vertexpidlist[0],control_index);
    332         Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    333         Input2* 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);
    334334
    335335        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp

    r25366 r25379  
    44#include "../shared/shared.h"
    55#include "../modules/modules.h"
    6 #include "../classes/Inputs2/DatasetInput2.h"
     6#include "../classes/Inputs/DatasetInput.h"
    77
    88/*Model processing*/
     
    1919        _error_("not implemented");
    2020}/*}}}*/
    21 void AdjointHorizAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     21void AdjointHorizAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2222           _error_("not implemented yet");
    2323}/*}}}*/
     
    8787        /*Retrieve all inputs and parameters*/
    8888        element->GetVerticesCoordinates(&xyz_list);
    89         Input2* vx_input = element->GetInput2(VxEnum);_assert_(vx_input);
    90         Input2* vy_input = element->GetInput2(VyEnum);_assert_(vy_input);
    91         Input2* 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;
    9292        if(dim==3){
    93                 vz_input = element->GetInput2(VzEnum);
     93                vz_input = element->GetInput(VzEnum);
    9494        }
    9595        else{
     
    171171        /*Retrieve all inputs and parameters*/
    172172        element->GetVerticesCoordinates(&xyz_list);
    173         Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);
    174         Input2* 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);
    175175
    176176        /*Allocate dbasis*/
     
    276276        /*Retrieve all inputs and parameters*/
    277277        basalelement->GetVerticesCoordinates(&xyz_list);
    278         Input2* vx_input        = basalelement->GetInput2(VxEnum);       _assert_(vx_input);
    279         Input2* vy_input        = basalelement->GetInput2(VyEnum);       _assert_(vy_input);
    280         Input2* 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);
    281281
    282282        /*Allocate dbasis*/
     
    375375        element->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    376376        element->FindParam(&responses,NULL,InversionCostFunctionsEnum);
    377         DatasetInput2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    378         Input2* vx_input      = element->GetInput2(VxEnum);             _assert_(vx_input);
    379         Input2* vxobs_input   = element->GetInput2(InversionVxObsEnum); _assert_(vxobs_input);
    380         Input2* vy_input    = NULL;
    381         Input2* 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;
    382382        if(domaintype!=Domain2DverticalEnum){
    383                 vy_input      = element->GetInput2(VyEnum);             _assert_(vy_input);
    384                 vyobs_input   = element->GetInput2(InversionVyObsEnum); _assert_(vyobs_input);
     383                vy_input      = element->GetInput(VyEnum);             _assert_(vy_input);
     384                vyobs_input   = element->GetInput(InversionVyObsEnum); _assert_(vyobs_input);
    385385        }
    386386        IssmDouble epsvel  = 2.220446049250313e-16;
     
    388388
    389389        /*Get Surface if required by one response*/
    390         Input2* S_input = NULL;
     390        Input* S_input = NULL;
    391391        for(int resp=0;resp<num_responses;resp++){
    392392                if(responses[resp]==SurfaceAverageVelMisfitEnum){
    393                         S_input = element->GetInput2(SurfaceAreaEnum);  _assert_(S_input); break;
     393                        S_input = element->GetInput(SurfaceAreaEnum);  _assert_(S_input); break;
    394394                }
    395395        }
     
    614614        element->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    615615        element->FindParam(&responses,NULL,InversionCostFunctionsEnum);
    616         DatasetInput2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    617         Input2* vx_input      = element->GetInput2(VxEnum);                                 _assert_(vx_input);
    618         Input2* vxobs_input   = element->GetInput2(InversionVxObsEnum);                     _assert_(vxobs_input);
    619         Input2* vy_input=NULL;
    620         Input2* 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;
    621621        if(domaintype!=Domain2DverticalEnum){
    622                 vy_input      = element->GetInput2(VyEnum);                                 _assert_(vy_input);
    623                 vyobs_input   = element->GetInput2(InversionVyObsEnum);                     _assert_(vyobs_input);
     622                vy_input      = element->GetInput(VyEnum);                                 _assert_(vy_input);
     623                vyobs_input   = element->GetInput(InversionVyObsEnum);                     _assert_(vyobs_input);
    624624        }
    625625        IssmDouble epsvel  = 2.220446049250313e-16;
     
    627627
    628628        /*Get Surface if required by one response*/
    629         Input2* S_input = NULL;
     629        Input* S_input = NULL;
    630630        for(int resp=0;resp<num_responses;resp++){
    631631                if(responses[resp]==SurfaceAverageVelMisfitEnum){
    632                         S_input = element->GetInput2(SurfaceAreaEnum);  _assert_(S_input); break;
     632                        S_input = element->GetInput(SurfaceAreaEnum);  _assert_(S_input); break;
    633633                }
    634634        }
     
    867867        basalelement->FindParam(&num_responses,InversionNumCostFunctionsEnum);
    868868        basalelement->FindParam(&responses,NULL,InversionCostFunctionsEnum);
    869         DatasetInput2* weights_input = basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    870         Input2* vx_input      = basalelement->GetInput2(VxEnum);                                               _assert_(vx_input);
    871         Input2* vxobs_input   = basalelement->GetInput2(InversionVxObsEnum);                                   _assert_(vxobs_input);
    872         Input2* vy_input=NULL;
    873         Input2* 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;
    874874        if(domaintype!=Domain2DverticalEnum){
    875                 vy_input      = basalelement->GetInput2(VyEnum);              _assert_(vy_input);
    876                 vyobs_input   = basalelement->GetInput2(InversionVyObsEnum);  _assert_(vyobs_input);
     875                vy_input      = basalelement->GetInput(VyEnum);              _assert_(vy_input);
     876                vyobs_input   = basalelement->GetInput(InversionVyObsEnum);  _assert_(vyobs_input);
    877877        }
    878878        IssmDouble epsvel  = 2.220446049250313e-16;
     
    880880
    881881        /*Get Surface if required by one response*/
    882         Input2* S_input = NULL;
     882        Input* S_input = NULL;
    883883        for(int resp=0;resp<num_responses;resp++){
    884884                if(responses[resp]==SurfaceAverageVelMisfitEnum){
    885                         S_input = element->GetInput2(SurfaceAreaEnum);  _assert_(S_input); break;
     885                        S_input = element->GetInput(SurfaceAreaEnum);  _assert_(S_input); break;
    886886                }
    887887        }
     
    12231223        basalelement->GetVerticesCoordinates(&xyz_list);
    12241224        basalelement->GradientIndexing(&vertexpidlist[0],control_index);
    1225         Input2* rheologyb_input = basalelement->GetInput2(MaterialsRheologyBbarEnum);              _assert_(rheologyb_input);
    1226         DatasetInput2* 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);
    12271227
    12281228        /* Start  looping on the number of gaussian points: */
     
    13121312        basalelement->GetVerticesCoordinates(&xyz_list);
    13131313        basalelement->GradientIndexing(&vertexpidlist[0],control_index);
    1314         Input2* thickness_input = basalelement->GetInput2(ThicknessEnum);             _assert_(thickness_input);
    1315         Input2* vx_input        = basalelement->GetInput2(VxEnum);                    _assert_(vx_input);
    1316         Input2* vy_input        = basalelement->GetInput2(VyEnum);                    _assert_(vy_input);
    1317         Input2* adjointx_input  = basalelement->GetInput2(AdjointxEnum);              _assert_(adjointx_input);
    1318         Input2* adjointy_input  = basalelement->GetInput2(AdjointyEnum);              _assert_(adjointy_input);
    1319         Input2* 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);
    13201320
    13211321        /* Start  looping on the number of gaussian points: */
     
    14091409        element->GetVerticesCoordinates(&xyz_list);
    14101410        element->GradientIndexing(&vertexpidlist[0],control_index);
    1411         Input2* rheology_input = element->GetInput2(MaterialsRheologyBEnum);              _assert_(rheology_input);
    1412         DatasetInput2* 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);
    14131413        /* Start  looping on the number of gaussian points: */
    14141414        Gauss* gauss=element->NewGauss(2);
     
    14751475        element->GetVerticesCoordinates(&xyz_list);
    14761476        element->GradientIndexing(&vertexpidlist[0],control_index);
    1477         Input2* rheology_input  = element->GetInput2(MaterialsRheologyBbarEnum);              _assert_(rheology_input);
    1478         Input2* rheology0_input = element->GetInput2(RheologyBInitialguessEnum);              _assert_(rheology0_input);
    1479         DatasetInput2* 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);
    14801480
    14811481        /* Start  looping on the number of gaussian points: */
     
    15301530        element->GetVerticesCoordinates(&xyz_list);
    15311531        element->GradientIndexing(&vertexpidlist[0],control_index);
    1532         Input2* thickness_input = element->GetInput2(ThicknessEnum);             _assert_(thickness_input);
    1533         Input2* vx_input        = element->GetInput2(VxEnum);                    _assert_(vx_input);
    1534         Input2* vy_input        = NULL;
    1535         Input2* adjointx_input  = element->GetInput2(AdjointxEnum);              _assert_(adjointx_input);
    1536         Input2* adjointy_input  = NULL;
    1537         Input2* 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);
    15381538        if(domaintype!=Domain2DverticalEnum){
    1539                 vy_input        = element->GetInput2(VyEnum);                   _assert_(vy_input);
    1540                 adjointy_input  = element->GetInput2(AdjointyEnum);             _assert_(adjointy_input);
     1539                vy_input        = element->GetInput(VyEnum);                   _assert_(vy_input);
     1540                adjointy_input  = element->GetInput(AdjointyEnum);             _assert_(adjointy_input);
    15411541        }
    15421542        /* Start  looping on the number of gaussian points: */
     
    16251625        basalelement->GetVerticesCoordinates(&xyz_list);
    16261626        basalelement->GradientIndexing(&vertexpidlist[0],control_index);
    1627         Input2* thickness_input = basalelement->GetInput2(ThicknessEnum);             _assert_(thickness_input);
    1628         Input2* vx_input        = basalelement->GetInput2(VxEnum);                    _assert_(vx_input);
    1629         Input2* vy_input        = basalelement->GetInput2(VyEnum);                    _assert_(vy_input);
    1630         Input2* adjointx_input  = basalelement->GetInput2(AdjointxEnum);              _assert_(adjointx_input);
    1631         Input2* adjointy_input  = basalelement->GetInput2(AdjointyEnum);              _assert_(adjointy_input);
    1632         Input2* 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);
    16331633
    16341634        /* Start  looping on the number of gaussian points: */
     
    17151715        /* get the friction law: if 2-Weertman, 11-Schoof, use a special name for the coefficient*/
    17161716        element->FindParam(&frictionlaw, FrictionLawEnum);
    1717         Input2* dragcoefficient_input;
     1717        Input* dragcoefficient_input;
    17181718        switch(frictionlaw) {
    17191719                case 2:
    17201720                case 11:
    1721                         dragcoefficient_input = basalelement->GetInput2(FrictionCEnum); _assert_(dragcoefficient_input);
     1721                        dragcoefficient_input = basalelement->GetInput(FrictionCEnum); _assert_(dragcoefficient_input);
    17221722                        break;
    17231723                default:
    1724                         dragcoefficient_input = basalelement->GetInput2(FrictionCoefficientEnum); _assert_(dragcoefficient_input);
    1725         }
    1726 
    1727         DatasetInput2* 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);
    17281728
    17291729        /* Start  looping on the number of gaussian points: */
     
    17931793        element->GetVerticesCoordinatesBase(&xyz_list_base);
    17941794        element->GradientIndexing(&vertexpidlist[0],control_index);
    1795         Input2* vx_input        = element->GetInput2(VxEnum);                   _assert_(vx_input);
    1796         Input2* vy_input        = element->GetInput2(VyEnum);                   _assert_(vy_input);
    1797         Input2* adjointx_input  = element->GetInput2(AdjointxEnum);             _assert_(adjointx_input);
    1798         Input2* adjointy_input  = element->GetInput2(AdjointyEnum);             _assert_(adjointy_input);
    1799         Input2* vz_input        = NULL;
    1800         Input2* 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;
    18011801        if(domaintype!=Domain2DverticalEnum){
    1802                 vz_input        = element->GetInput2(VzEnum);                   _assert_(vy_input);
    1803                 adjointz_input  = element->GetInput2(AdjointzEnum);             _assert_(adjointz_input);
    1804         }
    1805         Input2* 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);
    18061806
    18071807        /* Start  looping on the number of gaussian points: */
     
    18921892        element->GetVerticesCoordinatesBase(&xyz_list_base);
    18931893        element->GradientIndexing(&vertexpidlist[0],control_index);
    1894         Input2* vx_input        = element->GetInput2(VxEnum);                   _assert_(vx_input);
    1895         Input2* vy_input        = NULL;
    1896         Input2* adjointx_input  = element->GetInput2(AdjointxEnum);             _assert_(adjointx_input);
    1897         Input2* adjointy_input  = NULL;
    1898         Input2* 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);
    18991899        if(domaintype!=Domain2DverticalEnum){
    1900                 vy_input        = element->GetInput2(VyEnum);                   _assert_(vy_input);
    1901                 adjointy_input  = element->GetInput2(AdjointyEnum);             _assert_(adjointy_input);
     1900                vy_input        = element->GetInput(VyEnum);                   _assert_(vy_input);
     1901                adjointy_input  = element->GetInput(AdjointyEnum);             _assert_(adjointy_input);
    19021902        }
    19031903        /* Start  looping on the number of gaussian points: */
     
    19861986        basalelement->GetVerticesCoordinates(&xyz_list);
    19871987        basalelement->GradientIndexing(&vertexpidlist[0],control_index);
    1988         Input2* vx_input        = basalelement->GetInput2(VxEnum);                   _assert_(vx_input);
    1989         Input2* vy_input        = basalelement->GetInput2(VyEnum);                   _assert_(vy_input);
    1990         Input2* adjointx_input  = basalelement->GetInput2(AdjointxEnum);             _assert_(adjointx_input);
    1991         Input2* 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);
    19921992
    19931993        /* get the friction law: 1- Budd, 11-Schoof*/
    19941994        element->FindParam(&frictionlaw, FrictionLawEnum);
    1995         Input2* dragcoeff_input;
     1995        Input* dragcoeff_input;
    19961996        switch(frictionlaw) {
    19971997                case 1:
    1998                         dragcoeff_input = basalelement->GetInput2(FrictionCoefficientEnum); _assert_(dragcoeff_input);
     1998                        dragcoeff_input = basalelement->GetInput(FrictionCoefficientEnum); _assert_(dragcoeff_input);
    19991999                        break;
    20002000                case 2:
    20012001                case 11:
    2002                         dragcoeff_input = basalelement->GetInput2(FrictionCEnum); _assert_(dragcoeff_input);
     2002                        dragcoeff_input = basalelement->GetInput(FrictionCEnum); _assert_(dragcoeff_input);
    20032003                        break;
    20042004                default:
     
    20712071        element->GetVerticesCoordinatesBase(&xyz_list_base);
    20722072        element->GradientIndexing(&vertexpidlist[0],control_index);
    2073         Input2* vx_input        = element->GetInput2(VxEnum);                   _assert_(vx_input);
    2074         Input2* vy_input        = element->GetInput2(VyEnum);                   _assert_(vy_input);
    2075         Input2* adjointx_input  = element->GetInput2(AdjointxEnum);             _assert_(adjointx_input);
    2076         Input2* adjointy_input  = element->GetInput2(AdjointyEnum);             _assert_(adjointy_input);
    2077         Input2* vz_input        = NULL;
    2078         Input2* 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;
    20792079        if(domaintype!=Domain2DverticalEnum){
    2080                 vz_input        = element->GetInput2(VzEnum);                   _assert_(vy_input);
    2081                 adjointz_input  = element->GetInput2(AdjointzEnum);             _assert_(adjointz_input);
     2080                vz_input        = element->GetInput(VzEnum);                   _assert_(vy_input);
     2081                adjointz_input  = element->GetInput(AdjointzEnum);             _assert_(adjointz_input);
    20822082        }
    20832083
     
    21682168        element->GetVerticesCoordinatesBase(&xyz_list_base);
    21692169        element->GradientIndexing(&vertexpidlist[0],control_index);
    2170         Input2* vx_input        = element->GetInput2(VxEnum);                   _assert_(vx_input);
    2171         Input2* vy_input        = NULL;
    2172         Input2* adjointx_input  = element->GetInput2(AdjointxEnum);             _assert_(adjointx_input);
    2173         Input2* 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;
    21742174        if(domaintype!=Domain2DverticalEnum){
    2175                 vy_input        = element->GetInput2(VyEnum);                   _assert_(vy_input);
    2176                 adjointy_input  = element->GetInput2(AdjointyEnum);             _assert_(adjointy_input);
     2175                vy_input        = element->GetInput(VyEnum);                   _assert_(vy_input);
     2176                adjointy_input  = element->GetInput(AdjointyEnum);             _assert_(adjointy_input);
    21772177        }
    21782178        /* Start  looping on the number of gaussian points: */
     
    22602260        basalelement->GetVerticesCoordinates(&xyz_list);
    22612261        basalelement->GradientIndexing(&vertexpidlist[0],control_index);
    2262         Input2* vx_input        = basalelement->GetInput2(VxEnum);          _assert_(vx_input);
    2263         Input2* vy_input        = basalelement->GetInput2(VyEnum);          _assert_(vy_input);
    2264         Input2* adjointx_input  = basalelement->GetInput2(AdjointxEnum);    _assert_(adjointx_input);
    2265         Input2* 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);
    22662266
    22672267        IssmDouble  q_exp;
     
    22762276
    22772277        /*Recover parameters: */
    2278         Input2* qinput = basalelement->GetInput2(FrictionQEnum);
    2279         Input2* cinput = basalelement->GetInput2(FrictionCEnum);
    2280         Input2* Asinput = basalelement->GetInput2(FrictionAsEnum);
    2281         Input2* nInput =basalelement->GetInput2(MaterialsRheologyNEnum);
    2282         Input2* 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); 
    22832283        /* Start  looping on the number of gaussian points: */
    22842284        Gauss* gauss=basalelement->NewGauss(4);
     
    23782378        basalelement->GetVerticesCoordinates(&xyz_list);
    23792379        basalelement->GradientIndexing(&vertexpidlist[0],control_index);
    2380         Input2* thickness_input = basalelement->GetInput2(ThicknessEnum);             _assert_(thickness_input);
    2381         Input2* vx_input        = basalelement->GetInput2(VxEnum);                    _assert_(vx_input);
    2382         Input2* vy_input        = basalelement->GetInput2(VyEnum);                    _assert_(vy_input);
    2383         Input2* adjointx_input  = basalelement->GetInput2(AdjointxEnum);              _assert_(adjointx_input);
    2384         Input2* adjointy_input  = basalelement->GetInput2(AdjointyEnum);              _assert_(adjointy_input);
    2385         Input2* 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);
    23862386
    23872387        /* Start  looping on the number of gaussian points: */
     
    25032503
    25042504        /*Add vx and vy as inputs to the tria element: */
    2505         element->AddInput2(AdjointxEnum,lambdax,element->VelocityInterpolation());
    2506         element->AddInput2(AdjointyEnum,lambday,element->VelocityInterpolation());
    2507         if(domaintype!=Domain2DverticalEnum) element->AddInput2(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());
    25082508
    25092509        element->FindParam(&fe_FS,FlowequationFeFSEnum);
    25102510        if(fe_FS!=LATaylorHoodEnum && fe_FS!=LACrouzeixRaviartEnum)     
    2511          element->AddInput2(AdjointpEnum,lambdap,element->PressureInterpolation());     
     2511         element->AddInput(AdjointpEnum,lambdap,element->PressureInterpolation());     
    25122512
    25132513        /*Free ressources:*/
     
    25602560
    25612561        /*Add vx and vy as inputs to the tria element: */
    2562         element->AddInput2(AdjointxEnum,lambdax,element->GetElementType());
    2563         element->AddInput2(AdjointyEnum,lambday,element->GetElementType());
     2562        element->AddInput(AdjointxEnum,lambdax,element->GetElementType());
     2563        element->AddInput(AdjointyEnum,lambday,element->GetElementType());
    25642564
    25652565        /*Free ressources:*/
  • issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/Analysis.h

    r25317 r25379  
    1616
    1717class Parameters;
    18 class Inputs2;
     18class Inputs;
    1919class IoModel;
    2020class Elements;
     
    3939                virtual void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false)=0;
    4040                virtual int  DofsPerNode(int** doflist,int domaintype,int approximation)=0;
    41                 virtual void UpdateElements(Elements* elements,Inputs2* 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;
    4242                virtual void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum)=0;
    4343
  • issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp

    r25317 r25379  
    2323        return 1;
    2424}/*}}}*/
    25 void Balancethickness2Analysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     25void Balancethickness2Analysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2626
    2727        /*Finite element type*/
     
    2929
    3030        /*Load variables in element*/
    31         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    32         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    33         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    34         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    35         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    36         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    37         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum);
    38         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    39         iomodel->FetchDataToInput(inputs2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);
    40         iomodel->FetchDataToInput(inputs2,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);
    4141
    4242        /*Update elements: */
     
    4545                if(iomodel->my_elements[i]){
    4646                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    47                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     47                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    4848
    4949                        counter++;
     
    8282        /*Retrieve all inputs and parameters*/
    8383        element->GetVerticesCoordinates(&xyz_list);
    84         Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);
    85         Input2* 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);
    8686
    8787        /*Get element characteristic length*/
     
    142142        /*Retrieve all inputs and parameters*/
    143143        element->GetVerticesCoordinates(&xyz_list);
    144         Input2* ms_input   = element->GetInput2(SmbMassBalanceEnum);                _assert_(ms_input);
    145         Input2* mb_input   = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
    146         Input2* 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);
    147147
    148148        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp

    r25317 r25379  
    44#include "../shared/shared.h"
    55#include "../modules/modules.h"
    6 #include "../classes/Inputs2/DatasetInput2.h"
     6#include "../classes/Inputs/DatasetInput.h"
    77
    88/*Model processing*/
     
    7373        return 1;
    7474}/*}}}*/
    75 void BalancethicknessAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     75void BalancethicknessAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    7676
    7777        int    stabilization,finiteelement;
     
    9191                if(iomodel->my_elements[i]){
    9292                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    93                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     93                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    9494                        counter++;
    9595                }
    9696        }
    9797
    98         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    99         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    100         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    101         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    102         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    103         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    104         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum);
    105         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    106         iomodel->FetchDataToInput(inputs2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);
    107         iomodel->FetchDataToInput(inputs2,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);
    108108
    109109        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    110                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    111                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     110                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     111                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    112112        }
    113113}/*}}}*/
     
    172172        element->FindParam(&domaintype,DomainTypeEnum);
    173173        element->FindParam(&stabilization,BalancethicknessStabilizationEnum);
    174         Input2* vxaverage_input=NULL;
    175         Input2* vyaverage_input=NULL;
     174        Input* vxaverage_input=NULL;
     175        Input* vyaverage_input=NULL;
    176176        if(domaintype==Domain2DhorizontalEnum){
    177                 vxaverage_input=element->GetInput2(VxEnum); _assert_(vxaverage_input);
    178                 vyaverage_input=element->GetInput2(VyEnum); _assert_(vyaverage_input);
     177                vxaverage_input=element->GetInput(VxEnum); _assert_(vxaverage_input);
     178                vyaverage_input=element->GetInput(VyEnum); _assert_(vyaverage_input);
    179179        }
    180180        else{
    181                 vxaverage_input=element->GetInput2(VxAverageEnum); _assert_(vxaverage_input);
    182                 vyaverage_input=element->GetInput2(VyAverageEnum); _assert_(vyaverage_input);
     181                vxaverage_input=element->GetInput(VxAverageEnum); _assert_(vxaverage_input);
     182                vyaverage_input=element->GetInput(VyAverageEnum); _assert_(vyaverage_input);
    183183        }
    184184        h = element->CharacteristicLength();
     
    271271        element->GetVerticesCoordinates(&xyz_list);
    272272        element->FindParam(&domaintype,DomainTypeEnum);
    273         Input2* vxaverage_input=NULL;
    274         Input2* vyaverage_input=NULL;
     273        Input* vxaverage_input=NULL;
     274        Input* vyaverage_input=NULL;
    275275        if(domaintype==Domain2DhorizontalEnum){
    276                 vxaverage_input=element->GetInput2(VxEnum); _assert_(vxaverage_input);
    277                 vyaverage_input=element->GetInput2(VyEnum); _assert_(vyaverage_input);
     276                vxaverage_input=element->GetInput(VxEnum); _assert_(vxaverage_input);
     277                vyaverage_input=element->GetInput(VyEnum); _assert_(vyaverage_input);
    278278        }
    279279        else{
    280                 vxaverage_input=element->GetInput2(VxAverageEnum); _assert_(vxaverage_input);
    281                 vyaverage_input=element->GetInput2(VyAverageEnum); _assert_(vyaverage_input);
     280                vxaverage_input=element->GetInput(VxAverageEnum); _assert_(vxaverage_input);
     281                vyaverage_input=element->GetInput(VyAverageEnum); _assert_(vyaverage_input);
    282282        }
    283283
     
    354354        /*Retrieve all inputs and parameters*/
    355355        element->GetVerticesCoordinates(&xyz_list);
    356         Input2* mb_input   = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
    357         Input2* ms_input   = element->GetInput2(SmbMassBalanceEnum);     _assert_(ms_input);
    358         Input2* 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);
    359359
    360360        /*Initialize mb_correction to 0, do not forget!:*/
     
    395395        /*Retrieve all inputs and parameters*/
    396396        element->GetVerticesCoordinates(&xyz_list);
    397         Input2* mb_input   = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
    398         Input2* ms_input   = element->GetInput2(SmbMassBalanceEnum);     _assert_(ms_input);
    399         Input2* 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);
    400400
    401401        /*Initialize mb_correction to 0, do not forget!:*/
     
    457457        element->GetVerticesCoordinates(&xyz_list);
    458458        element->GradientIndexing(&vertexpidlist[0],control_index);
    459         DatasetInput2* weights_input       = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum);  _assert_(weights_input);
    460         Input2* thickness_input            = element->GetInput2(ThicknessEnum);                           _assert_(thickness_input);
    461         Input2* thicknessobs_input         = element->GetInput2(InversionThicknessObsEnum);               _assert_(thicknessobs_input);
    462         Input2* vx_input                   = element->GetInput2(VxEnum);                                  _assert_(vx_input);
    463         Input2* vy_input                   = element->GetInput2(VyEnum);                                  _assert_(vy_input);
    464         Input2* surface_mass_balance_input = element->GetInput2(SmbMassBalanceEnum);          _assert_(surface_mass_balance_input);
    465         Input2* basal_melting_input        = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melting_input);
    466         Input2* 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);
    467467
    468468        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/BalancethicknessSoftAnalysis.cpp

    r25317 r25379  
    1212           _error_("not implemented yet");
    1313}/*}}}*/
    14 void BalancethicknessSoftAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     14void BalancethicknessSoftAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    1515           _error_("not implemented yet");
    1616}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/BalancethicknessSoftAnalysis.h

    r25317 r25379  
    1515                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    1616                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    17                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     17                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    1818                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1919                void CreateConstraints(Constraints* constraints,IoModel* iomodel);
  • issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp

    r25317 r25379  
    2626        return 1;
    2727}/*}}}*/
    28 void BalancevelocityAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     28void BalancevelocityAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2929
    3030        /*Update elements: */
     
    3333                if(iomodel->my_elements[i]){
    3434                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    35                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     35                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    3636                        counter++;
    3737                }
    3838        }
    3939
    40         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    41         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    42         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    43         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    44         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    45         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    46         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum);
    47         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    48         iomodel->FetchDataToInput(inputs2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);
    49         iomodel->FetchDataToInput(inputs2,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);
    5050
    5151        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    52                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    53                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     52                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     53                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    5454        }
    5555}/*}}}*/
     
    9191        /*Retrieve all Inputs and parameters: */
    9292        element->GetVerticesCoordinates(&xyz_list);
    93         Input2* H_input = element->GetInput2(ThicknessEnum); _assert_(H_input);
     93        Input* H_input = element->GetInput(ThicknessEnum); _assert_(H_input);
    9494        h = element->CharacteristicLength();
    9595
     
    182182        /*Retrieve all inputs and parameters*/
    183183        basalelement->GetVerticesCoordinates(&xyz_list);
    184         Input2* ms_input   = basalelement->GetInput2(SmbMassBalanceEnum);          _assert_(ms_input);
    185         Input2* mb_input   = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);
    186         Input2* dhdt_input = basalelement->GetInput2(BalancethicknessThickeningRateEnum);      _assert_(dhdt_input);
    187         Input2* 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);
    188188        IssmDouble h = basalelement->CharacteristicLength();
    189189
  • issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp

    r25317 r25379  
    4040        return 1;
    4141}/*}}}*/
    42 void DamageEvolutionAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     42void DamageEvolutionAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    4343
    4444        int finiteelement;
     
    5454                if(iomodel->my_elements[i]){
    5555                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    56                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     56                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    5757
    5858                        /*Need to know the type of approximation for this element*/
    5959                        if(iomodel->Data("md.flowequation.element_equation")){
    60                                 inputs2->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])));
    6161                        }
    6262                        counter++;
     
    6868        for(int i=0;i<elements->Size();i++){
    6969                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    70                 element->SetElementInput(inputs2,DamageFEnum,0.);
     70                element->SetElementInput(inputs,DamageFEnum,0.);
    7171        }
    7272
    7373
    7474        /*What input do I need to run my damage evolution model?*/
    75         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    76         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum);
    77         if(iomodel->domaintype==Domain3DEnum) iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vz",VzEnum);
    78         iomodel->FetchDataToInput(inputs2,elements,"md.damage.D",DamageDEnum);
    79         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    80         iomodel->FetchDataToInput(inputs2,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);
    8181
    8282}/*}}}*/
     
    139139
    140140        /*Add input*/
    141         element->AddInput2(DamageFEnum,f,element->GetElementType());
     141        element->AddInput(DamageFEnum,f,element->GetElementType());
    142142
    143143        /*Clean up and return*/
     
    174174        element->ComputeDeviatoricStressTensor();
    175175
    176         Input2* principalDevStress1_input = element->GetInput2(DeviatoricStress1Enum);     _assert_(principalDevStress1_input);
    177         Input2* principalDevStress2_input = element->GetInput2(DeviatoricStress2Enum);     _assert_(principalDevStress2_input);
    178 
    179         Input2* 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;
    180180        if(domaintype==Domain2DhorizontalEnum){
    181                 damage_input = element->GetInput2(DamageDbarEnum);      _assert_(damage_input);
     181                damage_input = element->GetInput(DamageDbarEnum);       _assert_(damage_input);
    182182        }
    183183        else{
    184                 damage_input = element->GetInput2(DamageDEnum);   _assert_(damage_input);
     184                damage_input = element->GetInput(DamageDEnum);   _assert_(damage_input);
    185185        }
    186186
     
    222222
    223223        /*Add input*/
    224         element->AddInput2(DamageFEnum,f,element->GetElementType());
     224        element->AddInput(DamageFEnum,f,element->GetElementType());
    225225
    226226        /*Clean up and return*/
     
    250250
    251251        /*retrieve what we need: */
    252         Input2* eps_xx_input  = element->GetInput2(StrainRatexxEnum);     _assert_(eps_xx_input);
    253         Input2* eps_xy_input  = element->GetInput2(StrainRatexyEnum);     _assert_(eps_xy_input);
    254         Input2* eps_yy_input  = element->GetInput2(StrainRateyyEnum);     _assert_(eps_yy_input);
    255         Input2*  n_input=element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);
    256         Input2* damage_input = NULL;
    257         Input2* 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;
    258258        if(domaintype==Domain2DhorizontalEnum){
    259                 damage_input = element->GetInput2(DamageDbarEnum);      _assert_(damage_input);
    260                 B_input=element->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);
     259                damage_input = element->GetInput(DamageDbarEnum);       _assert_(damage_input);
     260                B_input=element->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input);
    261261        }
    262262        else{
    263                 damage_input = element->GetInput2(DamageDEnum);   _assert_(damage_input);
    264                 B_input=element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);
     263                damage_input = element->GetInput(DamageDEnum);   _assert_(damage_input);
     264                B_input=element->GetInput(MaterialsRheologyBEnum); _assert_(B_input);
    265265        }
    266266
     
    297297
    298298        /*Add input*/
    299         element->AddInput2(DamageFEnum,f,P1DGEnum);
     299        element->AddInput(DamageFEnum,f,P1DGEnum);
    300300
    301301        /*Clean up and return*/
     
    337337        }
    338338        /*retrieve what we need: */
    339         Input2* tau_xx_input  = element->GetInput2(DeviatoricStressxxEnum);     _assert_(tau_xx_input);
    340         Input2* tau_xy_input  = element->GetInput2(DeviatoricStressxyEnum);     _assert_(tau_xy_input);
    341         Input2* tau_yy_input  = element->GetInput2(DeviatoricStressyyEnum);     _assert_(tau_yy_input);
    342         Input2* tau_xz_input  = NULL;
    343         Input2* tau_yz_input  = NULL;
    344         Input2* tau_zz_input  = NULL;
    345         Input2* 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;
    346346        if(dim==3){
    347                 tau_xz_input  = element->GetInput2(DeviatoricStressxzEnum);     _assert_(tau_xz_input);
    348                 tau_yz_input  = element->GetInput2(DeviatoricStressyzEnum);     _assert_(tau_yz_input);
    349                 tau_zz_input  = element->GetInput2(DeviatoricStresszzEnum);     _assert_(tau_zz_input);
    350                 stressMaxPrincipal_input = element->GetInput2(StressMaxPrincipalEnum); _assert_(stressMaxPrincipal_input);
    351         }
    352         Input2* 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;
    353353        if(domaintype==Domain2DhorizontalEnum){
    354                 damage_input = element->GetInput2(DamageDbarEnum);      _assert_(damage_input);
     354                damage_input = element->GetInput(DamageDbarEnum);       _assert_(damage_input);
    355355        }
    356356        else{
    357                 damage_input = element->GetInput2(DamageDEnum);   _assert_(damage_input);
     357                damage_input = element->GetInput(DamageDEnum);   _assert_(damage_input);
    358358        }
    359359
     
    416416        }
    417417        /*Add input*/
    418         element->AddInput2(DamageFEnum,f,P1DGEnum);
     418        element->AddInput(DamageFEnum,f,P1DGEnum);
    419419
    420420        /*Clean up and return*/
     
    461461        element->FindParam(&dt,TimesteppingTimeStepEnum);
    462462        element->FindParam(&stabilization,DamageStabilizationEnum);
    463         Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);
    464         Input2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);
    465         Input2* 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;
    466466        if(dim==3){
    467                 vz_input=element->GetInput2(VzEnum); _assert_(vz_input);
     467                vz_input=element->GetInput(VzEnum); _assert_(vz_input);
    468468        }
    469469
     
    644644        }
    645645
    646         Input2* damaged_input = NULL;
    647         Input2* damagef_input = element->GetInput2(DamageFEnum); _assert_(damagef_input);
     646        Input* damaged_input = NULL;
     647        Input* damagef_input = element->GetInput(DamageFEnum); _assert_(damagef_input);
    648648        if(domaintype==Domain2DhorizontalEnum){
    649                 damaged_input = element->GetInput2(DamageDbarEnum); _assert_(damaged_input);
     649                damaged_input = element->GetInput(DamageDbarEnum); _assert_(damaged_input);
    650650        }
    651651        else{
    652                 damaged_input = element->GetInput2(DamageDEnum); _assert_(damaged_input);
     652                damaged_input = element->GetInput(DamageDEnum); _assert_(damaged_input);
    653653        }
    654654
     
    708708        element->FindParam(&domaintype,DomainTypeEnum);
    709709        if(domaintype==Domain2DhorizontalEnum){
    710                 element->AddInput2(DamageDbarEnum,newdamage,element->GetElementType());
     710                element->AddInput(DamageDbarEnum,newdamage,element->GetElementType());
    711711        }
    712712        else{
    713                 element->AddInput2(DamageDEnum,newdamage,element->GetElementType());
     713                element->AddInput(DamageDEnum,newdamage,element->GetElementType());
    714714        }
    715715
     
    744744        /*Retrieve all inputs and parameters*/
    745745        element->GetVerticesCoordinates(&xyz_list);
    746         Input2* vxaverage_input=element->GetInput2(VxEnum); _assert_(vxaverage_input);
    747         Input2* 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);
    748748
    749749        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/DepthAverageAnalysis.cpp

    r25317 r25379  
    1818        return 1;
    1919}/*}}}*/
    20 void DepthAverageAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     20void DepthAverageAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2121
    2222        int counter=0;
     
    2424                if(iomodel->my_elements[i]){
    2525                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    26                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     26                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    2727                        counter++;
    2828                }
     
    3030
    3131        if(iomodel->domaintype==Domain2DverticalEnum){
    32                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     32                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    3333        }
    3434}/*}}}*/
     
    114114        element->GetVerticesCoordinates(&xyz_list);
    115115        element->FindParam(&input_enum,InputToDepthaverageInEnum);
    116         Input2* input = element->GetInput2(input_enum); _assert_(input);
     116        Input* input = element->GetInput(input_enum); _assert_(input);
    117117
    118118        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/analyses/DepthAverageAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp

    r25317 r25379  
    9999        return 1;
    100100}/*}}}*/
    101 void EnthalpyAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     101void EnthalpyAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    102102
    103103        bool dakota_analysis,ismovingfront,isenthalpy;
     
    124124                if(iomodel->my_elements[i]){
    125125                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    126                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     126                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    127127                        counter++;
    128128                }
     
    134134        iomodel->FindConstant(&materialstype,"md.materials.type");
    135135
    136         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    137         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    138         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    139         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    140         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    141         iomodel->FetchDataToInput(inputs2,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);
    142142        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    143                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    144                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    145         }
    146         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    147         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.temperature",TemperatureEnum);
    148         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.waterfraction",WaterfractionEnum);
    149         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.enthalpy",EnthalpyEnum);
    150         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.watercolumn",WatercolumnEnum);
    151         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    152         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    153         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum);
    154         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vz",VzEnum);
    155         InputUpdateFromConstantx(inputs2,elements,0.,VxMeshEnum);
    156         InputUpdateFromConstantx(inputs2,elements,0.,VyMeshEnum);
    157         InputUpdateFromConstantx(inputs2,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);
    158158        if(ismovingfront){
    159                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes
     159                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes
    160160        }
    161161
     
    166166                        break;
    167167                default:
    168                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);
     168                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);
    169169                        break;
    170170        }
    171171
    172172        /*Rheology type*/
    173         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
     173        iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    174174        switch(materialstype){
    175175                case MatenhancediceEnum:
    176                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    177                         iomodel->FetchDataToInput(inputs2,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);
    178178                        break;
    179179                case MatdamageiceEnum:
    180                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
     180                        iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    181181                        break;
    182182                case MatestarEnum:
    183                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum);
    184                         iomodel->FetchDataToInput(inputs2,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);
    185185                        break;
    186186                case MaticeEnum:
    187                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
     187                        iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    188188                        break;
    189189                default:
     
    195195                case 1:
    196196                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    197                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    198                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    199                         iomodel->FetchDataToInput(inputs2,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);
    200200                        if (FrictionCoupling==3){
    201                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     201                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    202202                        else if(FrictionCoupling==4){
    203                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     203                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    204204                        }
    205205                        break;
    206206                case 2:
    207                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    208                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
     207                        iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum);
     208                        iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum);
    209209                        break;
    210210                case 3:
    211211                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    212                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    213                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.As",FrictionAsEnum);
    214                         iomodel->FetchDataToInput(inputs2,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);
    215215                        if (FrictionCoupling==3){
    216                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     216                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    217217                        else if(FrictionCoupling==4){
    218                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     218                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    219219                        }
    220220                        break;
    221221                case 4:
    222                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    223                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    224                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum);
    225                         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    226                         iomodel->FetchDataToInput(inputs2,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);
    227227                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    228228                        break;
    229229                case 5:
    230                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    231                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    232                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum);
    233                         iomodel->FetchDataToInput(inputs2,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);
    234234                        break;
    235235                case 6:
    236                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    237                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
    238                         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    239                         iomodel->FetchDataToInput(inputs2,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);
    240240                        break;
    241241                case 7:
    242242                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    243                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    244                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum);
    245                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    246                         iomodel->FetchDataToInput(inputs2,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);
    247247                        if (FrictionCoupling==3){
    248                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     248                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    249249                        else if(FrictionCoupling==4){
    250                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     250                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    251251                        }
    252252                        break;
    253253                case 9:
    254                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    255                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum);
    256                         InputUpdateFromConstantx(inputs2,elements,1.,FrictionPEnum);
    257                         InputUpdateFromConstantx(inputs2,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);
    258258                        break;
    259259                default:
     
    325325
    326326        /*Get parameters and inputs: */
    327         Input2* pressure_input           = element->GetInput2(PressureEnum);                                                     _assert_(pressure_input);
     327        Input* pressure_input            = element->GetInput(PressureEnum);                                                      _assert_(pressure_input);
    328328
    329329        /*Fetch indices of basal & surface nodes for this finite element*/
     
    407407
    408408        /*retrieve inputs*/
    409         Input2* enthalpy_input       = element->GetInput2(enthalpy_enum);                   _assert_(enthalpy_input);
    410         Input2* pressure_input       = element->GetInput2(PressureEnum);                    _assert_(pressure_input);
    411         Input2* geothermalflux_input = element->GetInput2(BasalforcingsGeothermalfluxEnum); _assert_(geothermalflux_input);
    412         Input2* vx_input             = element->GetInput2(VxEnum);                          _assert_(vx_input);
    413         Input2* vy_input             = element->GetInput2(VyEnum);                          _assert_(vy_input);
    414         Input2* 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);
    415415
    416416        /*Build friction element, needed later: */
     
    511511        int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum;
    512512        if(dt!=0.){
    513                 element->AddInput2(enthalpy_enum,enthalpies,finite_element);
    514                 element->AddInput2(WatercolumnEnum,watercolumns,finite_element);
    515         }
    516         element->AddInput2(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);
    517517
    518518        /*Clean up and return*/
     
    602602        IssmDouble  heatcapacity        = element->FindParam(MaterialsHeatcapacityEnum);
    603603        IssmDouble  thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum);
    604         Input2* vx_input  = element->GetInput2(VxEnum);     _assert_(vx_input);
    605         Input2* vy_input  = element->GetInput2(VyEnum);     _assert_(vy_input);
    606         Input2* vz_input  = element->GetInput2(VzEnum);     _assert_(vz_input);
    607         Input2* vxm_input = element->GetInput2(VxMeshEnum); _assert_(vxm_input);
    608         Input2* vym_input = element->GetInput2(VyMeshEnum); _assert_(vym_input);
    609         Input2* 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);
    610610
    611611        /*Enthalpy diffusion parameter*/
     
    824824        element->FindParam(&dt,TimesteppingTimeStepEnum);
    825825        element->FindParam(&stabilization,ThermalStabilizationEnum);
    826         Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);
    827         Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);
    828         Input2* vz_input=element->GetInput2(VzEnum); _assert_(vz_input);
    829         Input2* enthalpypicard_input=element->GetInput2(EnthalpyPicardEnum); _assert_(enthalpypicard_input);
    830         Input2* pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input);
    831         Input2* 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;
    832832        if(dt>0.){
    833                 enthalpy_input = element->GetInput2(EnthalpyEnum); _assert_(enthalpy_input);
     833                enthalpy_input = element->GetInput(EnthalpyEnum); _assert_(enthalpy_input);
    834834        }
    835835
     
    948948        if(dt==0. && !converged) enthalpy_enum=EnthalpyPicardEnum; // use enthalpy from last iteration
    949949        else enthalpy_enum=EnthalpyEnum; // use enthalpy from last time step
    950         Input2* vx_input             = element->GetInput2(VxEnum);                          _assert_(vx_input);
    951         Input2* vy_input             = element->GetInput2(VyEnum);                          _assert_(vy_input);
    952         Input2* vz_input             = element->GetInput2(VzEnum);                          _assert_(vz_input);
    953         Input2* enthalpy_input           = element->GetInput2(enthalpy_enum);                                    _assert_(enthalpy_input);
    954         Input2* pressure_input           = element->GetInput2(PressureEnum);                                                     _assert_(pressure_input);
    955         Input2* watercolumn_input        = element->GetInput2(WatercolumnEnum);                                                  _assert_(watercolumn_input);
    956         Input2* meltingrate_input        = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum);                                                  _assert_(meltingrate_input);
    957         Input2* 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);
    958958        IssmDouble  rho_ice                      = element->FindParam(MaterialsRhoIceEnum);
    959959
     
    10411041        element->GetVerticesCoordinatesBase(&xyz_list_base);
    10421042        element->FindParam(&dt,TimesteppingTimeStepEnum);
    1043         Input2*      pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input);
     1043        Input*      pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input);
    10441044        IssmDouble  gravity             = element->FindParam(ConstantsGEnum);
    10451045        IssmDouble  rho_water           = element->FindParam(MaterialsRhoSeawaterEnum);
     
    10971097                }
    10981098                int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum;
    1099                 element->AddInput2(WaterfractionDrainageEnum,drainage,finite_element);
     1099                element->AddInput(WaterfractionDrainageEnum,drainage,finite_element);
    11001100
    11011101                xDelete<IssmDouble>(waterfractions);
     
    11311131                }
    11321132                int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum;
    1133                 element->AddInput2(WaterfractionDrainageIntegratedEnum, drainage_int,finite_element);
     1133                element->AddInput(WaterfractionDrainageIntegratedEnum, drainage_int,finite_element);
    11341134
    11351135                xDelete<IssmDouble>(drainage_int);
     
    11551155                }
    11561156                int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum;
    1157                 element->AddInput2(WatercolumnEnum, watercolumn,finite_element);
     1157                element->AddInput(WatercolumnEnum, watercolumn,finite_element);
    11581158
    11591159                xDelete<IssmDouble>(watercolumn);
     
    11921192                }
    11931193                int finite_element = element->GetElementType(); if(finite_element==P1Enum) finite_element = P1DGEnum;
    1194                 element->AddInput2(WaterfractionEnum,waterfractions,finite_element);
    1195                 element->AddInput2(EnthalpyEnum,enthalpies,finite_element);
     1194                element->AddInput(WaterfractionEnum,waterfractions,finite_element);
     1195                element->AddInput(EnthalpyEnum,enthalpies,finite_element);
    11961196
    11971197                xDelete<IssmDouble>(enthalpies);
     
    13201320
    13211321        /*Get parameters and inputs: */
    1322         Input2* enthalpy_input           = element->GetInput2(EnthalpyPicardEnum);                                       _assert_(enthalpy_input);
    1323         Input2* pressure_input           = element->GetInput2(PressureEnum);                                                     _assert_(pressure_input);
    1324         Input2* watercolumn_input        = element->GetInput2(WatercolumnEnum);                                                  _assert_(watercolumn_input);
    1325         Input2* 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);
    13261326
    13271327        /*Fetch indices of basal & surface nodes for this finite element*/
     
    13911391
    13921392        /*Get parameters and inputs: */
    1393         Input2* enthalpy_input    = element->GetInput2(EnthalpyEnum);                            _assert_(enthalpy_input); //TODO: check EnthalpyPicard?
    1394         Input2* pressure_input    = element->GetInput2(PressureEnum);                            _assert_(pressure_input);
    1395         Input2* watercolumn_input = element->GetInput2(WatercolumnEnum);                         _assert_(watercolumn_input);
    1396         Input2* 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);
    13971397
    13981398        /*Fetch indices of basal & surface nodes for this finite element*/
     
    15631563                        //if(waterfraction[i]>1.) _error_("Water fraction >1 found in solution vector");
    15641564                }
    1565                 element->AddInput2(EnthalpyEnum,values,finite_element);
    1566                 element->AddInput2(WaterfractionEnum,waterfraction,finite_element);
    1567                 element->AddInput2(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);
    15681568
    15691569                IssmDouble* n = xNew<IssmDouble>(numnodes);
     
    15851585                        case BuddJackaEnum:
    15861586                                for(i=0;i<numnodes;i++) B[i]=BuddJacka(temperature[i]);
    1587                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element);
     1587                                element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element);
    15881588                                break;
    15891589                        case CuffeyEnum:
    15901590                                for(i=0;i<numnodes;i++) B[i]=Cuffey(temperature[i]);
    1591                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element);
     1591                                element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element);
    15921592                                break;
    15931593                        case CuffeyTemperateEnum:
    15941594                                for(i=0;i<numnodes;i++) B[i]=CuffeyTemperate(temperature[i], waterfraction[i],n[i]);
    1595                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element);
     1595                                element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element);
    15961596                                break;
    15971597                        case PatersonEnum:
    15981598                                for(i=0;i<numnodes;i++) B[i]=Paterson(temperature[i]);
    1599                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element);
     1599                                element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element);
    16001600                                break;
    16011601                        case NyeH2OEnum:
    16021602                                for(i=0;i<numnodes;i++) B[i]=NyeH2O(values[i]);
    1603                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element);
     1603                                element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element);
    16041604                                break;
    16051605                        case NyeCO2Enum:
    16061606                                for(i=0;i<numnodes;i++) B[i]=NyeCO2(values[i]);
    1607                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element);
     1607                                element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element);
    16081608                                break;
    16091609                        case ArrheniusEnum:{
    16101610                                element->GetVerticesCoordinates(&xyz_list);
    16111611                                for(i=0;i<numnodes;i++) B[i]=Arrhenius(temperature[i],surface[i]-xyz_list[i*3+2],n[i]);
    1612                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element);
     1612                                element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element);
    16131613                                break;
    16141614                                }
    16151615                        case LliboutryDuvalEnum:{
    16161616                                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->AddInput2(MaterialsRheologyBEnum,&B[0],finite_element);
     1617                                element->AddInput(MaterialsRheologyBEnum,&B[0],finite_element);
    16181618                                break;
    16191619                                }
     
    16231623        }
    16241624        else{
    1625                 element->AddInput2(EnthalpyPicardEnum,values,finite_element);
     1625                element->AddInput(EnthalpyPicardEnum,values,finite_element);
    16261626        }
    16271627
  • issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.h

    r25317 r25379  
    1818                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1919                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    20                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     20                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2121                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2222
  • issm/trunk-jpl/src/c/analyses/EnumToAnalysis.h

    r25317 r25379  
    1010                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    1111                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    12                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     12                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    1313                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1414                void CreateConstraints(Constraints* constraints,IoModel* iomodel);
  • issm/trunk-jpl/src/c/analyses/EsaAnalysis.cpp

    r25317 r25379  
    1818        return 1;
    1919}/*}}}*/
    20 void EsaAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     20void EsaAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2121
    2222        /*Update elements: */
     
    2525                if(iomodel->my_elements[i]){
    2626                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    27                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     27                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    2828                        counter++;
    2929                }
     
    3131
    3232        /*Create inputs: */
    33         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    34         iomodel->FetchDataToInput(inputs2,elements,"md.esa.deltathickness",EsaDeltathicknessEnum);
     33        iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
     34        iomodel->FetchDataToInput(inputs,elements,"md.esa.deltathickness",EsaDeltathicknessEnum);
    3535
    3636}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/EsaAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp

    r25317 r25379  
    2626}
    2727/*}}}*/
    28 void ExtrapolationAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     28void ExtrapolationAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2929        int    finiteelement;
    3030
     
    3737                if(iomodel->my_elements[i]){
    3838                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    39                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     39                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    4040                        counter++;
    4141                }
    4242        }
    4343        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    44                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    45                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     44                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     45                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    4646        }
    4747}
     
    123123
    124124        /*Retrieve all inputs and parameters*/
    125         Input2* lsf_slopex_input=workelement->GetInput2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
    126         Input2* 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);
    127127        workelement->GetVerticesCoordinates(&xyz_list);
    128128
     
    268268        element->FindParam(&extvar_enum, ExtrapolationVariableEnum);
    269269
    270         Input2* active_input=element->GetInput2(IceMaskNodeActivationEnum); _assert_(active_input);
    271         Input2* 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);
    272272
    273273        Gauss* gauss=element->NewGauss();
  • issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.h

    r25317 r25379  
    1717        void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818        int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19         void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19        void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020        void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/ExtrudeFromBaseAnalysis.cpp

    r25317 r25379  
    1818        return 1;
    1919}/*}}}*/
    20 void ExtrudeFromBaseAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     20void ExtrudeFromBaseAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2121
    2222        int counter=0;
     
    2424                if(iomodel->my_elements[i]){
    2525                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    26                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     26                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    2727                        counter++;
    2828                }
     
    3030
    3131        if(iomodel->domaintype==Domain2DverticalEnum){
    32                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     32                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    3333        }
    3434}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/ExtrudeFromBaseAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/ExtrudeFromTopAnalysis.cpp

    r25317 r25379  
    1818        return 1;
    1919}/*}}}*/
    20 void ExtrudeFromTopAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     20void ExtrudeFromTopAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2121
    2222        int counter=0;
     
    2424                if(iomodel->my_elements[i]){
    2525                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    26                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     26                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    2727                        counter++;
    2828                }
     
    3030
    3131        if(iomodel->domaintype==Domain2DverticalEnum){
    32                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     32                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    3333        }
    3434}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/ExtrudeFromTopAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp

    r25317 r25379  
    5555        return 1;
    5656}/*}}}*/
    57 void FreeSurfaceBaseAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     57void FreeSurfaceBaseAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    5858
    5959        /*Now, is the model 3d? otherwise, do nothing: */
     
    6868                if(iomodel->my_elements[i]){
    6969                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    70                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     70                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    7171                        counter++;
    7272                }
    7373        }
    7474
    75         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    76         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    77         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    78         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum,0.);
    79         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    80         iomodel->FetchDataToInput(inputs2,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);
    8181        if(iomodel->domaindim==3){
    82                 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vz",VzEnum);
     82                iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum);
    8383        }
    8484        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    85                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    86                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     85                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     86                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    8787        }
    8888
     
    9292        switch(basalforcing_model){
    9393                case FloatingMeltRateEnum:
    94                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);
     94                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);
    9595                        break;
    9696                case LinearFloatingMeltRateEnum:
     
    101101                        break;
    102102                case SpatialLinearFloatingMeltRateEnum:
    103                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);
    104                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);
    105                         iomodel->FetchDataToInput(inputs2,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);
    106106                        break;
    107107                case BasalforcingsPicoEnum:
    108                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
    109                         iomodel->FetchDataToInput(inputs2,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);
    110110                        break;
    111111                case BasalforcingsIsmip6Enum:
    112                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
     112                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
    113113                        break;
    114114                case BeckmannGoosseFloatingMeltRateEnum:
    115                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
    116                         iomodel->FetchDataToInput(inputs2,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);
    117117                        break;
    118118                default:
     
    176176        basalelement->FindParam(&dt,TimesteppingTimeStepEnum);
    177177        basalelement->FindParam(&stabilization,MasstransportStabilizationEnum);
    178         Input2* vx_input=basalelement->GetInput2(VxEnum); _assert_(vx_input);
    179         Input2* vy_input=NULL;
    180         if(dim>1){vy_input = basalelement->GetInput2(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);}
    181181        h = basalelement->CharacteristicLength();
    182182
     
    307307        basalelement->GetVerticesCoordinates(&xyz_list);
    308308        basalelement->FindParam(&dt,TimesteppingTimeStepEnum);
    309         Input2* groundedice_input   = basalelement->GetInput2(MaskOceanLevelsetEnum);              _assert_(groundedice_input);
    310         Input2* gmb_input           = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum);  _assert_(gmb_input);
    311         Input2* fmb_input           = basalelement->GetInput2(BasalforcingsFloatingiceMeltingRateEnum);  _assert_(fmb_input);
    312         Input2* base_input          = basalelement->GetInput2(BaseEnum);                                 _assert_(base_input);
    313         Input2* 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;
    314314        switch(dim){
    315                 case 1: vz_input = basalelement->GetInput2(VyEnum); _assert_(vz_input); break;
    316                 case 2: vz_input = basalelement->GetInput2(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;
    317317                default: _error_("not implemented");
    318318        }
     
    365365
    366366                int             numnodes = element->GetNumberOfNodes();
    367                 Input2* groundedice_input = element->GetInput2(MaskOceanLevelsetEnum);  _assert_(groundedice_input);
    368                 Input2* onbase_input       = element->GetInput2(MeshVertexonbaseEnum);          _assert_(onbase_input);
    369                 Input2* 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);
    370370
    371371                Gauss* gauss=element->NewGauss();
  • issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp

    r25317 r25379  
    5555        return 1;
    5656}/*}}}*/
    57 void FreeSurfaceTopAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     57void FreeSurfaceTopAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    5858
    5959        /*Now, is the model 3d? otherwise, do nothing: */
     
    7171                if(iomodel->my_elements[i]){
    7272                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    73                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     73                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    7474                        counter++;
    7575                }
    7676        }
    7777
    78         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    79         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    80         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    81         iomodel->FetchDataToInput(inputs2,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);
    8282        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    83                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    84                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     83                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     84                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    8585        }
    8686        if(iomodel->domaindim==3){
    87                 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vz",VzEnum);
     87                iomodel->FetchDataToInput(inputs,elements,"md.initialization.vz",VzEnum);
    8888        }
    8989        switch(smb_model){
    9090                case SMBforcingEnum:
    91                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.mass_balance",SmbMassBalanceEnum,0.);
     91                        iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum,0.);
    9292                        break;
    9393                default:
     
    152152        topelement->FindParam(&dt,TimesteppingTimeStepEnum);
    153153        topelement->FindParam(&stabilization,MasstransportStabilizationEnum);
    154         Input2* vx_input=topelement->GetInput2(VxEnum); _assert_(vx_input);
    155         Input2* vy_input=NULL;
    156         if(dim>1){vy_input = topelement->GetInput2(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);}
    157157        h = topelement->CharacteristicLength();
    158158
     
    286286        topelement->GetVerticesCoordinates(&xyz_list);
    287287        topelement->FindParam(&dt,TimesteppingTimeStepEnum);
    288         Input2* ms_input      = topelement->GetInput2(SmbMassBalanceEnum);  _assert_(ms_input);
    289         Input2* surface_input = topelement->GetInput2(SurfaceEnum);                     _assert_(surface_input);
    290         Input2* 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;
    291291        switch(dim){
    292                 case 1: vz_input = topelement->GetInput2(VyEnum); _assert_(vz_input); break;
    293                 case 2: vz_input = topelement->GetInput2(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;
    294294                default: _error_("not implemented");
    295295        }
  • issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp

    r25317 r25379  
    2424        return 1;
    2525}/*}}}*/
    26 void GLheightadvectionAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     26void GLheightadvectionAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2727
    2828        /*Update elements: */
     
    3131                if(iomodel->my_elements[i]){
    3232                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    33                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     33                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    3434                        counter++;
    3535                }
     
    3737
    3838        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    39                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    40                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    41         }
    42         iomodel->FetchDataToInput(inputs2,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);
    4343}/*}}}*/
    4444void GLheightadvectionAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
     
    7171        IssmDouble vel,vx,vy;
    7272        IssmDouble* xyz_list      = NULL;
    73         Input2* vx_input           = NULL;
    74         Input2* vy_input           = NULL;
    75         Input2* bc_input           = NULL;
     73        Input* vx_input           = NULL;
     74        Input* vy_input           = NULL;
     75        Input* bc_input           = NULL;
    7676
    7777        /*Get problem dimension*/
     
    9595        /*Retrieve all inputs and parameters*/
    9696        basalelement->GetVerticesCoordinates(&xyz_list);
    97         vx_input=basalelement->GetInput2(VxEnum); _assert_(vx_input);
    98         vy_input=basalelement->GetInput2(VyEnum); _assert_(vy_input);
    99         bc_input=basalelement->GetInput2(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);
    100100
    101101        IssmDouble h = basalelement->CharacteristicLength();
  • issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/GiaAnalysis.cpp

    r25317 r25379  
    1818        return 1;
    1919}/*}}}*/
    20 void GiaAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     20void GiaAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2121
    2222        int giamodel=0;
     
    2828                if(iomodel->my_elements[i]){
    2929                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    30                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     30                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    3131                        counter++;
    3232                }
     
    3636        iomodel->FetchData(&giamodel,"md.gia.model");
    3737        if(giamodel==1){ //GiaIvins
    38                 iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    39                 iomodel->FetchDataToInput(inputs2,elements,"md.gia.mantle_viscosity",GiaMantleViscosityEnum);
    40                 iomodel->FetchDataToInput(inputs2,elements,"md.gia.lithosphere_thickness",GiaLithosphereThicknessEnum);
    41                 iomodel->FetchDataToInput(inputs2,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);
    4242        }
    4343        else if(giamodel==2){ //GiaCaron: not implemneted yet
     
    4545        else if(giamodel==3){
    4646                /*take Ngia and Ugia from the offline models and plug into the element inputs:*/
    47                 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.gia.Ngia",GiaMmeNgiaEnum);
    48                 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.gia.Ugia",GiaMmeUgiaEnum);
     47                iomodel->FetchDataToDatasetInput(inputs,elements,"md.gia.Ngia",GiaMmeNgiaEnum);
     48                iomodel->FetchDataToDatasetInput(inputs,elements,"md.gia.Ugia",GiaMmeUgiaEnum);
    4949        }
    5050}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/GiaAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp

    r25317 r25379  
    3434        parameters->AddObject(new IntParam(HydrologydcEplThickCompEnum,eplthickcomp));
    3535}/*}}}*/
    36 void HydrologyDCEfficientAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     36void HydrologyDCEfficientAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    3737
    3838        bool   isefficientlayer;
     
    5252                if(iomodel->my_elements[i]){
    5353                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    54                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     54                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    5555                        counter++;
    5656                }
    5757        }
    58         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    59         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    60         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    61         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.epl_head",EplHeadSubstepEnum);
    62         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.sediment_head",SedimentHeadSubstepEnum);
    63         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.epl_thickness",HydrologydcEplThicknessSubstepEnum);
    64         iomodel->FetchDataToInput(inputs2,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);
    6565        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    66                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    67                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     66                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     67                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    6868        }
    6969}/*}}}*/
     
    211211        basalelement->GetVerticesCoordinates(&xyz_list);
    212212        basalelement->FindParam(&dt,TimesteppingTimeStepEnum);
    213         Input2* epl_thick_input = basalelement->GetInput2(HydrologydcEplThicknessSubstepEnum); _assert_(epl_thick_input);
     213        Input* epl_thick_input = basalelement->GetInput(HydrologydcEplThicknessSubstepEnum); _assert_(epl_thick_input);
    214214
    215215        /* Start  looping on the number of gaussian points: */
     
    291291
    292292        IssmDouble *xyz_list             = NULL;
    293         Input2     *old_wh_input         = NULL;
    294         Input2     *dummy_input          = NULL;
    295         Input2     *surface_runoff_input = NULL;
     293        Input     *old_wh_input         = NULL;
     294        Input     *dummy_input          = NULL;
     295        Input     *surface_runoff_input = NULL;
    296296
    297297        /*Fetch number of nodes and dof for this finite element*/
     
    308308        basalelement ->FindParam(&smb_model,SmbEnum);
    309309
    310         Input2* epl_thick_input  = basalelement->GetInput2(HydrologydcEplThicknessSubstepEnum); _assert_(epl_thick_input);
    311         Input2* sed_head_input   = basalelement->GetInput2(SedimentHeadSubstepEnum); _assert_(sed_head_input);
    312         Input2* basal_melt_input = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melt_input);
    313         Input2* 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);
    314314
    315315        if(dt!= 0.){
    316                 old_wh_input = basalelement->GetInput2(EplHeadOldEnum);            _assert_(old_wh_input);
     316                old_wh_input = basalelement->GetInput(EplHeadOldEnum);            _assert_(old_wh_input);
    317317        }
    318318        if(smb_model==SMBgradientscomponentsEnum){
     
    323323                if(smbsubstepping==1){
    324324                        //no substeping for the smb we take the result from there
    325                         dummy_input = basalelement->GetInput2(SmbRunoffEnum); _assert_(dummy_input);
     325                        dummy_input = basalelement->GetInput(SmbRunoffEnum); _assert_(dummy_input);
    326326                }
    327327                else if(smbsubstepping>1 && smbsubstepping<=hydrologysubstepping){
    328328                        //finer hydro stepping, we take the value at the needed time
    329                         dummy_input = basalelement->GetInput2(SmbRunoffTransientEnum, time); _assert_(dummy_input);
     329                        dummy_input = basalelement->GetInput(SmbRunoffTransientEnum, time); _assert_(dummy_input);
    330330                }
    331331                else{
    332332                        //finer stepping in smb, we average the runoff from transient input
    333333                        basalelement->FindParam(&smb_averaging,SmbAveragingEnum);
    334                         dummy_input = basalelement->GetInput2(SmbRunoffTransientEnum,time-dt,time,smb_averaging); _assert_(dummy_input);
    335                 }
    336                 surface_runoff_input=xDynamicCast<Input2*>(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);
    337337        }
    338338
     
    422422        }
    423423        /*Add input to the element: */
    424         element->AddBasalInput2(EplHeadSubstepEnum,eplHeads,P1Enum);
     424        element->AddBasalInput(EplHeadSubstepEnum,eplHeads,P1Enum);
    425425
    426426        /*Free ressources:*/
     
    435435
    436436/*Intermediaries*/
    437 IssmDouble HydrologyDCEfficientAnalysis::EplStoring(Element* element,Gauss* gauss, Input2* epl_thick_input){/*{{{*/
     437IssmDouble HydrologyDCEfficientAnalysis::EplStoring(Element* element,Gauss* gauss, Input* epl_thick_input){/*{{{*/
    438438        IssmDouble epl_storing;
    439439        IssmDouble epl_thickness;
     
    446446        return epl_storing;
    447447}/*}}}*/
    448 IssmDouble HydrologyDCEfficientAnalysis::EplTransmitivity(Element* element,Gauss* gauss, Input2* epl_thick_input){/*{{{*/
     448IssmDouble HydrologyDCEfficientAnalysis::EplTransmitivity(Element* element,Gauss* gauss, Input* epl_thick_input){/*{{{*/
    449449        IssmDouble epl_transmitivity;
    450450        IssmDouble epl_thickness;
     
    511511        return transfer;
    512512}/*}}}*/
    513 IssmDouble HydrologyDCEfficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input2* sed_head_input){/*{{{*/
     513IssmDouble HydrologyDCEfficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* sed_head_input){/*{{{*/
    514514
    515515        int transfermethod;
     
    634634                        }
    635635                }
    636                 element->AddInput2(HydrologydcEplThicknessSubstepEnum,thickness,element->GetElementType());
     636                element->AddInput(HydrologydcEplThicknessSubstepEnum,thickness,element->GetElementType());
    637637                xDelete<IssmDouble>(thickness);
    638638                xDelete<IssmDouble>(eplhead);
     
    724724                }
    725725        }
    726         element->AddBasalInput2(HydrologydcEplThicknessSubstepEnum,epl_thickness,basalelement->GetElementType());
     726        element->AddBasalInput(HydrologydcEplThicknessSubstepEnum,epl_thickness,basalelement->GetElementType());
    727727
    728728        if(domaintype!=Domain2DhorizontalEnum){
  • issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.h

    r25317 r25379  
    99#include "./Analysis.h"
    1010class Node;
    11 class Input2;
     11class Input;
    1212class HydrologyDCEfficientAnalysis: public Analysis{
    1313
     
    1616                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    1717                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    18                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     18                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    1919                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    2020                void CreateConstraints(Constraints* constraints,IoModel* iomodel);
     
    3535
    3636                /*Intermediaries*/
    37                 IssmDouble EplStoring(Element* element,Gauss* gauss, Input2* epl_thick_input);
    38                 IssmDouble EplTransmitivity(Element* element,Gauss* gauss, Input2* 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);
    3939                void GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode);
    4040                IssmDouble GetHydrologyKMatrixTransfer(Element* element);
    41                 IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input2* sed_head_input);
     41                IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* sed_head_input);
    4242                void ComputeEPLThickness(FemModel* femmodel);
    4343                void HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask, Vector<IssmDouble>* recurence, Element* element);
  • issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp

    r25317 r25379  
    55#include "../shared/shared.h"
    66#include "../modules/modules.h"
    7 #include "../classes/Inputs2/TransientInput2.h"
     7#include "../classes/Inputs/TransientInput.h"
    88
    99/*Model processing*/
     
    7979  iomodel->DeleteData(&requestedoutputs,numoutputs,"md.hydrology.requested_outputs");
    8080}/*}}}*/
    81 void HydrologyDCInefficientAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     81void HydrologyDCInefficientAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    8282
    8383        bool   isefficientlayer;
     
    9898                if(iomodel->my_elements[i]){
    9999                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    100                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     100                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    101101                        counter++;
    102102                }
    103103        }
    104         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    105         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    106         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    107         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    108         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.basal_moulin_input",HydrologydcBasalMoulinInputEnum);
    109         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.sediment_head",SedimentHeadSubstepEnum);
    110         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.sediment_transmitivity",HydrologydcSedimentTransmitivityEnum);
    111         iomodel->FetchDataToInput(inputs2,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);
    112112        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    113                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    114                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     113                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     114                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    115115        }
    116116        if(isefficientlayer){
    117                 iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.mask_eplactive_node",HydrologydcMaskEplactiveNodeEnum);
    118                 iomodel->FetchDataToInput(inputs2,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);
    119119        }
    120120
     
    205205        }
    206206
    207         basalelement->GetInput2Value(&thawed_element,HydrologydcMaskThawedEltEnum);
     207        basalelement->GetInputValue(&thawed_element,HydrologydcMaskThawedEltEnum);
    208208
    209209        /*Check that all nodes are active, else return empty matrix*/
     
    235235        basalelement ->FindParam(&dt,TimesteppingTimeStepEnum);
    236236        basalelement ->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
    237         Input2* SedTrans_input = basalelement->GetInput2(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input);
    238         Input2* sed_head_input = basalelement->GetInput2(SedimentHeadSubstepEnum);
    239         Input2* 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);
    240240
    241241        /*Transfer related Inputs*/
    242242        if(isefficientlayer){
    243                 basalelement->GetInput2Value(&active_element,HydrologydcMaskEplactiveEltEnum);
     243                basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum);
    244244        }
    245245        /* Start  looping on the number of gaussian points: */
     
    308308        }
    309309
    310         basalelement->GetInput2Value(&thawed_element,HydrologydcMaskThawedEltEnum);
     310        basalelement->GetInputValue(&thawed_element,HydrologydcMaskThawedEltEnum);
    311311
    312312        /*Check that all nodes are active, else return empty matrix*/
     
    329329
    330330        IssmDouble *xyz_list             = NULL;
    331         Input2     *active_element_input = NULL;
    332         Input2     *old_wh_input         = NULL;
    333         Input2     *dummy_input          = NULL;
    334         Input2     *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;
    335335
    336336        /*Fetch number of nodes and dof for this finite element*/
     
    347347        basalelement->FindParam(&smb_model,SmbEnum);
    348348
    349         Input2* sed_head_input   = basalelement->GetInput2(SedimentHeadSubstepEnum);
    350         Input2* epl_head_input   = basalelement->GetInput2(EplHeadSubstepEnum);
    351         Input2* base_input       = basalelement->GetInput2(BaseEnum);
    352         Input2* basal_melt_input = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melt_input);
    353         Input2* 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);
    354354
    355355        if(dt!= 0.){
    356                 old_wh_input = basalelement->GetInput2(SedimentHeadOldEnum); _assert_(old_wh_input);
     356                old_wh_input = basalelement->GetInput(SedimentHeadOldEnum); _assert_(old_wh_input);
    357357        }
    358358        if(smb_model==SMBgradientscomponentsEnum){
     
    363363                if(smbsubstepping==1){
    364364                        //no substeping for the smb we take the result from there
    365                         dummy_input = basalelement->GetInput2(SmbRunoffEnum); _assert_(dummy_input);
     365                        dummy_input = basalelement->GetInput(SmbRunoffEnum); _assert_(dummy_input);
    366366                }
    367367                else if(smbsubstepping>1 && smbsubstepping<=hydrologysubstepping){
    368368                        //finer hydro stepping, we take the value at the needed time
    369                         dummy_input = basalelement->GetInput2(SmbRunoffTransientEnum, time); _assert_(dummy_input);
     369                        dummy_input = basalelement->GetInput(SmbRunoffTransientEnum, time); _assert_(dummy_input);
    370370                }
    371371                else{
    372372                        //finer stepping in smb, we average the runoff from transient input
    373373                        basalelement->FindParam(&smb_averaging,SmbAveragingEnum);
    374                         dummy_input = basalelement->GetInput2(SmbRunoffTransientEnum,time-dt,time,smb_averaging); _assert_(dummy_input);
    375                 }
    376                 surface_runoff_input=xDynamicCast<Input2*>(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);
    377377        }
    378378
    379379        /*Transfer related Inputs*/
    380380        if(isefficientlayer){
    381                 basalelement->GetInput2Value(&active_element,HydrologydcMaskEplactiveEltEnum);
     381                basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum);
    382382        }
    383383
     
    528528
    529529        /*Add input to the element: */
    530         element->AddBasalInput2(SedimentHeadSubstepEnum,values,P1Enum);
    531         element->AddBasalInput2(EffectivePressureSubstepEnum,pressure,P1Enum);
    532         element->AddBasalInput2(SedimentHeadResidualEnum,residual,P1Enum);
     530        element->AddBasalInput(SedimentHeadSubstepEnum,values,P1Enum);
     531        element->AddBasalInput(EffectivePressureSubstepEnum,pressure,P1Enum);
     532        element->AddBasalInput(SedimentHeadResidualEnum,residual,P1Enum);
    533533
    534534        /*Free ressources:*/
     
    547547}/*}}}*/
    548548/*Intermediaries*/
    549 IssmDouble HydrologyDCInefficientAnalysis::SedimentStoring(Element* element,Gauss* gauss,Input2* sed_head_input, Input2* base_input){/*{{{*/
     549IssmDouble HydrologyDCInefficientAnalysis::SedimentStoring(Element* element,Gauss* gauss,Input* sed_head_input, Input* base_input){/*{{{*/
    550550        int unconf_scheme;
    551551        IssmDouble expfac;
     
    577577        return sediment_storing;
    578578}/*}}}*/
    579 IssmDouble HydrologyDCInefficientAnalysis::SedimentTransmitivity(Element* element,Gauss* gauss,Input2* sed_head_input, Input2* base_input,Input2* SedTrans_input){/*{{{*/
     579IssmDouble HydrologyDCInefficientAnalysis::SedimentTransmitivity(Element* element,Gauss* gauss,Input* sed_head_input, Input* base_input,Input* SedTrans_input){/*{{{*/
    580580        int unconf_scheme;
    581581        IssmDouble sediment_transmitivity;
     
    664664        return transfer;
    665665}/*}}}*/
    666 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input2* epl_head_input){/*{{{*/
     666IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_head_input){/*{{{*/
    667667
    668668        int transfermethod;
     
    696696                element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
    697697
    698                 Input2* input=element->GetInput2(HydrologydcMaskEplactiveNodeEnum); _assert_(input);
     698                Input* input=element->GetInput(HydrologydcMaskEplactiveNodeEnum); _assert_(input);
    699699                if(input->GetInputMax()>0.){
    700700                        element_active = true;
     
    703703                        element_active = false;
    704704                }
    705                 element->SetBoolInput(element->inputs2,HydrologydcMaskEplactiveEltEnum,element_active);
     705                element->SetBoolInput(element->inputs,HydrologydcMaskEplactiveEltEnum,element_active);
    706706        }
    707707}/*}}}*/
     
    756756                element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
    757757
    758                 Input2* input=element->GetInput2(HydrologydcMaskThawedNodeEnum); _assert_(input);
     758                Input* input=element->GetInput(HydrologydcMaskThawedNodeEnum); _assert_(input);
    759759                if(input->GetInputMax()>0.){
    760760                        element_active = true;
     
    763763                        element_active = false;
    764764                }
    765                 element->SetBoolInput(element->inputs2,HydrologydcMaskThawedEltEnum,element_active);
     765                element->SetBoolInput(element->inputs,HydrologydcMaskThawedEltEnum,element_active);
    766766        }
    767767}/*}}}*/
     
    791791        /*Pass the activity mask from elements to nodes*/
    792792        basalelement->GetInputListOnVertices(&active[0],HydrologydcMaskThawedNodeEnum);
    793         basalelement->GetInput2Value(&active_element,HydrologydcMaskThawedEltEnum);
     793        basalelement->GetInputValue(&active_element,HydrologydcMaskThawedEltEnum);
    794794
    795795        for(int i=0;i<numnodes;i++) flag+=active[i];
  • issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h

    r25317 r25379  
    99#include "./Analysis.h"
    1010class Node;
    11 class Input2;
     11class Input;
    1212class HydrologyDCInefficientAnalysis: public Analysis{
    1313
     
    1616                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    1717                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    18                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     18                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    1919                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    2020                void CreateConstraints(Constraints* constraints,IoModel* iomodel);
     
    3333
    3434                /*Intermediaries*/
    35                 IssmDouble SedimentStoring(Element* element, Gauss* gauss, Input2* sed_head_input, Input2* base_input);
    36                 IssmDouble SedimentTransmitivity(Element* element,Gauss* gauss,Input2* 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);
    3737                void GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode);
    3838                IssmDouble GetHydrologyKMatrixTransfer(Element* element);
    39                 IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input2* epl_head_input);
     39                IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_head_input);
    4040                void ElementizeEplMask(FemModel* femmodel);
    4141                void HydrologyIDSGetMask(Vector<IssmDouble>* vec_mask, Element* element);
  • issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp

    r25317 r25379  
    107107        return 1;
    108108}/*}}}*/
    109 void HydrologyGlaDSAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     109void HydrologyGlaDSAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    110110
    111111        /*Fetch data needed: */
     
    121121                if(iomodel->my_elements[i]){
    122122                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    123                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     123                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    124124                        counter++;
    125125                }
    126126        }
    127127
    128         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    129         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    130         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.bed",BedEnum);
    131         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);
    132         iomodel->FetchDataToInput(inputs2,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);
    133133        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    134                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    135                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    136         }
    137         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    138         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    139         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.bump_height",HydrologyBumpHeightEnum);
    140         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.sheet_conductivity",HydrologySheetConductivityEnum);
    141         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.neumannflux",HydrologyNeumannfluxEnum);
    142         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.moulin_input",HydrologyMoulinInputEnum);
    143         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.watercolumn",HydrologySheetThicknessEnum);
    144         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.hydraulic_potential",HydraulicPotentialEnum);
    145         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    146         iomodel->FetchDataToInput(inputs2,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);
    147147        iomodel->FindConstant(&frictionlaw,"md.friction.law");
    148148
     
    150150        switch(frictionlaw){
    151151                case 1:
    152                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    153                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    154                         iomodel->FetchDataToInput(inputs2,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);
    155155                        break;
    156156                case 8:
    157                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
     157                        iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    158158                        break;
    159159                default:
     
    249249        IssmDouble g         = element->FindParam(ConstantsGEnum);
    250250        IssmDouble e_v       = element->FindParam(HydrologyEnglacialVoidRatioEnum);
    251         Input2* k_input   = element->GetInput2(HydrologySheetConductivityEnum);_assert_(k_input);
    252         Input2* phi_input = element->GetInput2(HydraulicPotentialEnum);      _assert_(phi_input);
    253         Input2* h_input   = element->GetInput2(HydrologySheetThicknessEnum); _assert_(h_input);
    254         Input2* H_input      = element->GetInput2(ThicknessEnum); _assert_(H_input);
    255         Input2* b_input      = element->GetInput2(BedEnum); _assert_(b_input);
    256         Input2* B_input      = element->GetInput2(MaterialsRheologyBEnum);         _assert_(B_input);
    257         Input2* 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);
    258258
    259259        /* Start  looping on the number of gaussian points: */
     
    349349        IssmDouble g         = element->FindParam(ConstantsGEnum);
    350350        IssmDouble e_v       = element->FindParam(HydrologyEnglacialVoidRatioEnum);
    351         Input2* hr_input     = element->GetInput2(HydrologyBumpHeightEnum);_assert_(hr_input);
    352         Input2* vx_input     = element->GetInput2(VxEnum);_assert_(vx_input);
    353         Input2* vy_input     = element->GetInput2(VyEnum);_assert_(vy_input);
    354         Input2* h_input      = element->GetInput2(HydrologySheetThicknessEnum);_assert_(h_input);
    355         Input2* H_input      = element->GetInput2(ThicknessEnum); _assert_(H_input);
    356         Input2* b_input      = element->GetInput2(BedEnum); _assert_(b_input);
    357         Input2* G_input      = element->GetInput2(BasalforcingsGeothermalfluxEnum);_assert_(G_input);
    358         Input2* m_input      = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum);_assert_(m_input);
    359         Input2* B_input      = element->GetInput2(MaterialsRheologyBEnum);         _assert_(B_input);
    360         Input2* n_input      = element->GetInput2(MaterialsRheologyNEnum);         _assert_(n_input);
    361         Input2* phiold_input = element->GetInput2(HydraulicPotentialOldEnum);      _assert_(phiold_input);
    362         Input2* 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);
    363363
    364364        /*Build friction element, needed later: */
     
    486486        IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum);
    487487        IssmDouble g         = element->FindParam(ConstantsGEnum);
    488         Input2* hr_input = element->GetInput2(HydrologyBumpHeightEnum);_assert_(hr_input);
    489         Input2* vx_input = element->GetInput2(VxEnum);_assert_(vx_input);
    490         Input2* vy_input = element->GetInput2(VyEnum);_assert_(vy_input);
    491         Input2* H_input  = element->GetInput2(ThicknessEnum); _assert_(H_input);
    492         Input2* b_input  = element->GetInput2(BedEnum); _assert_(b_input);
    493         Input2* hold_input  = element->GetInput2(HydrologySheetThicknessOldEnum);_assert_(hold_input);
    494         Input2* B_input  = element->GetInput2(MaterialsRheologyBEnum);         _assert_(B_input);
    495         Input2* n_input  = element->GetInput2(MaterialsRheologyNEnum);         _assert_(n_input);
    496         Input2* 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);
    497497
    498498        /* Start  looping on the number of gaussian points: */
     
    539539        }
    540540
    541         element->AddInput2(HydrologySheetThicknessEnum,h_new,P1Enum);
     541        element->AddInput(HydrologySheetThicknessEnum,h_new,P1Enum);
    542542
    543543        /*Clean up and return*/
     
    569569        IssmDouble  rho_water = element->FindParam(MaterialsRhoFreshwaterEnum);
    570570        IssmDouble  g         = element->FindParam(ConstantsGEnum);
    571         Input2* H_input   = element->GetInput2(ThicknessEnum); _assert_(H_input);
    572         Input2* b_input   = element->GetInput2(BedEnum); _assert_(b_input);
    573         Input2* 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);
    574574
    575575        /* Start  looping on the number of gaussian points: */
     
    599599        }
    600600
    601         element->AddInput2(EffectivePressureEnum,N,element->FiniteElement());
     601        element->AddInput(EffectivePressureEnum,N,element->FiniteElement());
    602602
    603603        /*Clean up and return*/
  • issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/HydrologyPismAnalysis.cpp

    r25317 r25379  
    2222        return 0;
    2323}/*}}}*/
    24 void HydrologyPismAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     24void HydrologyPismAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2525
    2626        /*Fetch data needed: */
     
    3232
    3333        /*Add input to elements*/
    34         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    35         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    36         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    37         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.drainage_rate",HydrologyDrainageRateEnum);
    38         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.watercolumn_max",HydrologyWatercolumnMaxEnum);
    39         iomodel->FetchDataToInput(inputs2,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.);
    4040}/*}}}*/
    4141void HydrologyPismAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
     
    132132        /* Divide by connectivity, add degree of channelization as an input */
    133133        /*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->AddInput2(WatercolumnEnum,&watercolumn[0],P1DGEnum);
     134        element->AddInput(WatercolumnEnum,&watercolumn[0],P1DGEnum);
    135135
    136136        /*Clean up and return*/
  • issm/trunk-jpl/src/c/analyses/HydrologyPismAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.cpp

    r25317 r25379  
    8080        return 1;
    8181}/*}}}*/
    82 void HydrologyShaktiAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     82void HydrologyShaktiAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    8383
    8484        /*Fetch data needed: */
     
    9494                if(iomodel->my_elements[i]){
    9595                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    96                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     96                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    9797                        counter++;
    9898                }
    9999        }
    100100
    101         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    102         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
     101        iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum);
     102        iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum);
    103103        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    104                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    105                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    106         }
    107         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    108         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    109         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    110         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);
    111         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.head",HydrologyHeadEnum);
    112         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.gap_height",HydrologyGapHeightEnum);
    113         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.englacial_input",HydrologyEnglacialInputEnum);
    114         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.moulin_input",HydrologyMoulinInputEnum);
    115         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.bump_spacing",HydrologyBumpSpacingEnum);
    116         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.bump_height",HydrologyBumpHeightEnum);
    117         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.reynolds",HydrologyReynoldsEnum);
    118         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.neumannflux",HydrologyNeumannfluxEnum);
    119         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    120         iomodel->FetchDataToInput(inputs2,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);
    121121        iomodel->FindConstant(&frictionlaw,"md.friction.law");
    122122
     
    124124        switch(frictionlaw){
    125125                case 1:
    126                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    127                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    128                         iomodel->FetchDataToInput(inputs2,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);
    129129                        break;
    130130                case 8:
    131                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
     131                        iomodel->FetchDataToInput(inputs,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    132132                        break;
    133133                default:
     
    244244        IssmDouble  rho_ice         = element->FindParam(MaterialsRhoIceEnum);
    245245        IssmDouble  rho_water       = element->FindParam(MaterialsRhoFreshwaterEnum);
    246         Input2* geothermalflux_input = element->GetInput2(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input);
    247         Input2* head_input           = element->GetInput2(HydrologyHeadEnum);              _assert_(head_input);
    248         Input2* gap_input            = element->GetInput2(HydrologyGapHeightEnum);         _assert_(gap_input);
    249         Input2* thickness_input      = element->GetInput2(ThicknessEnum);                  _assert_(thickness_input);
    250         Input2* base_input           = element->GetInput2(BaseEnum);                       _assert_(base_input);
    251         Input2* B_input              = element->GetInput2(MaterialsRheologyBEnum);         _assert_(B_input);
    252         Input2* n_input              = element->GetInput2(MaterialsRheologyNEnum);         _assert_(n_input);
    253         Input2* englacial_input      = element->GetInput2(HydrologyEnglacialInputEnum);    _assert_(englacial_input);
    254         Input2* vx_input             = element->GetInput2(VxEnum);                         _assert_(vx_input);
    255         Input2* vy_input             = element->GetInput2(VyEnum);                         _assert_(vy_input);
    256         Input2* lr_input             = element->GetInput2(HydrologyBumpSpacingEnum);       _assert_(lr_input);
    257         Input2* br_input             = element->GetInput2(HydrologyBumpHeightEnum);        _assert_(br_input);
    258    Input2* 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);
    259259
    260260        /*Get conductivity from inputs*/
     
    403403
    404404        /*Add input to the element: */
    405         element->AddInput2(HydrologyHeadEnum,values,element->GetElementType());
    406    element->AddInput2(EffectivePressureEnum,eff_pressure,P1Enum);
     405        element->AddInput(HydrologyHeadEnum,values,element->GetElementType());
     406   element->AddInput(EffectivePressureEnum,eff_pressure,P1Enum);
    407407
    408408        /*Update reynolds number according to new solution*/
    409409        element->GetVerticesCoordinates(&xyz_list);
    410         Input2* head_input = element->GetInput2(HydrologyHeadEnum);_assert_(head_input);
     410        Input* head_input = element->GetInput(HydrologyHeadEnum);_assert_(head_input);
    411411        IssmDouble conductivity = GetConductivity(element);
    412412
     
    417417
    418418        IssmDouble reynolds = conductivity*sqrt(dh[0]*dh[0]+dh[1]*dh[1])/NU;
    419         element->AddInput2(HydrologyReynoldsEnum,&reynolds,P0Enum);
     419        element->AddInput(HydrologyReynoldsEnum,&reynolds,P0Enum);
    420420
    421421        /*Free resources:*/
     
    443443
    444444        /*Get Reynolds and gap average values*/
    445         Input2* reynolds_input = element->GetInput2(HydrologyReynoldsEnum);  _assert_(reynolds_input);
    446         Input2* 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);
    447447        reynolds_input->GetInputAverage(&reynolds);
    448448        gap_input->GetInputAverage(&gap);
     
    486486        IssmDouble  rho_ice         = element->FindParam(MaterialsRhoIceEnum);
    487487        IssmDouble  rho_water       = element->FindParam(MaterialsRhoFreshwaterEnum);
    488         Input2* geothermalflux_input = element->GetInput2(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input);
    489         Input2* head_input           = element->GetInput2(HydrologyHeadEnum);              _assert_(head_input);
    490         Input2* gap_input            = element->GetInput2(HydrologyGapHeightEnum);         _assert_(gap_input);
    491         Input2* thickness_input      = element->GetInput2(ThicknessEnum);                  _assert_(thickness_input);
    492         Input2* base_input           = element->GetInput2(BaseEnum);                       _assert_(base_input);
    493         Input2* B_input              = element->GetInput2(MaterialsRheologyBEnum);         _assert_(B_input);
    494         Input2* n_input              = element->GetInput2(MaterialsRheologyNEnum);         _assert_(n_input);
    495         Input2* englacial_input      = element->GetInput2(HydrologyEnglacialInputEnum);    _assert_(englacial_input);
    496         Input2* vx_input             = element->GetInput2(VxEnum);                         _assert_(vx_input);
    497         Input2* vy_input             = element->GetInput2(VyEnum);                         _assert_(vy_input);
    498         Input2* lr_input             = element->GetInput2(HydrologyBumpSpacingEnum);       _assert_(lr_input);
    499         Input2* 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);
    500500
    501501        /*Get conductivity from inputs*/
     
    582582
    583583        /*Add new gap as an input*/
    584         element->AddInput2(HydrologyGapHeightEnum,&newgap,P0Enum);
     584        element->AddInput(HydrologyGapHeightEnum,&newgap,P0Enum);
    585585
    586586        /*Divide by connectivity, add basal flux as an input*/
    587587        q = q/totalweights;
    588         element->AddInput2(HydrologyBasalFluxEnum,&q,P0Enum);
     588        element->AddInput(HydrologyBasalFluxEnum,&q,P0Enum);
    589589
    590590        /* Divide by connectivity, add degree of channelization as an input */
    591591        channelization = channelization/totalweights;
    592         element->AddInput2(DegreeOfChannelizationEnum,&channelization,P0Enum);
     592        element->AddInput(DegreeOfChannelizationEnum,&channelization,P0Enum);
    593593
    594594        /*Clean up and return*/
  • issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp

    r25317 r25379  
    3636        return 1;
    3737}/*}}}*/
    38 void HydrologyShreveAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     38void HydrologyShreveAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    3939
    4040        /*Fetch data needed: */
     
    5050                if(iomodel->my_elements[i]){
    5151                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    52                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     52                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    5353                        counter++;
    5454                }
    5555        }
    5656
    57         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    58         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    59         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    60         iomodel->FetchDataToInput(inputs2,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);
    6161        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    62                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    63                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    64         }
    65         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    66         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    67         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    68         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.watercolumn",WatercolumnEnum);
    69 
    70         inputs2->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);
    7171}/*}}}*/
    7272void HydrologyShreveAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
     
    109109        IssmDouble  g         = element->FindParam(ConstantsGEnum);
    110110        IssmDouble  mu_water  = element->FindParam(MaterialsMuWaterEnum);
    111         Input2* surfaceslopex_input = element->GetInput2(SurfaceSlopeXEnum); _assert_(surfaceslopex_input);
    112         Input2* surfaceslopey_input = element->GetInput2(SurfaceSlopeYEnum); _assert_(surfaceslopey_input);
    113         Input2* bedslopex_input     = element->GetInput2(BedSlopeXEnum);     _assert_(bedslopex_input);
    114         Input2* bedslopey_input     = element->GetInput2(BedSlopeYEnum);     _assert_(bedslopey_input);
    115         Input2* 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);
    116116
    117117        /*Fetch number of vertices and allocate output*/
     
    138138
    139139        /*Add to inputs*/
    140         element->AddInput2(HydrologyWaterVxEnum,vx,P1Enum);
    141         element->AddInput2(HydrologyWaterVyEnum,vy,P1Enum);
     140        element->AddInput(HydrologyWaterVxEnum,vx,P1Enum);
     141        element->AddInput(HydrologyWaterVyEnum,vy,P1Enum);
    142142        xDelete<IssmDouble>(vx);
    143143        xDelete<IssmDouble>(vy);
     
    171171        element->FindParam(&dt,TimesteppingTimeStepEnum);
    172172        element->FindParam(&diffusivity,HydrologyshreveStabilizationEnum);
    173         Input2* vx_input=element->GetInput2(HydrologyWaterVxEnum); _assert_(vx_input);
    174         Input2* 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);
    175175        h = element->CharacteristicLength();
    176176
     
    249249        element->GetVerticesCoordinates(&xyz_list);
    250250        element->FindParam(&dt,TimesteppingTimeStepEnum);
    251         Input2* mb_input   = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);
    252         Input2* 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);
    253253
    254254        /*Initialize mb_correction to 0, do not forget!:*/
     
    305305
    306306        /*Add input to the element: */
    307         element->AddInput2(WatercolumnEnum,values,element->GetElementType());
     307        element->AddInput(WatercolumnEnum,values,element->GetElementType());
    308308
    309309        /*Free ressources:*/
  • issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp

    r25317 r25379  
    2828        return 1;
    2929}/*}}}*/
    30 void L2ProjectionBaseAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     30void L2ProjectionBaseAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    3131
    3232        /*Update elements: */
     
    3535                if(iomodel->my_elements[i]){
    3636                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    37                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     37                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    3838                        counter++;
    3939                }
    4040        }
    4141
    42         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    43    iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    44         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    45         iomodel->FetchDataToInput(inputs2,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);
    4646        if(iomodel->domaintype!=Domain2DhorizontalEnum & iomodel->domaintype!=Domain3DsurfaceEnum){
    47                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    48                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     47                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     48                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    4949        }
    5050}/*}}}*/
     
    144144        int         input_enum;
    145145        IssmDouble  Jdet,value,slopes[2];
    146         Input2     *input     = NULL;
    147         Input2     *input2    = NULL;
     146        Input     *input     = NULL;
     147        Input     *input2    = NULL;
    148148        IssmDouble *xyz_list  = NULL;
    149149
     
    159159        basalelement->FindParam(&input_enum,InputToL2ProjectEnum);
    160160        switch(input_enum){
    161                 case SurfaceSlopeXEnum: input2 = basalelement->GetInput2(SurfaceEnum); _assert_(input2); break;
    162                 case SurfaceSlopeYEnum: input2 = basalelement->GetInput2(SurfaceEnum); _assert_(input2); break;
    163                 case BedSlopeXEnum:     input2 = basalelement->GetInput2(BaseEnum);     _assert_(input2); break;
    164                 case BedSlopeYEnum:     input2 = basalelement->GetInput2(BaseEnum);     _assert_(input2); break;
    165                 case BaseSlopeXEnum:    input2 = basalelement->GetInput2(BaseEnum);    _assert_(input2); break;
    166                 case BaseSlopeYEnum:    input2 = basalelement->GetInput2(BaseEnum);    _assert_(input2); break;
    167                 case LevelsetfunctionSlopeXEnum: input2 = basalelement->GetInput2(MaskIceLevelsetEnum);     _assert_(input2); break;
    168                 case LevelsetfunctionSlopeYEnum: input2 = basalelement->GetInput2(MaskIceLevelsetEnum);     _assert_(input2); break;
    169                 default: input = element->GetInput2(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);
    170170        }
    171171
  • issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/L2ProjectionEPLAnalysis.cpp

    r25317 r25379  
    3737        return 1;
    3838}/*}}}*/
    39 void L2ProjectionEPLAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     39void L2ProjectionEPLAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    4040
    4141        bool   isefficientlayer;
     
    5555                if(iomodel->my_elements[i]){
    5656                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    57                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     57                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    5858                        counter++;
    5959                }
    6060        }
    6161
    62         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.epl_head",EplHeadSubstepEnum);
    63         iomodel->FetchDataToInput(inputs2,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);
    6464        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    65                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    66                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     65                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     66                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    6767        }
    6868}/*}}}*/
     
    105105        }
    106106
    107         basalelement->GetInput2Value(&active_element,HydrologydcMaskEplactiveEltEnum);
     107        basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum);
    108108
    109109        /* Check that all nodes are active, else return empty matrix */
     
    168168        }
    169169
    170         basalelement->GetInput2Value(&active_element,HydrologydcMaskEplactiveEltEnum);
     170        basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum);
    171171
    172172        /*Check that all nodes are active, else return empty matrix*/
     
    182182        int         input_enum,index;
    183183        IssmDouble  Jdet,slopes[2];
    184         Input2     *input     = NULL;
     184        Input     *input     = NULL;
    185185        IssmDouble *xyz_list  = NULL;
    186186
     
    196196        basalelement->FindParam(&input_enum,InputToL2ProjectEnum);
    197197        switch(input_enum){
    198                 case EplHeadSlopeXEnum: input = basalelement->GetInput2(EplHeadSubstepEnum); index = 0; _assert_(input); break;
    199                 case EplHeadSlopeYEnum: input = basalelement->GetInput2(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;
    200200                default: _error_("not implemented");
    201201        }
  • issm/trunk-jpl/src/c/analyses/L2ProjectionEPLAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp

    r25317 r25379  
    3232}
    3333/*}}}*/
    34 void LevelsetAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     34void LevelsetAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    3535
    3636        /*Finite element type*/
     
    4343                if(iomodel->my_elements[i]){
    4444                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    45                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     45                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    4646                        counter++;
    4747                }
    4848        }
    4949
    50         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    51         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    52         iomodel->FetchDataToInput(inputs2,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);
    5353
    5454        /*Get moving front parameters*/
     
    5757        switch(calvinglaw){
    5858                case DefaultCalvingEnum:
    59                         iomodel->FetchDataToInput(inputs2,elements,"md.calving.calvingrate",CalvingCalvingrateEnum);
     59                        iomodel->FetchDataToInput(inputs,elements,"md.calving.calvingrate",CalvingCalvingrateEnum);
    6060                        break;
    6161                case CalvingLevermannEnum:
    62                         iomodel->FetchDataToInput(inputs2,elements,"md.calving.coeff",CalvinglevermannCoeffEnum);
     62                        iomodel->FetchDataToInput(inputs,elements,"md.calving.coeff",CalvinglevermannCoeffEnum);
    6363                        break;
    6464                case CalvingVonmisesEnum:
    65                         iomodel->FetchDataToInput(inputs2,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);
    66                         iomodel->FetchDataToInput(inputs2,elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum);
    67                         iomodel->FetchDataToInput(inputs2,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);
    6868                        break;
    6969                case CalvingMinthicknessEnum:
    70                         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.bed",BedEnum);
     70                        iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
    7171                        break;
    7272                case CalvingHabEnum:
    73                         iomodel->FetchDataToInput(inputs2,elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);
     73                        iomodel->FetchDataToInput(inputs,elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);
    7474                        break;
    7575                case CalvingCrevasseDepthEnum:
    76                         iomodel->FetchDataToInput(inputs2,elements,"md.calving.water_height",WaterheightEnum);
     76                        iomodel->FetchDataToInput(inputs,elements,"md.calving.water_height",WaterheightEnum);
    7777                        break;
    7878                case CalvingDev2Enum:
    79                         iomodel->FetchDataToInput(inputs2,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);
    80                         iomodel->FetchDataToInput(inputs2,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);
    8181                        break;
    8282                default:
     
    8989        switch(melt_parameterization){
    9090                case FrontalForcingsDefaultEnum:
    91                         iomodel->FetchDataToInput(inputs2,elements,"md.frontalforcings.meltingrate",CalvingMeltingrateEnum);
     91                        iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.meltingrate",CalvingMeltingrateEnum);
    9292                        break;
    9393                case FrontalForcingsRignotEnum:
    94                         iomodel->FetchDataToInput(inputs2,elements,"md.frontalforcings.basin",FrontalForcingsBasinIdEnum);
    95                         iomodel->FetchDataToInput(inputs2,elements,"md.frontalforcings.subglacial_discharge",FrontalForcingsSubglacialDischargeEnum);
    96                         iomodel->FetchDataToInput(inputs2,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);
    9797                        break;
    9898                default:
     
    226226        basalelement->FindParam(&dt,TimesteppingTimeStepEnum);
    227227        basalelement->FindParam(&calvingmax,CalvingMaxEnum);
    228         Input2* vx_input           = NULL;
    229         Input2* vy_input           = NULL;
    230         Input2* calvingratex_input = NULL;
    231         Input2* calvingratey_input = NULL;
    232         Input2* lsf_slopex_input   = NULL;
    233         Input2* lsf_slopey_input   = NULL;
    234         Input2* calvingrate_input  = NULL;
    235         Input2* meltingrate_input  = NULL;
    236         Input2* 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;
    237237
    238238        /*Load velocities*/
    239239        switch(domaintype){
    240240                case Domain2DverticalEnum:
    241                         vx_input=basalelement->GetInput2(VxEnum); _assert_(vx_input);
     241                        vx_input=basalelement->GetInput(VxEnum); _assert_(vx_input);
    242242                        break;
    243243                case Domain2DhorizontalEnum:
    244                         vx_input=basalelement->GetInput2(VxEnum); _assert_(vx_input);
    245                         vy_input=basalelement->GetInput2(VyEnum); _assert_(vy_input);
    246                         gr_input=basalelement->GetInput2(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);
    247247                        break;
    248248                case Domain3DEnum:
    249                         vx_input=basalelement->GetInput2(VxAverageEnum); _assert_(vx_input);
    250                         vy_input=basalelement->GetInput2(VyAverageEnum); _assert_(vy_input);
    251                         gr_input=basalelement->GetInput2(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);
    252252                        break;
    253253                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
     
    258258                case DefaultCalvingEnum:
    259259                case CalvingVonmisesEnum:
    260                         lsf_slopex_input  = basalelement->GetInput2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
    261                         if(dim==2) lsf_slopey_input  = basalelement->GetInput2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
    262                         calvingrate_input = basalelement->GetInput2(CalvingCalvingrateEnum);     _assert_(calvingrate_input);
    263                         meltingrate_input = basalelement->GetInput2(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);
    264264                        break;
    265265                case CalvingLevermannEnum:
    266266                        switch(domaintype){
    267267                                case Domain2DverticalEnum:
    268                                         calvingratex_input=basalelement->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
     268                                        calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
    269269                                        break;
    270270                                case Domain2DhorizontalEnum:
    271                                         calvingratex_input=basalelement->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    272                                         calvingratey_input=basalelement->GetInput2(CalvingrateyEnum); _assert_(calvingratey_input);
     271                                        calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
     272                                        calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
    273273                                        break;
    274274                                case Domain3DEnum:
    275                                         calvingratex_input=basalelement->GetInput2(CalvingratexAverageEnum); _assert_(calvingratex_input);
    276                                         calvingratey_input=basalelement->GetInput2(CalvingrateyAverageEnum); _assert_(calvingratey_input);
     275                                        calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
     276                                        calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
    277277                                        break;
    278278                                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    279279                        }
    280                         meltingrate_input = basalelement->GetInput2(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
     280                        meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
    281281                        break;
    282282                case CalvingMinthicknessEnum:
    283                         lsf_slopex_input  = basalelement->GetInput2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
    284                         if(dim==2) lsf_slopey_input  = basalelement->GetInput2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
    285                         meltingrate_input = basalelement->GetInput2(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);
    286286                        break;
    287287                case CalvingHabEnum:
    288                         lsf_slopex_input  = basalelement->GetInput2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
    289                         if(dim==2) lsf_slopey_input  = basalelement->GetInput2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
    290                         meltingrate_input = basalelement->GetInput2(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);
    291291                        break;
    292292                case CalvingCrevasseDepthEnum:
    293                         lsf_slopex_input  = basalelement->GetInput2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
    294                         if(dim==2) lsf_slopey_input  = basalelement->GetInput2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
    295                         meltingrate_input = basalelement->GetInput2(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);
    296296                        break;
    297297                case CalvingDev2Enum:
    298298                        basalelement->FindParam(&calvinghaf,CalvingHeightAboveFloatationEnum);
    299                         lsf_slopex_input  = basalelement->GetInput2(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
    300                         if(dim==2) lsf_slopey_input  = basalelement->GetInput2(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
    301                         calvingrate_input = basalelement->GetInput2(CalvingCalvingrateEnum);     _assert_(calvingrate_input);
    302                         meltingrate_input = basalelement->GetInput2(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);
    303303                        break;
    304304                default:
     
    569569                /*Retrieve all inputs and parameters*/
    570570                basalelement->GetVerticesCoordinates(&xyz_list);
    571                 Input2* levelset_input     = basalelement->GetInput2(MaskIceLevelsetEnum);                    _assert_(levelset_input);
     571                Input* levelset_input     = basalelement->GetInput(MaskIceLevelsetEnum);                    _assert_(levelset_input);
    572572
    573573                /* Start  looping on the number of gaussian points: */
     
    661661                        int      numnodes = element->GetNumberOfNodes();
    662662                        Gauss*   gauss    = element->NewGauss();
    663                         Input2*   H_input  = element->GetInput2(ThicknessEnum); _assert_(H_input);
    664                         Input2*   b_input = element->GetInput2(BedEnum); _assert_(b_input);
    665                         Input2*   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);
    666666
    667667                        /*Potentially constrain nodes of this element*/
     
    701701                        int      numnodes           = element->GetNumberOfNodes();
    702702                        Gauss*   gauss              = element->NewGauss();
    703                         Input2*   H_input            = element->GetInput2(ThicknessEnum); _assert_(H_input);
    704                         Input2*   bed_input          = element->GetInput2(BedEnum); _assert_(bed_input);
    705                         Input2*   hab_fraction_input = element->GetInput2(CalvingHabFractionEnum); _assert_(hab_fraction_input);
    706                         Input2*   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);
    707707
    708708                        /*Potentially constrain nodes of this element*/
     
    746746                        int      numnodes              = element->GetNumberOfNodes();
    747747                        Gauss*   gauss                 = element->NewGauss();
    748                         Input2*   crevassedepth_input   = element->GetInput2(CrevasseDepthEnum); _assert_(crevassedepth_input);
    749                         Input2*   bed_input             = element->GetInput2(BedEnum); _assert_(bed_input);
    750                         Input2*   surface_crevasse_input = element->GetInput2(SurfaceCrevasseEnum); _assert_(surface_crevasse_input);
    751                         Input2*   thickness_input       = element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    752                         Input2*   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);
    753753
    754754                        /*First, look at ice front and figure out if any of the nodes will be calved*/
     
    784784                                int      numnodes               = element->GetNumberOfNodes();
    785785                                Gauss*   gauss                  = element->NewGauss();
    786                                 Input2*   levelset_input         = element->GetInput2(DistanceToCalvingfrontEnum); _assert_(levelset_input);
    787                                 Input2*   crevassedepth_input    = element->GetInput2(CrevasseDepthEnum); _assert_(crevassedepth_input);
    788                                 Input2*   bed_input              = element->GetInput2(BedEnum); _assert_(bed_input);
    789                                 Input2*   surface_crevasse_input = element->GetInput2(SurfaceCrevasseEnum); _assert_(surface_crevasse_input);
    790                                 Input2*   thickness_input        = element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    791                                 Input2*   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);
    792792
    793793                                /*Is this element connected to a node that should be calved*/
  • issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/LoveAnalysis.cpp

    r25317 r25379  
    1515        _error_("not needed!");
    1616}/*}}}*/
    17 void LoveAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     17void LoveAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    1818
    1919}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/LoveAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp

    r25317 r25379  
    111111        return 1;
    112112}/*}}}*/
    113 void MasstransportAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     113void MasstransportAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    114114
    115115        int    stabilization,finiteelement;
     
    140140                if(iomodel->my_elements[i]){
    141141                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    142                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     142                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    143143                        counter++;
    144144                }
    145145        }
    146146
    147         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    148         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    149         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    150         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    151         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    152         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    153         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    154         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    155         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum);
    156         if(isgroundingline)     iomodel->FetchDataToInput(inputs2,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);
    157157        /*Initialize cumdeltalthickness input*/
    158         InputUpdateFromConstantx(inputs2,elements,0.,SealevelriseCumDeltathicknessEnum);
     158        InputUpdateFromConstantx(inputs,elements,0.,SealevelriseCumDeltathicknessEnum);
    159159        /*Initialize ThicknessResidual input*/
    160         InputUpdateFromConstantx(inputs2,elements,0.,ThicknessResidualEnum);
     160        InputUpdateFromConstantx(inputs,elements,0.,ThicknessResidualEnum);
    161161
    162162        /*Get what we need for ocean-induced basal melting*/
     
    165165        switch(basalforcing_model){
    166166                case FloatingMeltRateEnum:
    167                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);
     167                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);
    168168                        break;
    169169                case LinearFloatingMeltRateEnum:
    170                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.perturbation_melting_rate",BasalforcingsPerturbationMeltingRateEnum,0.);
     170                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.perturbation_melting_rate",BasalforcingsPerturbationMeltingRateEnum,0.);
    171171                        break;
    172172                case MismipFloatingMeltRateEnum:
     
    175175                        break;
    176176                case SpatialLinearFloatingMeltRateEnum:
    177                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);
    178                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);
    179                         iomodel->FetchDataToInput(inputs2,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);
    180180                        break;
    181181                case BasalforcingsPicoEnum:
    182                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
    183                         iomodel->FetchDataToInput(inputs2,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);
    184184                        break;
    185185                case BasalforcingsIsmip6Enum:{
    186                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
    187                         iomodel->FetchDataToInput(inputs2,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.);
    188188                        IssmDouble** array3d = NULL; int* Ms = NULL; int* Ns = NULL; int K;
    189189                        iomodel->FetchData(&array3d,&Ms,&Ns,&K,"md.basalforcings.tf");
     
    193193                                if(iomodel->domaintype!=Domain2DhorizontalEnum && !element->IsOnBase()) continue;
    194194                                for(int kk=0;kk<K;kk++){
    195                                         element->DatasetInputAdd(BasalforcingsIsmip6TfEnum,array3d[kk],inputs2,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);
    196196                                }
    197197                        }
     
    202202                        break;
    203203                case BeckmannGoosseFloatingMeltRateEnum:
    204                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
    205                         iomodel->FetchDataToInput(inputs2,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);
    206206                        break;
    207207                default:
     
    210210
    211211        if(!issmb){
    212                 iomodel->FetchDataToInput(inputs2,elements,"md.smb.mass_balance",SmbMassBalanceEnum);
     212                iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum);
    213213        }
    214214        if(stabilization==3){
    215                 iomodel->FetchDataToInput(inputs2,elements,"md.masstransport.spcthickness",MasstransportSpcthicknessEnum); //for DG, we need the spc in the element
     215                iomodel->FetchDataToInput(inputs,elements,"md.masstransport.spcthickness",MasstransportSpcthicknessEnum); //for DG, we need the spc in the element
    216216        }
    217217        if(stabilization==4){
    218                 iomodel->FetchDataToInput(inputs2,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)
    219219        }
    220220
    221221        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    222                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    223                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     222                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     223                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    224224        }
    225225
     
    318318        element->FindParam(&domaintype,DomainTypeEnum);
    319319        element->FindParam(&stabilization,MasstransportStabilizationEnum);
    320         Input2* vxaverage_input=element->GetInput2(VxAverageEnum); _assert_(vxaverage_input);
    321         Input2* vyaverage_input=NULL;
     320        Input* vxaverage_input=element->GetInput(VxAverageEnum); _assert_(vxaverage_input);
     321        Input* vyaverage_input=NULL;
    322322        if(dim==2){
    323                 vyaverage_input=element->GetInput2(VyAverageEnum); _assert_(vyaverage_input);
     323                vyaverage_input=element->GetInput(VyAverageEnum); _assert_(vyaverage_input);
    324324        }
    325325
     
    512512        element->FindParam(&dt,TimesteppingTimeStepEnum);
    513513        element->FindParam(&domaintype,DomainTypeEnum);
    514         Input2* vxaverage_input=element->GetInput2(VxAverageEnum); _assert_(vxaverage_input);
    515         Input2* 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);
    516516
    517517        /* Start  looping on the number of gaussian points: */
     
    616616        element->FindParam(&dt,TimesteppingTimeStepEnum);
    617617        element->FindParam(&stabilization,MasstransportStabilizationEnum);
    618         Input2* gmb_input        = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum);  _assert_(gmb_input);
    619         Input2* fmb_input        = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum);  _assert_(fmb_input);
    620         Input2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum);              _assert_(gllevelset_input);
    621         Input2* ms_input         = element->GetInput2(SmbMassBalanceEnum);                       _assert_(ms_input);
    622         Input2* thickness_input  = element->GetInput2(ThicknessEnum);                            _assert_(thickness_input);
    623         Input2* vxaverage_input  = element->GetInput2(VxAverageEnum);                                                                           _assert_(vxaverage_input);
    624         Input2* 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);
    625625
    626626//      if(element->Id()==9){
     
    730730        element->FindParam(&dt,TimesteppingTimeStepEnum);
    731731        element->FindParam(&melt_style,GroundinglineMeltInterpolationEnum);
    732         Input2* gmb_input        = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input);
    733         Input2* fmb_input        = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input);
    734         Input2* ms_input         = element->GetInput2(SmbMassBalanceEnum);                      _assert_(ms_input);
    735         Input2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum);             _assert_(gllevelset_input);
    736         Input2* 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);
    737737
    738738   /*Recover portion of element that is grounded*/
     
    819819                }
    820820        }
    821         element->AddBasalInput2(ThicknessEnum,newthickness,element->GetElementType());
    822         element->AddBasalInput2(ThicknessResidualEnum,thicknessresidual,element->GetElementType());
     821        element->AddBasalInput(ThicknessEnum,newthickness,element->GetElementType());
     822        element->AddBasalInput(ThicknessResidualEnum,thicknessresidual,element->GetElementType());
    823823       
    824824        xDelete<int>(doflist);
     
    900900
    901901        /*Add input to the element: */
    902         element->AddBasalInput2(SurfaceEnum,newsurface,P1Enum);
    903         element->AddBasalInput2(BaseEnum,newbase,P1Enum);
    904         element->AddBasalInput2(SealevelriseCumDeltathicknessEnum,cumdeltathickness,P1Enum);
    905         element->AddBasalInput2(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);
    906906
    907907        /*Free ressources:*/
     
    948948        /*Retrieve all inputs and parameters*/
    949949        element->GetVerticesCoordinates(&xyz_list);
    950         Input2* vxaverage_input=element->GetInput2(VxEnum); _assert_(vxaverage_input);
    951         Input2* 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);
    952952
    953953        /* Start  looping on the number of gaussian points: */
     
    10611061        element->FindParam(&melt_style,GroundinglineMeltInterpolationEnum);
    10621062        element->FindParam(&stabilization,MasstransportStabilizationEnum);
    1063         Input2* gmb_input        = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum);  _assert_(gmb_input);
    1064         Input2* fmb_input        = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum);  _assert_(fmb_input);
    1065         Input2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum);              _assert_(gllevelset_input);
    1066         Input2* ms_input         = element->GetInput2(SmbMassBalanceEnum);                       _assert_(ms_input);
    1067         Input2* vxaverage_input  = element->GetInput2(VxAverageEnum);                                                                           _assert_(vxaverage_input);
    1068         Input2* 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);
    10691069       
    10701070        /*Recover portion of element that is grounded*/
  • issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp

    r25317 r25379  
    3737        return 1;
    3838}/*}}}*/
    39 void MeltingAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     39void MeltingAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    4040
    4141        /*Now, is the model 3d? otherwise, do nothing: */
     
    4747                if(iomodel->my_elements[i]){
    4848                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    49                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     49                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    5050                        counter++;
    5151                }
     
    5353
    5454        /*Create inputs: */
    55         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    56         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    57         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    58         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    59         iomodel->FetchDataToInput(inputs2,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);
    6060        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    61                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    62                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     61                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     62                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    6363        }
    64         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
     64        iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum);
    6565}/*}}}*/
    6666void MeltingAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
  • issm/trunk-jpl/src/c/analyses/MeltingAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp

    r25323 r25379  
    33#include "../toolkits/toolkits.h"
    44#include "../classes/classes.h"
    5 #include "../classes/Inputs2/TransientInput2.h"
     5#include "../classes/Inputs/TransientInput.h"
    66#include "../shared/shared.h"
    77#include "../modules/modules.h"
     
    2020        return 1;
    2121}/*}}}*/
    22 void SealevelriseAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     22void SealevelriseAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2323
    2424        int geodetic=0;
     
    3030                if(iomodel->my_elements[i]){
    3131                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    32                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     32                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    3333                        counter++;
    3434                }
     
    3636
    3737        /*Create inputs: */
    38         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    39         iomodel->FetchDataToInput(inputs2,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);
    4040        iomodel->FetchData(&geodetic,"md.solidearth.settings.computesealevelchange");
    41         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.surfaceload.icethicknesschange",SurfaceloadIceThicknessChangeEnum);
    42         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    43         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.bed",BedEnum);
    44         iomodel->FetchDataToInput(inputs2,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);
    4545               
    4646        /*dynamic sea level: */
     
    6161
    6262                /*create transient input: */
    63                 inputs2->SetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,times,N);
    64                 TransientInput2* transientinput = inputs2->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum);
     63                inputs->SetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,times,N);
     64                TransientInput* transientinput = inputs->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum);
    6565               
    6666                       
     
    8282
    8383                /*deal with dynamic sea level fields: */
    84                 iomodel->FetchDataToInput(inputs2,elements,"md.dsl.sea_surface_height_change_above_geoid", DslSeaSurfaceHeightChangeAboveGeoidEnum);
    85                 iomodel->FetchDataToInput(inputs2,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);
    8686               
    8787        } /*}}}*/
     
    111111                        for(int t=0;t<N;t++) times[t] = str[(M-1)*N+t];
    112112
    113                         TransientInput2* transientinput=inputs2->SetDatasetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,i, times,N);
     113                        TransientInput* transientinput=inputs->SetDatasetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,i, times,N);
    114114                       
    115115                        for(int j=0;j<elements->Size();j++){
     
    135135                xDelete<int>(pN);
    136136                /*}}}*/
    137                 iomodel->FetchDataToInput(inputs2,elements,"md.dsl.sea_surface_height_change_above_geoid",DslSeaSurfaceHeightChangeAboveGeoidEnum);
    138                 iomodel->FetchDataToInput(inputs2,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);
    139139
    140140        } /*}}}*/
     
    144144
    145145        /*Initialize cumdeltalthickness and sealevel rise rate input*/
    146         InputUpdateFromConstantx(inputs2,elements,0.,SealevelriseCumDeltathicknessEnum);
    147         InputUpdateFromConstantx(inputs2,elements,0.,SealevelNEsaRateEnum);
    148         InputUpdateFromConstantx(inputs2,elements,0.,SealevelUEsaRateEnum);
    149         InputUpdateFromConstantx(inputs2,elements,0.,SealevelRSLRateEnum);
    150         InputUpdateFromConstantx(inputs2,elements,0.,SealevelEustaticMaskEnum);
    151         InputUpdateFromConstantx(inputs2,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);
    152152
    153153}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp

    r25374 r25379  
    2121        return 1;
    2222}/*}}}*/
    23 void SmbAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     23void SmbAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2424
    2525        int    smb_model;
     
    3131                if(iomodel->my_elements[i]){
    3232                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    33                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     33                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    3434                        counter++;
    3535                }
     
    4040        switch(smb_model){
    4141                case SMBforcingEnum:
    42                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.mass_balance",SmbMassBalanceEnum,0.);
     42                        iomodel->FetchDataToInput(inputs,elements,"md.smb.mass_balance",SmbMassBalanceEnum,0.);
    4343                        break;
    4444                case SMBgembEnum:
    45                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Ta",SmbTaEnum);
    46                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.V",SmbVEnum);
    47                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dswrf",SmbDswrfEnum);
    48                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dlwrf",SmbDlwrfEnum);
    49                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.P",SmbPEnum);
    50                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.eAir",SmbEAirEnum);
    51                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.pAir",SmbPAirEnum);
    52                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.zTop",SmbZTopEnum);
    53                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dzTop",SmbDzTopEnum);
    54                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dzMin",SmbDzMinEnum);
    55                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.zY",SmbZYEnum);
    56                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.zMax",SmbZMaxEnum);
    57                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.zMin",SmbZMinEnum);
    58                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Tmean",SmbTmeanEnum);
    59                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Vmean",SmbVmeanEnum);
    60                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.C",SmbCEnum);
    61                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Tz",SmbTzEnum);
    62                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Vz",SmbVzEnum);
    63                         InputUpdateFromConstantx(inputs2,elements,false,SmbIsInitializedEnum);
    64                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Dzini",SmbDziniEnum);
    65                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Dini",SmbDiniEnum);
    66                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Reini",SmbReiniEnum);
    67                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Gdnini",SmbGdniniEnum);
    68                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Gspini",SmbGspiniEnum);
    69                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.ECini",SmbECiniEnum);
    70                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Wini",SmbWiniEnum);
    71                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Aini",SmbAiniEnum);
    72                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Tini",SmbTiniEnum);
    73                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.Sizeini",SmbSizeiniEnum);
    74                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.aValue",SmbAValueEnum);
    75                         iomodel->FetchDataToInput(inputs2,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);
    7676                        break;
    7777                case SMBpddEnum:
     
    7979                        iomodel->FindConstant(&ismungsm,"md.smb.ismungsm");
    8080                        iomodel->FindConstant(&issetpddfac,"md.smb.issetpddfac");
    81                         iomodel->FetchDataToInput(inputs2,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum);
    82                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.s0p",SmbS0pEnum);
    83                         iomodel->FetchDataToInput(inputs2,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);
    8484                        if(isdelta18o || ismungsm){
    85                                 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.smb.temperatures_lgm",SmbTemperaturesLgmEnum);
    86                                 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.smb.temperatures_presentday",SmbTemperaturesPresentdayEnum);
    87                                 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.smb.precipitations_presentday",SmbPrecipitationsPresentdayEnum);
    88                                 iomodel->FetchDataToDatasetInput(inputs2,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);
    8989                        }else{
    90                                 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.smb.precipitation",SmbPrecipitationEnum);
    91                                 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.smb.monthlytemperatures",SmbMonthlytemperaturesEnum);
     90                                iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.precipitation",SmbPrecipitationEnum);
     91                                iomodel->FetchDataToDatasetInput(inputs,elements,"md.smb.monthlytemperatures",SmbMonthlytemperaturesEnum);
    9292                        }
    9393                        if(issetpddfac){
    94                                 iomodel->FetchDataToInput(inputs2,elements,"md.smb.pddfac_snow",SmbPddfacSnowEnum,-1.);
    95                                 iomodel->FetchDataToInput(inputs2,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.);
    9696                        }
    9797                        break;
    9898                case SMBpddSicopolisEnum:
    99                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.s0p",SmbS0pEnum);
    100                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.s0t",SmbS0tEnum);
     99                        iomodel->FetchDataToInput(inputs,elements,"md.smb.s0p",SmbS0pEnum);
     100                        iomodel->FetchDataToInput(inputs,elements,"md.smb.s0t",SmbS0tEnum);
    101101                        iomodel->FindConstant(&isfirnwarming,"md.smb.isfirnwarming");
    102                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.smb_corr",SmbSmbCorrEnum);
    103                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.precipitation_anomaly",SmbPrecipitationsAnomalyEnum);
    104                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.temperature_anomaly",SmbTemperaturesAnomalyEnum);
    105                         iomodel->FetchDataToDatasetInput(inputs2,elements,"md.smb.monthlytemperatures",SmbMonthlytemperaturesEnum);
    106                         iomodel->FetchDataToDatasetInput(inputs2,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);
    107107                        break;
    108108                case SMBd18opddEnum:
     
    112112                        iomodel->FindConstant(&isd18opd,"md.smb.isd18opd");
    113113                        iomodel->FindConstant(&issetpddfac,"md.smb.issetpddfac");
    114                         iomodel->FetchDataToInput(inputs2,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum);
    115                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.s0p",SmbS0pEnum);
    116                         iomodel->FetchDataToInput(inputs2,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);
    117117                        if(isd18opd){
    118                                 iomodel->FetchDataToDatasetInput(inputs2,elements,"md.smb.temperatures_presentday",SmbTemperaturesPresentdayEnum);
    119                                 iomodel->FetchDataToDatasetInput(inputs2,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);
    120120                                if(!istemperaturescaled){
    121121                                        /*Fetch array*/
     
    131131                                        for(int i=0;i<elements->Size();i++){
    132132                                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    133                                                 element->DatasetInputCreate(doublearray,M-1,N,ids,N,inputs2,iomodel,SmbTemperaturesReconstructedEnum);
     133                                                element->DatasetInputCreate(doublearray,M-1,N,ids,N,inputs,iomodel,SmbTemperaturesReconstructedEnum);
    134134                                        }
    135135                                        xDelete<int>(ids);
     
    149149                                        for(int i=0;i<elements->Size();i++){
    150150                                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    151                                                 element->DatasetInputCreate(doublearray,M-1,N,ids,N,inputs2,iomodel,SmbPrecipitationsReconstructedEnum);
     151                                                element->DatasetInputCreate(doublearray,M-1,N,ids,N,inputs,iomodel,SmbPrecipitationsReconstructedEnum);
    152152                                        }
    153153                                        xDelete<int>(ids);
     
    156156                        }
    157157                        if(issetpddfac){
    158                                 iomodel->FetchDataToInput(inputs2,elements,"md.smb.pddfac_snow",SmbPddfacSnowEnum,-1.);
    159                                 iomodel->FetchDataToInput(inputs2,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.);
    160160                        }
    161161                        break;
    162162                case SMBgradientsEnum:
    163                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.href",SmbHrefEnum);
    164                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.smbref",SmbSmbrefEnum);
    165                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.b_pos",SmbBPosEnum);
    166                         iomodel->FetchDataToInput(inputs2,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);
    167167                        break;
    168168                case SMBgradientselaEnum:
    169                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.ela",SmbElaEnum);
    170                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.b_pos",SmbBPosEnum);
    171                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.b_neg",SmbBNegEnum);
    172                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.b_max",SmbBMaxEnum);
    173                         iomodel->FetchDataToInput(inputs2,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);
    174174                        break;
    175175                case SMBhenningEnum:
    176                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.smbref",SmbSmbrefEnum,0.);
     176                        iomodel->FetchDataToInput(inputs,elements,"md.smb.smbref",SmbSmbrefEnum,0.);
    177177                        break;
    178178                case SMBcomponentsEnum:
    179                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.accumulation",SmbAccumulationEnum,0.);
    180                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.evaporation",SmbEvaporationEnum,0.);
    181                         iomodel->FetchDataToInput(inputs2,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.);
    182182                        break;
    183183                case SMBmeltcomponentsEnum:
    184                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.accumulation",SmbAccumulationEnum,0.);
    185                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.evaporation",SmbEvaporationEnum,0.);
    186                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.melt",SmbMeltEnum,0.);
    187                         iomodel->FetchDataToInput(inputs2,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.);
    188188                        break;
    189189                case SMBgradientscomponentsEnum:
     
    191191                        break;
    192192                case SMBsemicEnum:
    193                         iomodel->FetchDataToInput(inputs2,elements,"md.thermal.spctemperature",ThermalSpctemperatureEnum);
    194                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.s0gcm",SmbS0gcmEnum);
    195                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dailysnowfall",SmbDailysnowfallEnum);
    196                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dailyrainfall",SmbDailyrainfallEnum);
    197                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dailydsradiation",SmbDailydsradiationEnum);
    198                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dailydlradiation",SmbDailydlradiationEnum);
    199                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dailywindspeed",SmbDailywindspeedEnum);
    200                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dailypressure",SmbDailypressureEnum);
    201                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dailyairdensity",SmbDailyairdensityEnum);
    202                         iomodel->FetchDataToInput(inputs2,elements,"md.smb.dailyairhumidity",SmbDailyairhumidityEnum);
    203                         iomodel->FetchDataToInput(inputs2,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);
    204204                        break;
    205205                default:
  • issm/trunk-jpl/src/c/analyses/SmbAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/SmoothAnalysis.cpp

    r25317 r25379  
    1818        return 1;
    1919}/*}}}*/
    20 void SmoothAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     20void SmoothAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    2121
    2222        /*Update elements: */
     
    2525                if(iomodel->my_elements[i]){
    2626                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    27                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     27                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    2828                        counter++;
    2929                }
     
    7070        element->FindParam(&l,SmoothThicknessMultiplierEnum); _assert_(l>0.);
    7171        element->GetVerticesCoordinates(&xyz_list);
    72         Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);
     72        Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input);
    7373
    7474        /* Start looping on the number of gaussian points: */
     
    116116        IssmDouble  Jdet,value;
    117117        IssmDouble *xyz_list  = NULL;
    118         Input2     *input = NULL;
     118        Input     *input = NULL;
    119119
    120120        /*SPECIFICS: Driving stress for balance velocities*/
    121         Input2*      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;
    122122        IssmDouble  taud_x,norms,normv,vx,vy;
    123123        IssmDouble  rho_ice,gravity,slope[2],thickness;
     
    139139                        rho_ice       = element->FindParam(MaterialsRhoIceEnum);
    140140                        gravity       = element->FindParam(ConstantsGEnum);
    141                         H_input       = element->GetInput2(ThicknessEnum); _assert_(H_input);
    142                         surface_input = element->GetInput2(SurfaceEnum);   _assert_(surface_input);
    143                         vx_input      = element->GetInput2(VxEnum);
    144                         vy_input      = element->GetInput2(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);
    145145                        }
    146146                        break;
    147147                case SurfaceSlopeXEnum:
    148148                case SurfaceSlopeYEnum:{
    149                         surface_input = element->GetInput2(SurfaceEnum);   _assert_(surface_input);
    150                         }
    151                         break;
    152                 default: input = element->GetInput2(input_enum);
     149                        surface_input = element->GetInput(SurfaceEnum);   _assert_(surface_input);
     150                        }
     151                        break;
     152                default: input = element->GetInput(input_enum);
    153153        }
    154154
  • issm/trunk-jpl/src/c/analyses/SmoothAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r25317 r25379  
    670670        return numdofs;
    671671}/*}}}*/
    672 void StressbalanceAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     672void StressbalanceAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    673673
    674674        /*Intermediaries*/
     
    741741                if(iomodel->my_elements[i]){
    742742                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    743                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement_list[i]);
     743                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement_list[i]);
    744744
    745745                        /*Need to know the type of approximation for this element*/
    746746                        if(iomodel->Data("md.flowequation.element_equation")){
    747                                 inputs2->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])));
    748748                        }
    749749
     
    753753
    754754        /*Create inputs: */
    755         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    756         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    757         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    758         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    759         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    760         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    761         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum,0.);
    762         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum,0.);
    763         iomodel->FetchDataToInput(inputs2,elements,"md.stressbalance.loadingforcex",LoadingforceXEnum);
    764         iomodel->FetchDataToInput(inputs2,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);
    765765        #ifdef LATERALFRICTION
    766         iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonboundary",MeshVertexonboundaryEnum);
     766        iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonboundary",MeshVertexonboundaryEnum);
    767767        #endif
    768768
    769769        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    770                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    771                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
     770                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     771                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    772772        }
    773773        if(iomodel->domaintype==Domain3DEnum){
    774                 iomodel->FetchDataToInput(inputs2,elements,"md.flowequation.borderFS",FlowequationBorderFSEnum);
    775                 iomodel->FetchDataToInput(inputs2,elements,"md.stressbalance.loadingforcez",LoadingforceZEnum);
    776                 iomodel->FetchDataToInput(inputs2,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.);
    777777        }
    778778        if(isFS){
    779                 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum,0.);
     779                iomodel->FetchDataToInput(inputs,elements,"md.initialization.pressure",PressureEnum,0.);
    780780
    781781                /*Add basal forcings to compute melt rate*/
     
    784784                switch(basalforcing_model){
    785785                        case FloatingMeltRateEnum:
    786                                 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);
     786                                iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);
    787787                                break;
    788788                        case LinearFloatingMeltRateEnum:
     
    793793                                break;
    794794                        case SpatialLinearFloatingMeltRateEnum:
    795                                 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);
    796                                 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);
    797                                 iomodel->FetchDataToInput(inputs2,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);
    798798                                break;
    799799                        case BasalforcingsPicoEnum:
    800                                 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
    801                                 iomodel->FetchDataToInput(inputs2,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);
    802802                                break;
    803803                        case BasalforcingsIsmip6Enum:
    804                                 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
     804                                iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
    805805                                break;
    806806                        case BeckmannGoosseFloatingMeltRateEnum:
    807                                 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
    808                                 iomodel->FetchDataToInput(inputs2,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);
    809809                                break;
    810810                        default:
     
    815815        iomodel->FindConstant(&fe_FS,"md.flowequation.fe_FS");
    816816        if(fe_FS==LATaylorHoodEnum || fe_FS==LACrouzeixRaviartEnum){
    817                 InputUpdateFromConstantx(inputs2,elements,0.,SigmaNNEnum);
     817                InputUpdateFromConstantx(inputs,elements,0.,SigmaNNEnum);
    818818        }
    819819
     
    822822                case 1:
    823823                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    824                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    825                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    826                         iomodel->FetchDataToInput(inputs2,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);
    827827                        if(FrictionCoupling==3){
    828                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     828                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    829829                        else if(FrictionCoupling==4){
    830                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     830                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    831831                        }
    832832                        break;
    833833                case 2:
    834                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    835                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
     834                        iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum);
     835                        iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum);
    836836                        break;
    837837                case 3:
    838838                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    839                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    840                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.As",FrictionAsEnum);
    841                         iomodel->FetchDataToInput(inputs2,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);
    842842                        if(FrictionCoupling==3){
    843                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     843                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    844844                        else if(FrictionCoupling==4){
    845                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     845                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    846846                        }
    847847                        break;
    848848                case 4:
    849                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    850                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    851                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum);
    852                         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    853                         iomodel->FetchDataToInput(inputs2,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);
    854854                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    855855                        break;
    856856                case 5:
    857                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    858                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    859                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum);
    860                         iomodel->FetchDataToInput(inputs2,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);
    861861                        break;
    862862                case 6:
    863                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    864                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
    865                         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    866                         iomodel->FetchDataToInput(inputs2,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);
    867867                        break;
    868868                case 7:
    869869                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    870                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    871                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum);
    872                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    873                         iomodel->FetchDataToInput(inputs2,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);
    874874                        if(FrictionCoupling==3){
    875                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     875                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    876876                        else if(FrictionCoupling==4){
    877                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     877                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    878878
    879879                        }
    880880                        break;
    881881                case 9:
    882                         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.temperature",TemperatureEnum);
    883                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    884                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum);
    885                         InputUpdateFromConstantx(inputs2,elements,1.,FrictionPEnum);
    886                         InputUpdateFromConstantx(inputs2,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);
    887887                        break;
    888888                case 10:
    889                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.till_friction_angle",FrictionTillFrictionAngleEnum);
    890                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.sediment_compressibility_coefficient",FrictionSedimentCompressibilityCoefficientEnum);
    891                         iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.watercolumn_max",HydrologyWatercolumnMaxEnum);
    892                         iomodel->FetchDataToInput(inputs2,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.);
    893893                        break;
    894894                case 11:
    895                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
    896                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    897                         iomodel->FetchDataToInput(inputs2,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);
    898898                        break;
    899899                case 12:
    900                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
    901                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    902                         iomodel->FetchDataToInput(inputs2,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);
    903903                        break;
    904904                default:
     
    907907
    908908#ifdef _HAVE_ANDROID_
    909         inputs2->DuplicateInput(FrictionCoefficientEnum,AndroidFrictionCoefficientEnum);
     909        inputs->DuplicateInput(FrictionCoefficientEnum,AndroidFrictionCoefficientEnum);
    910910#endif
    911911
     
    10861086
    10871087        int approximation;
    1088         element->GetInput2Value(&approximation,ApproximationEnum);
     1088        element->GetInputValue(&approximation,ApproximationEnum);
    10891089        switch(approximation){
    10901090                case FSApproximationEnum:
     
    10991099
    11001100        int approximation;
    1101         element->GetInput2Value(&approximation,ApproximationEnum);
     1101        element->GetInputValue(&approximation,ApproximationEnum);
    11021102        switch(approximation){
    11031103                case SSAApproximationEnum:
     
    11151115ElementMatrix* StressbalanceAnalysis::CreateKMatrix(Element* element){/*{{{*/
    11161116        int approximation;
    1117         element->GetInput2Value(&approximation,ApproximationEnum);
     1117        element->GetInputValue(&approximation,ApproximationEnum);
    11181118        switch(approximation){
    11191119                case SIAApproximationEnum:
     
    11421142
    11431143        int approximation;
    1144         element->GetInput2Value(&approximation,ApproximationEnum);
     1144        element->GetInputValue(&approximation,ApproximationEnum);
    11451145        switch(approximation){
    11461146                case SIAApproximationEnum:
     
    11691169
    11701170        int approximation;
    1171         element->GetInput2Value(&approximation,ApproximationEnum);
     1171        element->GetInputValue(&approximation,ApproximationEnum);
    11721172        switch(approximation){
    11731173                case FSApproximationEnum: case NoneApproximationEnum:
     
    12051205        int numnodes = element->GetNumberOfNodes();
    12061206        int numdof   = numnodes*dofpernode;
    1207         element->GetInput2Value(&approximation,ApproximationEnum);
     1207        element->GetInputValue(&approximation,ApproximationEnum);
    12081208
    12091209        /*Fetch dof list and allocate solution vector*/
     
    12121212
    12131213        /*Get inputs*/
    1214         Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);
    1215         Input2* vy_input=NULL;
    1216         if(domaintype!=Domain2DverticalEnum){vy_input=element->GetInput2(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);}
    12171217
    12181218        /*Ok, we have vx and vy in values, fill in vx and vy arrays: */
     
    12431243
    12441244        int approximation;
    1245         element->GetInput2Value(&approximation,ApproximationEnum);
     1245        element->GetInputValue(&approximation,ApproximationEnum);
    12461246        switch(approximation){
    12471247                case FSApproximationEnum: case NoneApproximationEnum:
     
    13141314        /*Retrieve all inputs and parameters*/
    13151315        element->GetVerticesCoordinates(&xyz_list);
    1316         Input2* thickness_input = basalelement->GetInput2(ThicknessEnum);_assert_(thickness_input);
    1317         Input2* vx_input        = basalelement->GetInput2(VxEnum);       _assert_(vx_input);
    1318         Input2* 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);
    13191319
    13201320        /* Start  looping on the number of gaussian points: */
     
    14331433        element->GetVerticesCoordinates(&xyz_list);
    14341434        element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum);
    1435         Input2* surface_input    = element->GetInput2(SurfaceEnum); _assert_(surface_input);
    1436         Input2* gllevelset_input = NULL;
     1435        Input* surface_input    = element->GetInput(SurfaceEnum); _assert_(surface_input);
     1436        Input* gllevelset_input = NULL;
    14371437
    14381438        /*build friction object, used later on: */
     
    14421442        if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list);
    14431443        if(friction_style==SubelementFriction2Enum){
    1444                 gllevelset_input=element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
     1444                gllevelset_input=element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
    14451445                element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
    14461446           gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2);
     
    15281528        element->GetVerticesCoordinates(&xyz_list);
    15291529        element->GetLevelCoordinates(&xyz_list_boundary,xyz_list,MeshVertexonboundaryEnum,1.);
    1530         Input2* icelevelset_input = element->GetInput2(MaskIceLevelsetEnum); _assert_(icelevelset_input);
     1530        Input* icelevelset_input = element->GetInput(MaskIceLevelsetEnum); _assert_(icelevelset_input);
    15311531
    15321532        /* Start  looping on the number of gaussian points: */
     
    15901590        /*Retrieve all inputs and parameters*/
    15911591        element->GetVerticesCoordinates(&xyz_list);
    1592         Input2* thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    1593         Input2* vx_input=element->GetInput2(VxEnum);               _assert_(vx_input);
    1594         Input2* 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;
    15951595        if(dim==2){
    1596                 vy_input    = element->GetInput2(VyEnum);       _assert_(vy_input);
     1596                vy_input    = element->GetInput(VyEnum);       _assert_(vy_input);
    15971597        }
    15981598
     
    17071707        /*Retrieve all inputs and parameters*/
    17081708        element->GetVerticesCoordinates(&xyz_list);
    1709         Input2*     thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    1710         Input2*     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);
    17111711        IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum);
    17121712
     
    17711771
    17721772        /*Retrieve all inputs and parameters*/
    1773         Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    1774         Input2* base_input       = element->GetInput2(BaseEnum);       _assert_(base_input);
    1775         Input2* 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);
    17761776        IssmDouble rho_water   = element->FindParam(MaterialsRhoSeawaterEnum);
    17771777        IssmDouble rho_ice     = element->FindParam(MaterialsRhoIceEnum);
     
    19681968                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    19691969        }
    1970         element->AddInput2(PressureEnum,pressure,P1Enum);
     1970        element->AddInput(PressureEnum,pressure,P1Enum);
    19711971        xDelete<IssmDouble>(pressure);
    19721972        xDelete<IssmDouble>(thickness);
     
    20272027
    20282028        /*Add vx and vy as inputs to the tria element: */
    2029         element->AddBasalInput2(VxEnum,vx,element->GetElementType());
    2030         if(dim==2)element->AddBasalInput2(VyEnum,vy,element->GetElementType());
    2031         element->AddBasalInput2(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());
    20322032
    20332033        /*Free ressources:*/
     
    20892089        /*Retrieve all inputs and parameters*/
    20902090        element->GetVerticesCoordinates(&xyz_list);
    2091         Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);
    2092         Input2* vx_input      = element->GetInput2(VxEnum);      _assert_(vx_input);
    2093         Input2* 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);
    20942094
    20952095        /* Start  looping on the number of gaussian points: */
     
    21762176        /*Retrieve all inputs and parameters*/
    21772177        element->GetVerticesCoordinates(&xyz_list);
    2178         Input2*     thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    2179         Input2*     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);
    21802180        IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum);
    21812181
     
    22272227
    22282228        /*Retrieve all inputs and parameters*/
    2229         Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    2230         Input2* base_input       = element->GetInput2(BaseEnum);       _assert_(base_input);
    2231         Input2* 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);
    22322232        IssmDouble rho_water   = element->FindParam(MaterialsRhoSeawaterEnum);
    22332233        IssmDouble rho_ice     = element->FindParam(MaterialsRhoIceEnum);
     
    22972297                for(i=0;i<numvertices;i++) pressure[i]=rho_ice*g*(surface[i]-xyz_list[i*3+2]);
    22982298        }
    2299         element->AddInput2(PressureEnum,pressure,P1Enum);
     2299        element->AddInput(PressureEnum,pressure,P1Enum);
    23002300        xDelete<IssmDouble>(pressure);
    23012301        xDelete<IssmDouble>(thickness);
     
    23502350
    23512351        /*Add vx and vy as inputs to the tria element: */
    2352         element->AddBasalInput2(VxEnum,vx,element->GetElementType());
    2353         element->AddBasalInput2(VyEnum,vy,element->GetElementType());
    2354         element->AddBasalInput2(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());
    23552355
    23562356        /*Free ressources:*/
     
    23862386        /*Retrieve all inputs and parameters*/
    23872387        element->GetVerticesCoordinates(&xyz_list);
    2388         Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);
    2389         Input2* 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);
    23902390
    23912391        /* Start  looping on the number of gaussian points: */
     
    24722472        element->GetVerticesCoordinatesBase(&xyz_list_base);
    24732473        element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum);
    2474         Input2* gllevelset_input = NULL;
     2474        Input* gllevelset_input = NULL;
    24752475
    24762476        /*build friction object, used later on: */
     
    24802480        if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list_base);
    24812481        if(friction_style==SubelementFriction2Enum){
    2482                 gllevelset_input=element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
     2482                gllevelset_input=element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
    24832483                element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
    24842484                gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2);
     
    25562556        /*Retrieve all inputs and parameters*/
    25572557        element->GetVerticesCoordinates(&xyz_list);
    2558         Input2* vx_input    = element->GetInput2(VxEnum);       _assert_(vx_input);
    2559         Input2* vy_input    = NULL;
     2558        Input* vx_input    = element->GetInput(VxEnum);       _assert_(vx_input);
     2559        Input* vy_input    = NULL;
    25602560        if(dim==3){
    2561                 vy_input=element->GetInput2(VyEnum);          _assert_(vy_input);
     2561                vy_input=element->GetInput(VyEnum);          _assert_(vy_input);
    25622562        }
    25632563
     
    27042704        /*Retrieve all inputs and parameters*/
    27052705        element->GetVerticesCoordinates(&xyz_list);
    2706         Input2*     surface_input = element->GetInput2(SurfaceEnum);   _assert_(surface_input);
     2706        Input*     surface_input = element->GetInput(SurfaceEnum);   _assert_(surface_input);
    27072707        IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum);
    27082708
     
    27602760
    27612761        /*Retrieve all inputs and parameters*/
    2762         Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);
    2763         Input2* 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);
    27642764        IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum);
    27652765        IssmDouble rho_ice   = element->FindParam(MaterialsRhoIceEnum);
     
    29652965                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    29662966        }
    2967         element->AddInput2(PressureEnum,pressure,P1Enum);
     2967        element->AddInput(PressureEnum,pressure,P1Enum);
    29682968        xDelete<IssmDouble>(pressure);
    29692969        xDelete<IssmDouble>(surface);
     
    30103010
    30113011        /*Add vx and vy as inputs to the element: */
    3012         element->AddInput2(VxEnum,vx,element->GetElementType());
    3013         if(dim==3)element->AddInput2(VyEnum,vy,element->GetElementType());
    3014         element->AddInput2(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());
    30153015
    30163016        /*Free ressources:*/
     
    30783078        /*Retrieve all inputs and parameters*/
    30793079        element->GetVerticesCoordinates(&xyz_list);
    3080         Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);
    3081         Input2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);
    3082         Input2* 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);
    30833083
    30843084        /* Start  looping on the number of gaussian points: */
     
    31683168        /*If on not water or not FS, skip stiffness: */
    31693169        int approximation,shelf_dampening;
    3170         element->GetInput2Value(&approximation,ApproximationEnum);
     3170        element->GetInputValue(&approximation,ApproximationEnum);
    31713171        if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL;
    31723172        element->FindParam(&shelf_dampening,StressbalanceShelfDampeningEnum);
     
    32013201        IssmDouble  rho_water     = element->FindParam(MaterialsRhoSeawaterEnum);
    32023202        IssmDouble  gravity       = element->FindParam(ConstantsGEnum);
    3203         Input2*      base_input = element->GetInput2(BaseEnum); _assert_(base_input);
     3203        Input*      base_input = element->GetInput(BaseEnum); _assert_(base_input);
    32043204
    32053205        /* Start  looping on the number of gaussian points: */
     
    32593259        element->GetVerticesCoordinates(&xyz_list);
    32603260        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    3261         Input2* vx_input=element->GetInput2(VxEnum);     _assert_(vx_input);
    3262         Input2* vy_input=element->GetInput2(VyEnum);     _assert_(vy_input);
    3263         Input2* vz_input = NULL;
    3264         if(dim==3){vz_input=element->GetInput2(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);}
    32653265
    32663266        /* Start  looping on the number of gaussian points: */
     
    34093409        element->GetVerticesCoordinates(&xyz_list);
    34103410        //element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    3411         Input2* vx_input=element->GetInput2(VxEnum);     _assert_(vx_input);
    3412         Input2* vy_input=element->GetInput2(VyEnum);     _assert_(vy_input);
    3413         Input2* vz_input = NULL;
    3414         if(dim==3){vz_input=element->GetInput2(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);}
    34153415
    34163416
     
    34833483        /*Retrieve all inputs and parameters*/
    34843484        element->GetVerticesCoordinates(&xyz_list);
    3485         Input2* vx_input = element->GetInput2(VxEnum);     _assert_(vx_input);
    3486         Input2* vy_input = element->GetInput2(VyEnum);     _assert_(vy_input);
    3487         Input2* vz_input = NULL;
    3488         if(dim==3){vz_input = element->GetInput2(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);}
    34893489
    34903490        /* Start  looping on the number of gaussian points: */
     
    36083608        element->GetVerticesCoordinates(&xyz_list);
    36093609        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    3610         Input2* vx_input=element->GetInput2(VxEnum);     _assert_(vx_input);
    3611         Input2* vy_input=element->GetInput2(VyEnum);     _assert_(vy_input);
    3612         Input2* vz_input;
    3613         if(dim==3){vz_input=element->GetInput2(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);}
    36143614
    36153615        /* Start  looping on the number of gaussian points: */
     
    36503650        /*If on water or not FS, skip stiffness: */
    36513651        int approximation;
    3652         element->GetInput2Value(&approximation,ApproximationEnum);
     3652        element->GetInputValue(&approximation,ApproximationEnum);
    36533653        if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL;
    36543654
     
    36773677        element->GetVerticesCoordinatesBase(&xyz_list_base);
    36783678        element->GetVerticesCoordinates(&xyz_list);
    3679         Input2* vx_input         = element->GetInput2(VxEnum);      _assert_(vx_input);
    3680         Input2* vy_input         = element->GetInput2(VyEnum);      _assert_(vy_input);
    3681         Input2* vz_input         = NULL;
    3682         if(dim==3){    vz_input = element->GetInput2(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);}
    36833683
    36843684        /* Start  looping on the number of gaussian points: */
     
    37553755        /*Retrieve all inputs and parameters*/
    37563756        element->GetVerticesCoordinatesBase(&xyz_list_base);
    3757         Input2*  alpha2_input=element->GetInput2(FrictionCoefficientEnum); _assert_(alpha2_input);
     3757        Input*  alpha2_input=element->GetInput(FrictionCoefficientEnum); _assert_(alpha2_input);
    37583758
    37593759        /* Start  looping on the number of gaussian points: */
     
    38093809        /*Retrieve all inputs and parameters*/
    38103810        element->GetVerticesCoordinatesBase(&xyz_list_base);
    3811         Input2*  sigmann_input=element->GetInput2(VzEnum); _assert_(sigmann_input);
    3812         Input2*  sigmant_input=element->GetInput2(TemperatureEnum); _assert_(sigmant_input);
    3813         Input2*  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);
    38143814
    38153815        /* Start  looping on the number of gaussian points: */
     
    39263926        /*If on water or not FS, skip stiffness: */
    39273927        int approximation;
    3928         element->GetInput2Value(&approximation,ApproximationEnum);
     3928        element->GetInputValue(&approximation,ApproximationEnum);
    39293929        if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL;
    39303930
     
    39543954        element->GetVerticesCoordinatesBase(&xyz_list_base);
    39553955        element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum);
    3956         Input2* gllevelset_input = NULL;
     3956        Input* gllevelset_input = NULL;
    39573957
    39583958        /*build friction object, used later on: */
     
    39633963        if(friction_style==SubelementFriction2Enum){
    39643964                if(domaintype==Domain2DverticalEnum) _error_("Subelement Friction 2 not implemented yet for Flowline");
    3965                 gllevelset_input=element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
     3965                gllevelset_input=element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
    39663966                element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
    39673967                //gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2);
     
    40954095        IssmDouble  rho_ice =element->FindParam(MaterialsRhoIceEnum);
    40964096        IssmDouble  gravity =element->FindParam(ConstantsGEnum);
    4097         Input2*      loadingforcex_input=element->GetInput2(LoadingforceXEnum);  _assert_(loadingforcex_input);
    4098         Input2*      loadingforcey_input=element->GetInput2(LoadingforceYEnum);  _assert_(loadingforcey_input);
    4099         Input2*      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;
    41004100        if(dim==3){
    4101                 loadingforcez_input=element->GetInput2(LoadingforceZEnum);  _assert_(loadingforcez_input);
     4101                loadingforcez_input=element->GetInput(LoadingforceZEnum);  _assert_(loadingforcez_input);
    41024102        }
    41034103
     
    41734173        element->GetIcefrontCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum);
    41744174        element->NormalSection(&normal[0],xyz_list_front);
    4175         Input2* surface_input  = element->GetInput2(SurfaceEnum); _assert_(surface_input);
    4176         Input2* 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);
    41774177        IssmDouble  rho_water = element->FindParam(MaterialsRhoSeawaterEnum);
    41784178        IssmDouble  gravity   = element->FindParam(ConstantsGEnum);
     
    42424242        /*Retrieve all inputs and parameters*/
    42434243        element->GetVerticesCoordinatesBase(&xyz_list_base);
    4244         Input2*      base_input=element->GetInput2(BaseEnum); _assert_(base_input);
     4244        Input*      base_input=element->GetInput(BaseEnum); _assert_(base_input);
    42454245        IssmDouble  rho_water=element->FindParam(MaterialsRhoSeawaterEnum);
    42464246        IssmDouble  gravity  =element->FindParam(ConstantsGEnum);
     
    42664266        element->FindParam(&shelf_dampening,StressbalanceShelfDampeningEnum);
    42674267        if(shelf_dampening) {
    4268                 Input2*      mb_input=element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(mb_input);
     4268                Input*      mb_input=element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(mb_input);
    42694269                IssmDouble  dt,mb;
    42704270                element->FindParam(&dt,TimesteppingTimeStepEnum);
     
    43174317
    43184318        /*Get pressure and sigmann*/
    4319         Input2* pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input);
    4320         Input2* 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);
    43214321
    43224322        gauss=element->NewGauss(5);
     
    44104410
    44114411        /*Get d and tau*/
    4412         Input2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input);
    4413         Input2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input);
    4414         Input2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input);
    4415         Input2* epszz_input=NULL; Input2* epsxz_input=NULL; Input2* epsyz_input=NULL;
    4416         Input2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input);
    4417         Input2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input);
    4418         Input2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input);
    4419         Input2* 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;
    44204420        if(dim==3){
    4421                 epszz_input=element->GetInput2(StrainRatezzEnum); _assert_(epszz_input);
    4422                 epsxz_input=element->GetInput2(StrainRatexzEnum); _assert_(epsxz_input);
    4423                 epsyz_input=element->GetInput2(StrainRateyzEnum); _assert_(epsyz_input);
    4424                 sigmapzz_input=element->GetInput2(DeviatoricStresszzEnum); _assert_(sigmapzz_input);
    4425                 sigmapxz_input=element->GetInput2(DeviatoricStressxzEnum); _assert_(sigmapxz_input);
    4426                 sigmapyz_input=element->GetInput2(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);
    44274427        }
    44284428
     
    50865086        int*         vdoflist=NULL;
    50875087        int*         pdoflist=NULL;
    5088         Input2*       vz_input=NULL;
     5088        Input*       vz_input=NULL;
    50895089        int          dim;
    50905090        IssmDouble   vx,vy,vz,p;
     
    51085108        element->GetDofListVelocity(&vdoflist,GsetEnum);
    51095109        element->GetDofListPressure(&pdoflist,GsetEnum);
    5110         Input2*     vx_input=element->GetInput2(VxEnum);       _assert_(vx_input);
    5111         Input2*     vy_input=element->GetInput2(VyEnum);       _assert_(vy_input);
    5112         if(dim==3){vz_input=element->GetInput2(VzEnum);       _assert_(vz_input);}
    5113         Input2*     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);
    51145114
    51155115        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
     
    51695169                /*Get inputs and parameters*/
    51705170                element->GetVerticesCoordinates(&xyz_list);
    5171                 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);
    5172                 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);
    5173                 Input2* vz_input;
    5174                 if(dim==3){vz_input=element->GetInput2(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);}
    51755175
    51765176                /*Allocate new inputs*/
     
    52115211
    52125212                /*Add inputs*/
    5213                 element->AddInput2(StrainRatexxEnum,epsxx,P1DGEnum); element->AddInput2(DeviatoricStressxxEnum,sigmapxx,P1DGEnum);
    5214                 element->AddInput2(StrainRateyyEnum,epsyy,P1DGEnum); element->AddInput2(DeviatoricStressyyEnum,sigmapyy,P1DGEnum);
    5215                 element->AddInput2(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);
    52165216                if(dim==3){
    5217                         element->AddInput2(StrainRatezzEnum,epszz,P1DGEnum); element->AddInput2(DeviatoricStresszzEnum,sigmapzz,P1DGEnum);
    5218                         element->AddInput2(StrainRatexzEnum,epsxz,P1DGEnum); element->AddInput2(DeviatoricStressxzEnum,sigmapxz,P1DGEnum);
    5219                         element->AddInput2(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);
    52205220                }
    52215221
     
    53035303        if(v_interp==P1bubbleEnum) v_interp=P1Enum;
    53045304        if(v_interp == P1bubblecondensedEnum) v_interp = P1Enum;
    5305         element->AddInput2(VxEnum, vx, v_interp);
    5306         element->AddInput2(VyEnum, vy, v_interp);
    5307         element->AddInput2(VelEnum,vel,v_interp);
    5308         if(pnumdof>0) element->AddInput2(PressureEnum,pressure,element->PressureInterpolation());
    5309         if(dim==3) element->AddInput2(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);
    53105310
    53115311        /*Free ressources:*/
     
    53415341                /*Get inputs and parameters*/
    53425342                element->GetVerticesCoordinates(&xyz_list);
    5343                 Input2*  B_input=element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);
    5344                 Input2*  n_input=element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);
    5345                 Input2* vx_input=element->GetInput2(VxEnum);                 _assert_(vx_input);
    5346                 Input2* vy_input=element->GetInput2(VyEnum);                 _assert_(vy_input);
    5347                 Input2* vz_input;
    5348                 if(dim==3){vz_input=element->GetInput2(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);}
    53495349
    53505350                /*Fetch number of nodes and dof for this finite element*/
     
    53655365
    53665366                /*Get previous d*/
    5367                 Input2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input);
    5368                 Input2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input);
    5369                 Input2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input);
    5370                 Input2* 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;
    53715371                if(dim==3){
    5372                         epszz_input=element->GetInput2(StrainRatezzEnum); _assert_(epszz_input);
    5373                         epsxz_input=element->GetInput2(StrainRatexzEnum); _assert_(epsxz_input);
    5374                         epsyz_input=element->GetInput2(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);
    53755375                }
    53765376
    53775377                /*Get tau*/
    5378                 Input2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input);
    5379                 Input2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input);
    5380                 Input2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input);
    5381                 Input2* 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;
    53825382                if(dim==3){
    5383                         sigmapzz_input=element->GetInput2(DeviatoricStresszzEnum); _assert_(sigmapzz_input);
    5384                         sigmapxz_input=element->GetInput2(DeviatoricStressxzEnum); _assert_(sigmapxz_input);
    5385                         sigmapyz_input=element->GetInput2(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);
    53865386                }
    53875387
     
    54975497                        for(int i=0;i<3;i++) _assert_(!xIsNan<IssmDouble>(d_yy[i]));
    54985498                        for(int i=0;i<3;i++) _assert_(!xIsNan<IssmDouble>(d_xx[i]));
    5499                         element->AddInput2(StrainRatexxEnum,d_xx,P1DGEnum);
    5500                         element->AddInput2(StrainRateyyEnum,d_yy,P1DGEnum);
    5501                         element->AddInput2(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);
    55025502                }
    55035503                else{
     
    55125512                        Matrix4x4Solve(&d_xz[0],Ke,pe_xz);
    55135513                        Matrix4x4Solve(&d_yz[0],Ke,pe_yz);
    5514                         element->AddInput2(StrainRatexxEnum,d_xx,P1DGEnum);
    5515                         element->AddInput2(StrainRateyyEnum,d_yy,P1DGEnum);
    5516                         element->AddInput2(StrainRatexyEnum,d_xy,P1DGEnum);
    5517                         element->AddInput2(StrainRatezzEnum,d_zz,P1DGEnum);
    5518                         element->AddInput2(StrainRatexzEnum,d_xz,P1DGEnum);
    5519                         element->AddInput2(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);
    55205520                }
    55215521
     
    55545554                /*Get inputs and parameters*/
    55555555                element->GetVerticesCoordinates(&xyz_list);
    5556                 Input2* vx_input=element->GetInput2(VxEnum);                 _assert_(vx_input);
    5557                 Input2* vy_input=element->GetInput2(VyEnum);                 _assert_(vy_input);
    5558                 Input2* vz_input=NULL;
    5559                 if(dim==3){vz_input=element->GetInput2(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);}
    55605560
    55615561                /*Get previous tau*/
    5562                 Input2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input);
    5563                 Input2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input);
    5564                 Input2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input);
    5565                 Input2* 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;
    55665566                if(dim==3){
    5567                         sigmapzz_input=element->GetInput2(DeviatoricStresszzEnum); _assert_(sigmapzz_input);
    5568                         sigmapxz_input=element->GetInput2(DeviatoricStressxzEnum); _assert_(sigmapxz_input);
    5569                         sigmapyz_input=element->GetInput2(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);
    55705570                }
    55715571
    55725572                /*Get NEW d*/
    5573                 Input2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input);
    5574                 Input2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input);
    5575                 Input2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input);
    5576                 Input2* 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;
    55775577                if(dim==3){
    5578                         epszz_input=element->GetInput2(StrainRatezzEnum); _assert_(epszz_input);
    5579                         epsxz_input=element->GetInput2(StrainRatexzEnum); _assert_(epsxz_input);
    5580                         epsyz_input=element->GetInput2(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);
    55815581                }
    55825582
     
    56475647
    56485648                /*Add inputs*/
    5649                 element->AddInput2(DeviatoricStressxxEnum,tau_xx,P1DGEnum);
    5650                 element->AddInput2(DeviatoricStressyyEnum,tau_yy,P1DGEnum);
    5651                 element->AddInput2(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);
    56525652                if(dim==3){
    5653                         element->AddInput2(DeviatoricStresszzEnum,tau_zz,P1DGEnum);
    5654                         element->AddInput2(DeviatoricStressxzEnum,tau_xz,P1DGEnum);
    5655                         element->AddInput2(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);
    56565656                }
    56575657
     
    57795779
    57805780        /*If on water or not FS, skip stiffness: */
    5781         element->GetInput2Value(&approximation,ApproximationEnum);
     5781        element->GetInputValue(&approximation,ApproximationEnum);
    57825782        if(element->IsFloating() || !element->IsOnBase()) return NULL;
    57835783
     
    58115811        element->GetVerticesCoordinatesBase(&xyz_list_tria);
    58125812        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    5813         Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);
    5814         Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);
    5815         Input2* 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);
    58165816
    58175817        /*build friction object, used later on: */
     
    59325932        element->GetVerticesCoordinates(&xyz_list);
    59335933        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    5934         Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);
    5935         Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);
    5936         Input2* 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);
    59375937
    59385938        /* Start  looping on the number of gaussian points: */
     
    61196119        /* Get node coordinates and dof list: */
    61206120        element->GetVerticesCoordinates(&xyz_list);
    6121         Input2* vx_input   =element->GetInput2(VxEnum);       _assert_(vx_input);
    6122         Input2* 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);
    61236123
    61246124        /* Start  looping on the number of gaussian points: */
     
    62726272        /*Initialize Element matrix*/
    62736273        ElementMatrix* Ke=basaltria->NewElementMatrix(SSAApproximationEnum);
    6274         element->GetInput2Value(&approximation,ApproximationEnum);
     6274        element->GetInputValue(&approximation,ApproximationEnum);
    62756275
    62766276        /*Retrieve all inputs and parameters*/
    62776277        element->GetVerticesCoordinates(&xyz_list);
    6278         Input2* vx_input   =element->GetInput2(VxEnum);       _assert_(vx_input);
    6279         Input2* vy_input   =element->GetInput2(VyEnum);       _assert_(vy_input);
    6280         Input2* 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);
    62816281
    62826282        /* Start  looping on the number of gaussian points: */
     
    63536353        /*Initialize Element vector and return if necessary*/
    63546354        if(!element->IsOnBase() || element->IsFloating()) return NULL;
    6355         element->GetInput2Value(&approximation,ApproximationEnum);
     6355        element->GetInputValue(&approximation,ApproximationEnum);
    63566356        if(approximation!=HOFSApproximationEnum) return NULL;
    63576357
     
    63786378        element->GetVerticesCoordinatesBase(&xyz_list_tria);
    63796379        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    6380         Input2* vx_input=  element->GetInput2(VxEnum);   _assert_(vx_input);
    6381         Input2* vy_input=  element->GetInput2(VyEnum);   _assert_(vy_input);
    6382         Input2* vz_input=  element->GetInput2(VzEnum);   _assert_(vz_input);
    6383         Input2* 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);
    63846384
    63856385        /*build friction object, used later on: */
     
    64366436
    64376437        /*Initialize Element vector and return if necessary*/
    6438         element->GetInput2Value(&approximation,ApproximationEnum);
     6438        element->GetInputValue(&approximation,ApproximationEnum);
    64396439        if(approximation!=HOFSApproximationEnum) return NULL;
    64406440        int   vnumnodes = element->NumberofNodesVelocity();
     
    64576457        element->GetVerticesCoordinates(&xyz_list);
    64586458        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    6459         Input2* vx_input   =element->GetInput2(VxEnum);   _assert_(vx_input);
    6460         Input2* vy_input   =element->GetInput2(VyEnum);   _assert_(vy_input);
    6461         Input2* vz_input   =element->GetInput2(VzEnum);   _assert_(vz_input);
    6462         Input2* 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);
    64636463
    64646464        /* Start  looping on the number of gaussian points: */
     
    65236523        /*Initialize Element vector and return if necessary*/
    65246524        if(!element->IsOnBase() || element->IsFloating()) return NULL;
    6525         element->GetInput2Value(&approximation,ApproximationEnum);
     6525        element->GetInputValue(&approximation,ApproximationEnum);
    65266526        if(approximation!=SSAFSApproximationEnum) return NULL;
    65276527        int vnumnodes = element->NumberofNodesVelocity();
     
    65456545        element->GetVerticesCoordinatesBase(&xyz_list_tria);
    65466546        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    6547         Input2* vx_input=   element->GetInput2(VxEnum);    _assert_(vx_input);
    6548         Input2* vy_input=   element->GetInput2(VyEnum);    _assert_(vy_input);
    6549         Input2* vz_input=   element->GetInput2(VzEnum);    _assert_(vz_input);
    6550         Input2* 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);
    65516551
    65526552        /*build friction object, used later on: */
     
    66026602
    66036603        /*Initialize Element vector and return if necessary*/
    6604         element->GetInput2Value(&approximation,ApproximationEnum);
     6604        element->GetInputValue(&approximation,ApproximationEnum);
    66056605        if(approximation!=SSAFSApproximationEnum) return NULL;
    66066606        int vnumnodes = element->NumberofNodesVelocity();
     
    66236623        element->GetVerticesCoordinates(&xyz_list);
    66246624        element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum);
    6625         Input2* vx_input   =element->GetInput2(VxEnum);      _assert_(vx_input);
    6626         Input2* vy_input   =element->GetInput2(VyEnum);      _assert_(vy_input);
    6627         Input2* vz_input   =element->GetInput2(VzEnum);      _assert_(vz_input);
    6628         Input2* 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);
    66296629
    66306630        /* Start  looping on the number of gaussian points: */
     
    72197219
    72207220        /*Add vx and vy as inputs to element: */
    7221         element->AddInput2(VxEnum,vx,P1Enum);
    7222         element->AddInput2(VyEnum,vy,P1Enum);
    7223         element->AddInput2(VzEnum,vz,P1Enum);
    7224         element->AddInput2(VzFSEnum,vzFS,P1Enum);
    7225         element->AddInput2(VelEnum,vel,P1Enum);
    7226         element->AddInput2(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);
    72277227
    72287228        /*Free ressources:*/
     
    73227322
    73237323        /*Add vx and vy as inputs to element: */
    7324         element->AddInput2(VxEnum,vx,P1Enum);
    7325         element->AddInput2(VyEnum,vy,P1Enum);
    7326         element->AddInput2(VzEnum,vz,P1Enum);
    7327         element->AddInput2(VzFSEnum,vzFS,P1Enum);
    7328         element->AddInput2(VelEnum,vel,P1Enum);
    7329         element->AddInput2(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);
    73307330
    73317331        /*Free ressources:*/
     
    74157415
    74167416        /*Add vx and vy as inputs to element: */
    7417         element->AddInput2(VxEnum,vx,P1Enum);
    7418         element->AddInput2(VyEnum,vy,P1Enum);
    7419         element->AddInput2(VelEnum,vel,P1Enum);
    7420         element->AddInput2(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);
    74217421
    74227422        /*Free ressources:*/
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp

    r25317 r25379  
    107107        return 2;
    108108}/*}}}*/
    109 void StressbalanceSIAAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     109void StressbalanceSIAAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    110110
    111111        /*Fetch data needed: */
     
    127127                if(iomodel->my_elements[i]){
    128128                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    129                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     129                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    130130                        /*Need to know the type of approximation for this element*/
    131131                        if(iomodel->Data("md.flowequation.element_equation")){
    132                                 inputs2->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])));
    133133                        }
    134134                        counter++;
     
    142142        switch(frictionlaw){
    143143                case 1:
    144                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    145                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    146                         iomodel->FetchDataToInput(inputs2,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);
    147147                        break;
    148148                case 2:
    149                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    150                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
     149                        iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum);
     150                        iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum);
    151151                        break;
    152152                case 6:
    153                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    154                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
    155                         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    156                         iomodel->FetchDataToInput(inputs2,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);
    157157                        break;
    158158                default:
     
    160160        }
    161161
    162         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    163         iomodel->FetchDataToInput(inputs2,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);
    164164        if(ismovingfront){
    165165                if(iomodel->domaintype!=Domain2DhorizontalEnum)
    166                         iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes
     166                        iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes
    167167        }
    168168
     
    326326        IssmDouble  gravity    = element->FindParam(ConstantsGEnum);
    327327        IssmDouble  B,n;
    328         Input2* B_input         = element->GetInput2(MaterialsRheologyBbarEnum);_assert_(B_input);
    329         Input2* n_input         = element->GetInput2(MaterialsRheologyNEnum);   _assert_(n_input);
    330         Input2* slopex_input    = element->GetInput2(SurfaceSlopeXEnum);        _assert_(slopex_input);
    331         Input2* slopey_input    = element->GetInput2(SurfaceSlopeYEnum);        _assert_(slopey_input);
    332         Input2* thickness_input = element->GetInput2(ThicknessEnum);            _assert_(thickness_input);
    333         Input2* surface_input   = element->GetInput2(SurfaceEnum);              _assert_(surface_input);
    334         Input2* 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;
    335335        if(frictionlaw!=5 && frictionlaw!=1){
    336                 drag_input = element->GetInput2(FrictionCoefficientEnum);  _assert_(drag_input);
     336                drag_input = element->GetInput(FrictionCoefficientEnum);  _assert_(drag_input);
    337337        }
    338338
     
    416416        IssmDouble  gravity    = element->FindParam(ConstantsGEnum);
    417417        IssmDouble B,n;
    418         Input2* B_input         = element->GetInput2(MaterialsRheologyBEnum);   _assert_(B_input);
    419         Input2* n_input         = element->GetInput2(MaterialsRheologyNEnum);   _assert_(n_input);
    420         Input2* surface_input   = element->GetInput2(SurfaceEnum);              _assert_(surface_input);
    421         Input2* slopex_input    = element->GetInput2(SurfaceSlopeXEnum);        _assert_(slopex_input);
    422         Input2* slopey_input    = element->GetInput2(SurfaceSlopeYEnum);        _assert_(slopey_input);
    423         Input2* thickness_input = element->GetInput2(ThicknessEnum);            _assert_(thickness_input);
    424         Input2* 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;
    425425        Friction* friction     = NULL;
    426426        if(frictionlaw!=5 && frictionlaw!=1){
    427                 drag_input = element->GetInput2(FrictionCoefficientEnum);  _assert_(drag_input);
     427                drag_input = element->GetInput(FrictionCoefficientEnum);  _assert_(drag_input);
    428428        }
    429429        else if(frictionlaw==5){
     
    535535        /*Get dof list and inputs */
    536536        element->GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
    537         Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);
    538         Input2* 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);
    539539
    540540        /*Ok, we have the velocities in inputs, fill in solution */
     
    622622
    623623        /*Add vx and vy as inputs to the tria element: */
    624         element->AddInput2(VxEnum,vx,P1Enum);
    625         element->AddInput2(VyEnum,vy,P1Enum);
    626         element->AddInput2(VelEnum,vel,P1Enum);
    627         element->AddInput2(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);
    628628
    629629        /*Free ressources:*/
  • issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp

    r25317 r25379  
    8686        return 1;
    8787}/*}}}*/
    88 void StressbalanceVerticalAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     88void StressbalanceVerticalAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    8989
    9090        /*return if not 3d mesh*/
     
    9696                if(iomodel->my_elements[i]){
    9797                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    98                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,P1Enum);
     98                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum);
    9999                        counter++;
    100100                }
    101101        }
    102102
    103         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    104         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    105         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    106         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    107         iomodel->FetchDataToInput(inputs2,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);
    108108        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    109                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    110                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    111         }
    112         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
    113         //iomodel->FetchDataToInput(inputs2,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);
    114114
    115115
     
    119119        switch(basalforcing_model){
    120120                case FloatingMeltRateEnum:
    121                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);
     121                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);
    122122                        break;
    123123                case LinearFloatingMeltRateEnum:
     
    128128                        break;
    129129                case SpatialLinearFloatingMeltRateEnum:
    130                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);
    131                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);
    132                         iomodel->FetchDataToInput(inputs2,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);
    133133                        break;
    134134                case BasalforcingsPicoEnum:
    135                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
     135                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
    136136                        break;
    137137                case BasalforcingsIsmip6Enum:
    138                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
     138                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
    139139                        break;
    140140                case BeckmannGoosseFloatingMeltRateEnum:
    141                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
    142                         iomodel->FetchDataToInput(inputs2,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);
    143143                        break;
    144144                default:
    145145                        _error_("Basal forcing model "<<EnumToStringx(basalforcing_model)<<" not supported yet");
    146146        }
    147         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum,0.);
    148         iomodel->FetchDataToInput(inputs2,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.);
    149149}/*}}}*/
    150150void StressbalanceVerticalAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
     
    347347        element->GetVerticesCoordinatesBase(&xyz_list_base);
    348348        element->GetInputValue(&approximation,ApproximationEnum);
    349         Input2* base_input=element->GetInput2(BaseEnum);                                               _assert_(base_input);
    350         Input2* groundedice_input=element->GetInput2(MaskOceanLevelsetEnum);                     _assert_(groundedice_input);
    351         Input2* groundedice_melting_input=element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input);
    352         Input2* floatingice_melting_input=element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingice_melting_input);
    353         Input2* vx_input=element->GetInput2(VxEnum);                                                   _assert_(vx_input);
    354         Input2* vy_input=element->GetInput2(VyEnum);                                                   _assert_(vy_input);
    355         Input2* 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;
    356356        if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
    357                 vzFS_input=element->GetInput2(VzFSEnum);       _assert_(vzFS_input);
     357                vzFS_input=element->GetInput(VzFSEnum);       _assert_(vzFS_input);
    358358        }
    359359
     
    413413        element->GetVerticesCoordinatesTop(&xyz_list_surface);
    414414        element->GetInputValue(&approximation,ApproximationEnum);
    415         Input2* surface_input    =element->GetInput2(SurfaceEnum);   _assert_(surface_input);
    416         Input2* smb_input=element->GetInput2(SmbMassBalanceEnum);    _assert_(smb_input);
    417         Input2* vx_input=element->GetInput2(VxEnum);                 _assert_(vx_input);
    418         Input2* vy_input=element->GetInput2(VyEnum);                 _assert_(vy_input);
    419         Input2* 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;
    420420        if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
    421                 vzFS_input=element->GetInput2(VzFSEnum); _assert_(vzFS_input);
     421                vzFS_input=element->GetInput(VzFSEnum); _assert_(vzFS_input);
    422422        }
    423423
     
    468468        element->GetVerticesCoordinates(&xyz_list);
    469469        element->GetInputValue(&approximation,ApproximationEnum);
    470         Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);
    471         Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);
    472         Input2* 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;
    473473        if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
    474                 vzFS_input=element->GetInput2(VzFSEnum); _assert_(vzFS_input);
     474                vzFS_input=element->GetInput(VzFSEnum); _assert_(vzFS_input);
    475475        }
    476476
     
    555555        /*Do some modifications if we actually have a HOFS or SSAFS element*/
    556556        if(approximation==HOFSApproximationEnum){
    557                 Input2* vzFS_input=element->GetInput2(VzFSEnum);
     557                Input* vzFS_input=element->GetInput(VzFSEnum);
    558558                if (vzFS_input){
    559                         if (vzFS_input->ObjectEnum()!=PentaInput2Enum) _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()));
    560560                        element->GetInputListOnNodes(&vzFS[0],VzFSEnum,0.);
    561561                }
     
    567567        }
    568568        else if(approximation==SSAFSApproximationEnum){
    569                 Input2* vzFS_input=element->GetInput2(VzFSEnum);
     569                Input* vzFS_input=element->GetInput(VzFSEnum);
    570570                if (vzFS_input){
    571                         if (vzFS_input->ObjectEnum()!=PentaInput2Enum) _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()));
    572572                        element->GetInputListOnNodes(&vzFS[0],VzFSEnum,0.);
    573573                }
     
    591591        }
    592592        if(approximation!=HOFSApproximationEnum && approximation!=SSAFSApproximationEnum){
    593                 element->AddInput2(PressureEnum,pressure,element->GetElementType());
     593                element->AddInput(PressureEnum,pressure,element->GetElementType());
    594594        }
    595595        else if(approximation==HOFSApproximationEnum){
    596                 element->AddInput2(VzHOEnum,vzHO,P1Enum);
     596                element->AddInput(VzHOEnum,vzHO,P1Enum);
    597597        }
    598598        else if(approximation==SSAFSApproximationEnum){
    599                 element->AddInput2(VzSSAEnum,vzSSA,P1Enum);
    600         }
    601         element->AddInput2(VzEnum,vz,P1Enum);
    602         element->AddInput2(VelEnum,vel,P1Enum);
     599                element->AddInput(VzSSAEnum,vzSSA,P1Enum);
     600        }
     601        element->AddInput(VzEnum,vz,P1Enum);
     602        element->AddInput(VelEnum,vel,P1Enum);
    603603
    604604        /*Free ressources:*/
  • issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp

    r25317 r25379  
    104104        return 1;
    105105}/*}}}*/
    106 void ThermalAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     106void ThermalAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    107107
    108108        int frictionlaw,basalforcing_model,materialstype;
     
    119119                if(iomodel->my_elements[i]){
    120120                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    121                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     121                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    122122                        counter++;
    123123                }
     
    130130        iomodel->FindConstant(&materialstype,"md.materials.type");
    131131
    132         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum);
    133         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum);
    134         iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum);
    135         iomodel->FetchDataToInput(inputs2,elements,"md.solidearth.sealevel",SealevelEnum,0);
    136         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    137         iomodel->FetchDataToInput(inputs2,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);
    138138        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    139                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    140                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    141         }
    142         iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
    143         iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
    144         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    145         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.temperature",TemperatureEnum);
    146         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum);
    147         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum);
    148         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vz",VzEnum);
    149         InputUpdateFromConstantx(inputs2,elements,0.,VxMeshEnum);
    150         InputUpdateFromConstantx(inputs2,elements,0.,VyMeshEnum);
    151         InputUpdateFromConstantx(inputs2,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);
    152152
    153153        /*Rheology type*/
    154         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
     154        iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    155155        switch(materialstype){
    156156                case MatenhancediceEnum:
    157                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    158                         iomodel->FetchDataToInput(inputs2,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);
    159159                        break;
    160160                case MatdamageiceEnum:
    161                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
     161                        iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    162162                        break;
    163163                case MatestarEnum:
    164                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum);
    165                         iomodel->FetchDataToInput(inputs2,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);
    166166                        break;
    167167                case MaticeEnum:
    168                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
     168                        iomodel->FetchDataToInput(inputs,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    169169                        break;
    170170                default:
     
    172172        }
    173173        if(ismovingfront){
    174                 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes
     174                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); // required for updating active nodes
    175175        }
    176176        /*Basal forcings variables*/
     
    180180                        break;
    181181                default:
    182                         iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);
     182                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);
    183183                        break;
    184184        }
     
    187187                case 1:
    188188                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    189                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    190                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    191                         iomodel->FetchDataToInput(inputs2,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);
    192192                        if (FrictionCoupling==3){
    193                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     193                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    194194                        else if(FrictionCoupling==4){
    195                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     195                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    196196                        }
    197197                        break;
    198198                case 2:
    199                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    200                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
     199                        iomodel->FetchDataToInput(inputs,elements,"md.friction.C",FrictionCEnum);
     200                        iomodel->FetchDataToInput(inputs,elements,"md.friction.m",FrictionMEnum);
    201201                        break;
    202202                case 3:
    203203                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    204                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    205                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.As",FrictionAsEnum);
    206                         iomodel->FetchDataToInput(inputs2,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);
    207207                        if (FrictionCoupling==3){
    208                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     208                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    209209                        else if(FrictionCoupling==4){
    210                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     210                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    211211                        }
    212212                        break;
    213213                case 4:
    214                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    215                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    216                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum);
    217                         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    218                         iomodel->FetchDataToInput(inputs2,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);
    219219                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    220220                        break;
    221221                case 5:
    222                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    223                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    224                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum);
    225                         iomodel->FetchDataToInput(inputs2,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);
    226226                        break;
    227227                case 6:
    228                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum);
    229                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum);
    230                         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum);
    231                         iomodel->FetchDataToInput(inputs2,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);
    232232                        break;
    233233                case 7:
    234234                        iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling");
    235                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    236                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum);
    237                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum);
    238                         iomodel->FetchDataToInput(inputs2,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);
    239239                        if (FrictionCoupling==3){
    240                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
     240                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}
    241241                        else if(FrictionCoupling==4){
    242                                 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum);
     242                                iomodel->FetchDataToInput(inputs,elements,"md.friction.effective_pressure",EffectivePressureEnum);
    243243                        }
    244244                        break;
    245245                case 9:
    246                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum);
    247                         iomodel->FetchDataToInput(inputs2,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum);
    248                         InputUpdateFromConstantx(inputs2,elements,1.,FrictionPEnum);
    249                         InputUpdateFromConstantx(inputs2,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);
    250250                        break;
    251251                default:
     
    403403        IssmDouble  thermalconductivity = element->FindParam(MaterialsThermalconductivityEnum);
    404404        IssmDouble  kappa = thermalconductivity/(rho_ice*heatcapacity);
    405         Input2* vx_input  = element->GetInput2(VxEnum);     _assert_(vx_input);
    406         Input2* vy_input  = element->GetInput2(VyEnum);     _assert_(vy_input);
    407         Input2* vz_input  = element->GetInput2(VzEnum);     _assert_(vz_input);
    408         Input2* vxm_input = element->GetInput2(VxMeshEnum); _assert_(vxm_input);
    409         Input2* vym_input = element->GetInput2(VyMeshEnum); _assert_(vym_input);
    410         Input2* 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);
    411411
    412412        /* Start  looping on the number of gaussian points: */
     
    552552        element->GetVerticesCoordinatesBase(&xyz_list_base);
    553553        element->FindParam(&dt,TimesteppingTimeStepEnum);
    554         Input2* vx_input             = element->GetInput2(VxEnum);                          _assert_(vx_input);
    555         Input2* vy_input             = element->GetInput2(VyEnum);                          _assert_(vy_input);
    556         Input2* vz_input             = element->GetInput2(VzEnum);                          _assert_(vz_input);
    557         Input2* 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);
    558558        IssmDouble  rho_ice             = element->FindParam(MaterialsRhoIceEnum);
    559559        IssmDouble  heatcapacity        = element->FindParam(MaterialsHeatcapacityEnum);
     
    613613        element->GetVerticesCoordinatesBase(&xyz_list_base);
    614614        element->FindParam(&dt,TimesteppingTimeStepEnum);
    615         Input2*      pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input);
     615        Input*      pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input);
    616616        IssmDouble  gravity             = element->FindParam(ConstantsGEnum);
    617617        IssmDouble  rho_water           = element->FindParam(MaterialsRhoSeawaterEnum);
     
    675675        element->FindParam(&dt,TimesteppingTimeStepEnum);
    676676        element->FindParam(&stabilization,ThermalStabilizationEnum);
    677         Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input);
    678         Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input);
    679         Input2* vz_input=element->GetInput2(VzEnum); _assert_(vz_input);
    680         Input2* temperature_input = NULL;
    681         if(reCast<bool,IssmDouble>(dt)){temperature_input = element->GetInput2(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);}
    682682
    683683        /* Start  looping on the number of gaussian points: */
     
    787787        element->GetInputValue(&converged,ConvergedEnum);
    788788        if(converged){
    789                 element->AddInput2(TemperatureEnum,values,element->GetElementType());
     789                element->AddInput(TemperatureEnum,values,element->GetElementType());
    790790
    791791                IssmDouble* n = xNew<IssmDouble>(numnodes);
     
    808808                        case BuddJackaEnum:
    809809                                for(i=0;i<numnodes;i++) B[i]=BuddJacka(values[i]);
    810                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],element->GetElementType());
     810                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    811811                                break;
    812812                        case CuffeyEnum:
    813813                                for(i=0;i<numnodes;i++) B[i]=Cuffey(values[i]);
    814                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],element->GetElementType());
     814                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    815815                                break;
    816816                        case PatersonEnum:
    817817                                for(i=0;i<numnodes;i++) B[i]=Paterson(values[i]);
    818                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],element->GetElementType());
     818                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    819819                                break;
    820820                        case NyeH2OEnum:
    821821                                for(i=0;i<numnodes;i++) B[i]=NyeH2O(values[i]);
    822                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],element->GetElementType());
     822                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    823823                                break;
    824824                        case NyeCO2Enum:
    825825                                for(i=0;i<numnodes;i++) B[i]=NyeCO2(values[i]);
    826                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],element->GetElementType());
     826                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    827827                                break;
    828828                        case ArrheniusEnum:{
    829829                                element->GetVerticesCoordinates(&xyz_list);
    830830                                for(i=0;i<numnodes;i++) B[i]=Arrhenius(values[i],surface[i]-xyz_list[i*3+2],n[i]);
    831                                 element->AddInput2(MaterialsRheologyBEnum,&B[0],element->GetElementType());
     831                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    832832                                break;
    833833                                }
     
    838838        }
    839839        else{
    840                 element->AddInput2(TemperaturePicardEnum,values,element->GetElementType());
     840                element->AddInput(TemperaturePicardEnum,values,element->GetElementType());
    841841        }
    842842
  • issm/trunk-jpl/src/c/analyses/ThermalAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/analyses/UzawaPressureAnalysis.cpp

    r25317 r25379  
    2727        return 1;
    2828}/*}}}*/
    29 void UzawaPressureAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
     29void UzawaPressureAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    3030
    3131        /*Update elements: */
     
    4242                if(iomodel->my_elements[i]){
    4343                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    44                         element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement);
     44                        element->Update(inputs,i,iomodel,analysis_counter,analysis_type,finiteelement);
    4545                        counter++;
    4646                }
    4747        }
    4848
    49         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum,0.);
    50         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum,0.);
    51         if(iomodel->domaintype==Domain3DEnum) iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vz",VzEnum,0.);
    52         iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum,0.);
    53         InputUpdateFromConstantx(inputs2,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);
    5454}/*}}}*/
    5555void UzawaPressureAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
     
    130130        IssmDouble     dvz[3];
    131131
    132         Input2* vx_input=element->GetInput2(VxEnum);     _assert_(vx_input);
    133         Input2* vy_input=element->GetInput2(VyEnum);     _assert_(vy_input);
    134         Input2* vz_input = NULL;
    135         if(dim==3){vz_input=element->GetInput2(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);}
    136136
    137137        Gauss* gauss = element->NewGauss(5);
     
    206206        IssmDouble* valueslambda  = xNewZeroInit<IssmDouble>(numnodessigma);
    207207        IssmDouble* pressure      = xNew<IssmDouble>(numnodes);
    208         Input2* vx_input           = element->GetInput2(VxEnum);      _assert_(vx_input);
    209         Input2* vy_input           = element->GetInput2(VyEnum);      _assert_(vy_input);
    210         Input2* vz_input           = NULL;
    211         if(dim==3){vz_input       = element->GetInput2(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);}
    212212        element->GetInputListOnNodes(&pressure[0],PressureEnum);
    213213
     
    216216                values[i]  = pressure[i] + solution[doflist[i]];
    217217        }
    218         element->AddInput2(PressureEnum,values,element->GetElementType());
     218        element->AddInput(PressureEnum,values,element->GetElementType());
    219219
    220220        /*Now compute sigmann if on base*/
    221221        if(element->IsOnBase() && 0){
    222                 Input2* sigmann_input      = element->GetInput2(SigmaNNEnum); _assert_(sigmann_input);
     222                Input* sigmann_input      = element->GetInput(SigmaNNEnum); _assert_(sigmann_input);
    223223                if(dim==3) _error_("not implemented yet");
    224224
     
    231231                IssmDouble  deltalambda[3] = {0.0};
    232232                IssmDouble* vertexonbase  = xNew<IssmDouble>(numnodessigma);
    233                 Input2* vertexonbase_input = element->GetInput2(MeshVertexonbaseEnum); _assert_(vertexonbase_input);
     233                Input* vertexonbase_input = element->GetInput(MeshVertexonbaseEnum); _assert_(vertexonbase_input);
    234234                Gauss* gauss = element->NewGauss();
    235235
     
    285285                xDelete<IssmDouble>(basis);
    286286
    287                 element->AddInput2(SigmaNNEnum,valueslambda,P2Enum);
     287                element->AddInput(SigmaNNEnum,valueslambda,P2Enum);
    288288        }
    289289
  • issm/trunk-jpl/src/c/analyses/UzawaPressureAnalysis.h

    r25317 r25379  
    1717                void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
    1818                int  DofsPerNode(int** doflist,int domaintype,int approximation);
    19                 void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
     19                void UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type);
    2020                void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
    2121
  • issm/trunk-jpl/src/c/classes/Cfdragcoeffabsgrad.cpp

    r24379 r25379  
    2121#include "../classes/Params/Parameters.h"
    2222#include "../classes/gauss/Gauss.h"
    23 #include "./Inputs2/DatasetInput2.h"
     23#include "./Inputs/DatasetInput.h"
    2424/*}}}*/
    2525
     
    151151
    152152        /*Get input if it already exists*/
    153         DatasetInput2 *datasetinput = basalelement->GetDatasetInput2(definitionenum);  _assert_(datasetinput);
    154         Input2        *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);
    155155
    156156        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/classes/Cfsurfacelogvel.cpp

    r24379 r25379  
    2121#include "../classes/Params/Parameters.h"
    2222#include "../classes/gauss/Gauss.h"
    23 #include "./Inputs2/DatasetInput2.h"
     23#include "./Inputs/DatasetInput.h"
    2424/*}}}*/
    2525
     
    162162
    163163        /*Get model values*/
    164         Input2 *vx_input = topelement->GetInput2(VxEnum); _assert_(vx_input);
    165         Input2 *vy_input = NULL;
     164        Input *vx_input = topelement->GetInput(VxEnum); _assert_(vx_input);
     165        Input *vy_input = NULL;
    166166        if(numcomponents==2){
    167               vy_input = topelement->GetInput2(VyEnum); _assert_(vy_input);
     167              vy_input = topelement->GetInput(VyEnum); _assert_(vy_input);
    168168        }
    169169
    170170        /*Retrieve all inputs we will be needing: */
    171         DatasetInput2 *datasetinput = topelement->GetDatasetInput2(definitionenum); _assert_(datasetinput);
     171        DatasetInput *datasetinput = topelement->GetDatasetInput(definitionenum); _assert_(datasetinput);
    172172
    173173        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/classes/Cfsurfacesquare.cpp

    r24379 r25379  
    2121#include "../classes/Params/Parameters.h"
    2222#include "../classes/gauss/Gauss.h"
    23 #include "./Inputs2/DatasetInput2.h"
     23#include "./Inputs/DatasetInput.h"
    2424/*}}}*/
    2525
     
    167167
    168168        /*Retrieve all inputs we will be needing: */
    169         DatasetInput2 *datasetinput = topelement->GetDatasetInput2(definitionenum); _assert_(datasetinput);
    170         Input2        *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);
    171171
    172172        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r25365 r25379  
    1515#include "../../shared/shared.h"
    1616#include "../../modules/SurfaceMassBalancex/SurfaceMassBalancex.h"
    17 #include "../Inputs2/BoolInput2.h"
    18 #include "../Inputs2/TransientInput2.h"
    19 #include "../Inputs2/ElementInput2.h"
    20 #include "../Inputs2/PentaInput2.h"
    21 #include "../Inputs2/DatasetInput2.h"
    22 #include "../Inputs2/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"
    2323/*}}}*/
    2424#define MAXVERTICES 6 /*Maximum number of vertices per element, currently Penta, to avoid dynamic mem allocation*/
     
    3636        this->sid = -1;
    3737        this->lid = -1;
    38         this->inputs2    = NULL;
     38        this->inputs    = NULL;
    3939        this->nodes      = NULL;
    4040        this->vertices   = NULL;
     
    7272        this->GetVerticesCoordinates(&xyz_list);
    7373        parameters->FindParam(&dim,DomainDimensionEnum);
    74         Input2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    75         Input2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
    76         Input2* vz_input=NULL;
    77         if(dim==3){vz_input=this->GetInput2(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);}
    7878
    7979        /*Allocate arrays*/
     
    132132
    133133        /*Add Stress tensor components into inputs*/
    134         this->AddInput2(LambdaSEnum,&lambdas[0],P1Enum);
     134        this->AddInput(LambdaSEnum,&lambdas[0],P1Enum);
    135135
    136136        /*Clean up and return*/
     
    155155
    156156        /* Retrieve inputs */
    157         Input2* eps_xx_input=this->GetInput2(StrainRatexxEnum); _assert_(eps_xx_input);
    158         Input2* eps_yy_input=this->GetInput2(StrainRateyyEnum); _assert_(eps_yy_input);
    159         Input2* eps_xy_input=this->GetInput2(StrainRatexyEnum); _assert_(eps_xy_input);
    160         Input2* eps_xz_input=NULL;
    161         Input2* eps_yz_input=NULL;
    162         Input2* 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;
    163163        if(dim==3){
    164                 eps_xz_input=this->GetInput2(StrainRatexzEnum); _assert_(eps_xz_input);
    165                 eps_yz_input=this->GetInput2(StrainRateyzEnum); _assert_(eps_yz_input);
    166                 eps_zz_input=this->GetInput2(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);
    167167        }
    168168
     
    172172
    173173        /* Retrieve domain-dependent inputs */
    174         Input2* n_input=this->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);
    175         Input2* damage_input = NULL;
    176         Input2* B_input = NULL;
     174        Input* n_input=this->GetInput(MaterialsRheologyNEnum); _assert_(n_input);
     175        Input* damage_input = NULL;
     176        Input* B_input = NULL;
    177177        int domaintype;
    178178        parameters->FindParam(&domaintype,DomainTypeEnum);
    179179        if(domaintype==Domain2DhorizontalEnum){
    180                 damage_input = this->GetInput2(DamageDbarOldEnum);  _assert_(damage_input);
    181                 B_input=this->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);
     180                damage_input = this->GetInput(DamageDbarOldEnum);  _assert_(damage_input);
     181                B_input=this->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input);
    182182        }
    183183        else{
    184                 damage_input = this->GetInput2(DamageDOldEnum);   _assert_(damage_input);
    185                 B_input=this->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);
     184                damage_input = this->GetInput(DamageDOldEnum);   _assert_(damage_input);
     185                B_input=this->GetInput(MaterialsRheologyBEnum); _assert_(B_input);
    186186        }
    187187
     
    224224
    225225        /* Add new damage input to DamageEnum and NewDamageEnum */
    226         this->AddInput2(NewDamageEnum,newD,P1DGEnum);
     226        this->AddInput(NewDamageEnum,newD,P1DGEnum);
    227227        if(domaintype==Domain2DhorizontalEnum){
    228                 this->AddInput2(DamageDbarEnum,newD,this->GetElementType());
     228                this->AddInput(DamageDbarEnum,newD,this->GetElementType());
    229229        }
    230230        else{
    231                 this->AddInput2(DamageDEnum,newD,this->GetElementType());
     231                this->AddInput(DamageDEnum,newD,this->GetElementType());
    232232        }
    233233
     
    247247        this->GetVerticesCoordinates(&xyz_list);
    248248        parameters->FindParam(&dim,DomainDimensionEnum);
    249         Input2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    250         Input2* vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
    251         Input2* vz_input=NULL;
    252         if(dim==3){vz_input=this->GetInput2(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);}
    253253
    254254        /*Allocate arrays*/
     
    296296
    297297        /*Add Stress tensor components into inputs*/
    298         this->AddInput2(StrainRatexxEnum,eps_xx,P1Enum);
    299         this->AddInput2(StrainRatexyEnum,eps_xy,P1Enum);
    300         this->AddInput2(StrainRatexzEnum,eps_xz,P1Enum);
    301         this->AddInput2(StrainRateyyEnum,eps_yy,P1Enum);
    302         this->AddInput2(StrainRateyzEnum,eps_yz,P1Enum);
    303         this->AddInput2(StrainRatezzEnum,eps_zz,P1Enum);
    304         this->AddInput2(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);
    305305
    306306        /*Clean up and return*/
     
    417417
    418418        _printf_("   inputs\n");
    419         if(inputs2) inputs2->DeepEcho();
    420         else _printf_("inputs2=NULL\n");
     419        if(inputs) inputs->DeepEcho();
     420        else _printf_("inputs=NULL\n");
    421421
    422422        return;
     
    452452
    453453        /*Recover present day temperature and precipitation*/
    454         DatasetInput2* dinput1=this->GetDatasetInput2(SmbTemperaturesPresentdayEnum);   _assert_(dinput1);
    455         DatasetInput2* dinput2=this->GetDatasetInput2(SmbTemperaturesLgmEnum);          _assert_(dinput2);
    456         DatasetInput2* 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);
    457457
    458458        /*loop over vertices: */
     
    492492                for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlytemperatures[i*12+imonth];
    493493                switch(this->ObjectEnum()){
    494                         case TriaEnum: this->inputs2->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;
    495                         case PentaEnum: this->inputs2->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;
    496496                        default: _error_("Not implemented yet");
    497497                }
    498498                for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
    499499                switch(this->ObjectEnum()){
    500                         case TriaEnum: this->inputs2->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;
    501                         case PentaEnum: this->inputs2->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;
    502502                        default: _error_("Not implemented yet");
    503503                }
     
    559559
    560560        /*Recover present day temperature and precipitation*/
    561         DatasetInput2 *dinput3 = NULL;
    562         DatasetInput2 *dinput4 = NULL;
     561        DatasetInput *dinput3 = NULL;
     562        DatasetInput *dinput4 = NULL;
    563563        int            offset_t,offset_p,N;
    564564        if(!isTemperatureScaled){
     
    568568                if(offset_t<0) offset_t=0;
    569569                xDelete<IssmDouble>(time_temp_scaled);
    570                 dinput3=this->GetDatasetInput2(SmbTemperaturesReconstructedEnum); _assert_(dinput3);
     570                dinput3=this->GetDatasetInput(SmbTemperaturesReconstructedEnum); _assert_(dinput3);
    571571        }
    572572        if(!isPrecipScaled){
     
    576576                if(offset_p<0) offset_p=0;
    577577                xDelete<IssmDouble>(time_precip_scaled);
    578                 dinput4=this->GetDatasetInput2(SmbPrecipitationsReconstructedEnum); _assert_(dinput4);
     578                dinput4=this->GetDatasetInput(SmbPrecipitationsReconstructedEnum); _assert_(dinput4);
    579579        }
    580580
    581581        /*Get present day temp and precip (monthly)*/
    582         DatasetInput2 *dinput1 = this->GetDatasetInput2(SmbTemperaturesPresentdayEnum);   _assert_(dinput1);
    583         DatasetInput2 *dinput2 = this->GetDatasetInput2(SmbPrecipitationsPresentdayEnum); _assert_(dinput2);
     582        DatasetInput *dinput1 = this->GetDatasetInput(SmbTemperaturesPresentdayEnum);   _assert_(dinput1);
     583        DatasetInput *dinput2 = this->GetDatasetInput(SmbPrecipitationsPresentdayEnum); _assert_(dinput2);
    584584
    585585        /*loop over vertices: */
     
    617617                for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlytemperatures[i*12+imonth];
    618618                switch(this->ObjectEnum()){
    619                         case TriaEnum:  this->inputs2->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;
    620                         case PentaEnum: this->inputs2->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;
    621621                        default: _error_("Not implemented yet");
    622622                }
    623623                for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
    624624                switch(this->ObjectEnum()){
    625                         case TriaEnum:  this->inputs2->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;
    626                         case PentaEnum: this->inputs2->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;
    627627                        default: _error_("Not implemented yet");
    628628                }
     
    696696        switch(this->ObjectEnum()){
    697697        case TriaEnum:
    698                 this->AddInput2(SmbMassBalanceSubstepEnum,&smb[0],P1Enum);
    699                 this->AddInput2(SmbRunoffSubstepEnum,&runoff[0],P1Enum);
     698                this->AddInput(SmbMassBalanceSubstepEnum,&smb[0],P1Enum);
     699                this->AddInput(SmbRunoffSubstepEnum,&runoff[0],P1Enum);
    700700                break;
    701701        case PentaEnum:
    702                 this->AddInput2(SmbMassBalanceSubstepEnum,&smb[0],P1Enum);
    703                 this->AddInput2(SmbRunoffSubstepEnum,&runoff[0],P1Enum);
     702                this->AddInput(SmbMassBalanceSubstepEnum,&smb[0],P1Enum);
     703                this->AddInput(SmbRunoffSubstepEnum,&runoff[0],P1Enum);
    704704                this->InputExtrude(SmbMassBalanceSubstepEnum,-1);
    705705                this->InputExtrude(SmbRunoffSubstepEnum,-1);
     
    726726        /*Get inputs and parameters*/
    727727        this->FindParam(&dim,DomainDimensionEnum);
    728         Input2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);
    729         Input2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);
    730         Input2* 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;
    731731        if(dim==3){
    732                 vz_input = this->GetInput2(VzEnum); _assert_(vz_input);
     732                vz_input = this->GetInput(VzEnum); _assert_(vz_input);
    733733        }
    734734        this->GetVerticesCoordinates(&xyz_list);
     
    757757        return divergence;
    758758}/*}}}*/
    759 void       Element::dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
     759void       Element::dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
    760760
    761761        /*Intermediaries*/
     
    794794}
    795795/*}}}*/
    796 void       Element::dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     796void       Element::dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    797797
    798798        /*Intermediaries*/
     
    831831}
    832832/*}}}*/
    833 void       Element::dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     833void       Element::dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    834834
    835835        /*Intermediaries*/
     
    868868}
    869869/*}}}*/
    870 void       Element::dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     870void       Element::dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    871871
    872872        /*Intermediaries*/
     
    923923
    924924        _printf_("   inputs\n");
    925         if (inputs2) inputs2->Echo();
    926         else _printf_("inputs2=NULL\n");
     925        if (inputs) inputs->Echo();
     926        else _printf_("inputs=NULL\n");
    927927}
    928928/*}}}*/
     
    10961096/*}}}*/
    10971097void       Element::GetInputListOnNodes(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue){/*{{{*/
    1098         Input2 *input    = this->GetInput2(enumtype);
     1098        Input *input    = this->GetInput(enumtype);
    10991099        this->GetInputListOnNodes(pvalue,input,defaultvalue);
    11001100}
     
    11021102void       Element::GetInputListOnNodes(IssmDouble* pvalue,int enumtype){/*{{{*/
    11031103
    1104         Input2 *input    = this->GetInput2(enumtype);
     1104        Input *input    = this->GetInput(enumtype);
    11051105        if(!input) _error_("Input " << EnumToStringx(enumtype) << " not found in element");
    11061106        this->GetInputListOnNodes(pvalue,input,0.);
     
    11131113
    11141114        int     numnodes = this->NumberofNodesVelocity();
    1115         Input2 *input    = this->GetInput2(enumtype);
     1115        Input *input    = this->GetInput(enumtype);
    11161116        if(!input) _error_("Input " << EnumToStringx(enumtype) << " not found in element");
    11171117
     
    11281128
    11291129        /*Recover input*/
    1130         Input2* input2=this->GetInput2(enumtype);
     1130        Input* input2=this->GetInput(enumtype);
    11311131        if(!input2) _error_("input "<<EnumToStringx(enumtype)<<" not found in element");
    11321132        this->GetInputListOnVertices(pvalue,input2,0.);
     
    11361136
    11371137        /*Recover input*/
    1138         Input2* input=this->GetInput2(enumtype,time);
     1138        Input* input=this->GetInput(enumtype,time);
    11391139        if (!input) _error_("Input " << EnumToStringx(enumtype) << " not found in element");
    11401140        this->GetInputListOnVertices(pvalue,input,0.);
     
    11421142/*}}}*/
    11431143void       Element::GetInputListOnVertices(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue){/*{{{*/
    1144         Input2* input=this->GetInput2(enumtype);
     1144        Input* input=this->GetInput(enumtype);
    11451145        this->GetInputListOnVertices(pvalue,input,defaultvalue);
    11461146}
     
    11731173void       Element::GetInputValue(bool* pvalue,int inputenum){/*{{{*/
    11741174
    1175         this->inputs2->GetInputValue(pvalue,inputenum,this->lid);
     1175        this->inputs->GetInputValue(pvalue,inputenum,this->lid);
    11761176
    11771177}/*}}}*/
    11781178void       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}/*}}}*/
     1183void       Element::GetInputValue(IssmDouble* pvalue,int inputenum){/*{{{*/
     1184
     1185        this->inputs->GetInputValue(pvalue,inputenum,this->lid);
    11941186
    11951187}/*}}}*/
    11961188void       Element::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int inputenum){/*{{{*/
    11971189
    1198         Input2* input=this->GetInput2(inputenum);
     1190        Input* input=this->GetInput(inputenum);
    11991191        if(!input) _error_("Input " << EnumToStringx(inputenum) << " not found in element");
    12001192        input->GetInputValue(pvalue,gauss);
     
    12881280
    12891281        /*Get inputs*/
    1290         Input2* enum_input=this->GetInput2(enum_type); _assert_(enum_input);
     1282        Input* enum_input=this->GetInput(enum_type); _assert_(enum_input);
    12911283
    12921284        /*Ok, we have the values, fill in the array: */
     
    13341326        IssmDouble  value;
    13351327        IssmDouble* values      = NULL;
    1336         Input2*     input       = NULL;
     1328        Input*     input       = NULL;
    13371329
    13381330        switch(type){
    13391331                case ElementSIdEnum:
    1340                         input=this->GetInput2(input_enum); _assert_(input);
     1332                        input=this->GetInput(input_enum); _assert_(input);
    13411333                        input->GetInputAverage(&value);
    13421334                        vector->SetValue(this->sid,value,INS_VAL);
     
    15601552/*}}}*/
    15611553bool       Element::HasNodeOnBase(){/*{{{*/
    1562         Input2* input=this->GetInput2(MeshVertexonbaseEnum); _assert_(input);
     1554        Input* input=this->GetInput(MeshVertexonbaseEnum); _assert_(input);
    15631555        return (input->GetInputMax()>0.);
    15641556}/*}}}*/
    15651557bool       Element::HasNodeOnSurface(){/*{{{*/
    1566         Input2* input=this->GetInput2(MeshVertexonsurfaceEnum); _assert_(input);
     1558        Input* input=this->GetInput(MeshVertexonsurfaceEnum); _assert_(input);
    15671559        return (input->GetInputMax()>0.);
    15681560}/*}}}*/
     
    16241616}
    16251617/*}}}*/
    1626 void       Element::InputCreate(IssmDouble* vector,Inputs2* inputs2,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code){/*{{{*/
     1618void       Element::InputCreate(IssmDouble* vector,Inputs* inputs,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code){/*{{{*/
    16271619
    16281620        /*Intermediaries*/
     
    16481640                if(M==1){
    16491641                        values[0]=vector[0];
    1650                         this->SetElementInput(inputs2,vector_enum,vector[0]);
     1642                        this->SetElementInput(inputs,vector_enum,vector[0]);
    16511643                }
    16521644                else if(M==iomodel->numberofvertices){
    16531645                        for(i=0;i<NUM_VERTICES;i++) values[i]=vector[vertexids[i]-1];
    1654                         this->SetElementInput(inputs2,NUM_VERTICES,vertexlids,values,vector_enum);
     1646                        this->SetElementInput(inputs,NUM_VERTICES,vertexlids,values,vector_enum);
    16551647                }
    16561648                else if(M==iomodel->numberofvertices+1){
     
    16581650                        IssmDouble* times = xNew<IssmDouble>(N);
    16591651                        for(t=0;t<N;t++) times[t] = vector[(M-1)*N+t];
    1660                         inputs2->SetTransientInput(vector_enum,times,N);
    1661                         TransientInput2* transientinput = inputs2->GetTransientInput(vector_enum);
     1652                        inputs->SetTransientInput(vector_enum,times,N);
     1653                        TransientInput* transientinput = inputs->GetTransientInput(vector_enum);
    16621654                        for(t=0;t<N;t++){
    16631655                                for(i=0;i<NUM_VERTICES;i++) values[i]=vector[N*(vertexids[i]-1)+t];
     
    16781670
    16791671                        if (N==this->GetNumberOfNodes(P1Enum)){
    1680                                 this->SetElementInput(inputs2,NUM_VERTICES,vertexlids,values,vector_enum);
     1672                                this->SetElementInput(inputs,NUM_VERTICES,vertexlids,values,vector_enum);
    16811673                        }
    16821674                        else if(N==this->GetNumberOfNodes(P0Enum)){
    1683                                 this->SetElementInput(inputs2,vector_enum,values[0]);
     1675                                this->SetElementInput(inputs,vector_enum,values[0]);
    16841676                        }
    16851677                        else if(N==this->GetNumberOfNodes(P1xP2Enum)){ _assert_(this->ObjectEnum()==PentaEnum);
    1686                                 inputs2->SetPentaInput(vector_enum,P1xP2Enum,this->lid,N,values);
     1678                                inputs->SetPentaInput(vector_enum,P1xP2Enum,this->lid,N,values);
    16871679                        }
    16881680                        else if(N==this->GetNumberOfNodes(P1xP3Enum)){ _assert_(this->ObjectEnum()==PentaEnum);
    1689                                 inputs2->SetPentaInput(vector_enum,P1xP3Enum,this->lid,N,values);
     1681                                inputs->SetPentaInput(vector_enum,P1xP3Enum,this->lid,N,values);
    16901682                        }
    16911683                        else{
     
    17091701                if(M==iomodel->numberofelements){
    17101702                        if (code==5){ //boolean
    1711                                 this->SetBoolInput(inputs2,vector_enum,reCast<bool>(vector[this->Sid()]));
     1703                                this->SetBoolInput(inputs,vector_enum,reCast<bool>(vector[this->Sid()]));
    17121704                        }
    17131705                        else if (code==6){ //integer
    1714                                 this->SetIntInput(inputs2,vector_enum,reCast<int>(vector[this->Sid()]));
     1706                                this->SetIntInput(inputs,vector_enum,reCast<int>(vector[this->Sid()]));
    17151707                        }
    17161708                        else if (code==7){ //IssmDouble
    1717                                 this->SetElementInput(inputs2,vector_enum,vector[this->Sid()]);
     1709                                this->SetElementInput(inputs,vector_enum,vector[this->Sid()]);
    17181710                        }
    17191711                        else _error_("could not recognize nature of vector from code " << code);
     
    17231715                        IssmDouble* times = xNew<IssmDouble>(N);
    17241716                        for(t=0;t<N;t++) times[t] = vector[(M-1)*N+t];
    1725                         inputs2->SetTransientInput(vector_enum,times,N);
    1726                         TransientInput2* transientinput = inputs2->GetTransientInput(vector_enum);
     1717                        inputs->SetTransientInput(vector_enum,times,N);
     1718                        TransientInput* transientinput = inputs->GetTransientInput(vector_enum);
    17271719                        for(t=0;t<N;t++){
    17281720                                value=vector[N*this->Sid()+t];
     
    17431735                        IssmDouble* layers = xNewZeroInit<IssmDouble>(N);
    17441736                        for(t=0;t<N;t++) layers[t] = vector[N*this->Sid()+t];
    1745                         inputs2->SetArrayInput(vector_enum,this->lid,layers,N);
     1737                        inputs->SetArrayInput(vector_enum,this->lid,layers,N);
    17461738                        xDelete<IssmDouble>(layers);
    17471739                }
     
    17511743}
    17521744/*}}}*/
    1753 void       Element::ControlInputCreate(IssmDouble* vector,IssmDouble* min_vector,IssmDouble* max_vector,Inputs2* inputs2,IoModel* iomodel,int M,int N,IssmDouble scale,int input_enum,int id){/*{{{*/
     1745void       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){/*{{{*/
    17541746
    17551747        /*Intermediaries*/
     
    17791771                        values_max[i] = scale*max_vector[vertexids[i]-1];
    17801772                }
    1781                 this->AddControlInput(input_enum,inputs2,iomodel,values,values_min,values_max,P1Enum,id);
     1773                this->AddControlInput(input_enum,inputs,iomodel,values,values_min,values_max,P1Enum,id);
    17821774        }
    17831775        else if(M==iomodel->numberofelements && N==1){
     
    17851777                values_min[0] = scale*min_vector[this->Sid()];
    17861778                values_max[0] = scale*max_vector[this->Sid()];
    1787                 this->AddControlInput(input_enum,inputs2,iomodel,values,values_min,values_max,P0Enum,id);
     1779                this->AddControlInput(input_enum,inputs,iomodel,values,values_min,values_max,P0Enum,id);
    17881780        }
    17891781
     
    18351827}
    18361828/*}}}*/
    1837 void       Element::DatasetInputAdd(int enum_type,IssmDouble* vector,Inputs2* inputs2,IoModel* iomodel,int M,int N,int vector_type,int input_enum,int code,int input_id){/*{{{*/
     1829void       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){/*{{{*/
    18381830        /*enum_type: the name of the DatasetInput (eg Outputdefinition1)
    18391831         * vector: information being stored (eg observations)
     
    18651857                if(M==1){
    18661858                        values[0]=vector[0];
    1867                         //this->AddInput2(vector_enum,values,P0Enum);
     1859                        //this->AddInput(vector_enum,values,P0Enum);
    18681860                        _error_("not implemented yet");
    18691861                }
     
    18711863                        for(i=0;i<NUM_VERTICES;i++) values[i]=vector[vertexids[i]-1];
    18721864                        switch(this->ObjectEnum()){
    1873                                 case TriaEnum:  inputs2->SetTriaDatasetInput(enum_type,input_id,P1Enum,NUM_VERTICES,vertexlids,values); break;
    1874                                 case PentaEnum: inputs2->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;
    18751867                                default: _error_("Not implemented yet for "<<this->ObjectEnum());
    18761868                        }
     
    18801872                        IssmDouble* times = xNew<IssmDouble>(N);
    18811873                        for(t=0;t<N;t++) times[t] = vector[(M-1)*N+t];
    1882                         TransientInput2* transientinput = inputs2->SetDatasetTransientInput(enum_type,input_id,times,N);
     1874                        TransientInput* transientinput = inputs->SetDatasetTransientInput(enum_type,input_id,times,N);
    18831875                        for(t=0;t<N;t++){
    18841876                                for(i=0;i<NUM_VERTICES;i++) values[i]=vector[N*(vertexids[i]-1)+t];
     
    19641956
    19651957        /*update input*/
    1966         this->SetIntInput(this->inputs2,name,constant);
     1958        this->SetIntInput(this->inputs,name,constant);
    19671959}
    19681960/*}}}*/
     
    19821974
    19831975        /*update input*/
    1984         this->SetBoolInput(this->inputs2,name,constant);
     1976        this->SetBoolInput(this->inputs,name,constant);
    19851977}
    19861978/*}}}*/
     
    19971989        parameters->FindParam(&migration_style,GroundinglineMigrationEnum);
    19981990
    1999         Input2* input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
     1991        Input* input = this->GetInput(MaskOceanLevelsetEnum); _assert_(input);
    20001992
    20011993        if(migration_style==SubelementMigrationEnum){ //Floating if all nodes are floating
     
    20172009bool       Element::IsGrounded(){/*{{{*/
    20182010
    2019         Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
     2011        Input* input=this->GetInput(MaskOceanLevelsetEnum); _assert_(input);
    20202012        if(input->GetInputMax() > 0.){
    20212013                return true;
     
    20262018}/*}}}*/
    20272019bool       Element::IsIceInElement(){/*{{{*/
    2028         Input2* input=this->GetInput2(MaskIceLevelsetEnum); _assert_(input);
     2020        Input* input=this->GetInput(MaskIceLevelsetEnum); _assert_(input);
    20292021        return (input->GetInputMin()<0.);
    20302022}
    20312023/*}}}*/
    20322024bool       Element::IsIceOnlyInElement(){/*{{{*/
    2033         Input2* input=this->GetInput2(MaskIceLevelsetEnum); _assert_(input);
     2025        Input* input=this->GetInput(MaskIceLevelsetEnum); _assert_(input);
    20342026        return (input->GetInputMax()<0.);
    20352027}
    20362028/*}}}*/
    20372029bool       Element::IsLandInElement(){/*{{{*/
    2038         Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
     2030        Input* input=this->GetInput(MaskOceanLevelsetEnum); _assert_(input);
    20392031        return (input->GetInputMax()>0.);
    20402032}
    20412033/*}}}*/
    20422034bool       Element::IsOceanInElement(){/*{{{*/
    2043         Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
     2035        Input* input=this->GetInput(MaskOceanLevelsetEnum); _assert_(input);
    20442036        return (input->GetInputMin()<0.);
    20452037}
     
    20782070                this->parameters->FindParam(&mean_tf,&N,BasalforcingsIsmip6AverageTfEnum); _assert_(N==num_basins);
    20792071        }
    2080         Input2* tf_input = this->GetInput2(BasalforcingsIsmip6TfShelfEnum);              _assert_(tf_input);
    2081         Input2* 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);
    20822074        delta_t_basin = delta_t[basinid];
    20832075        if(!islocal) mean_tf_basin = mean_tf[basinid];
     
    21002092
    21012093        /*Return basal melt rate*/
    2102         this->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrate,P1DGEnum);
     2094        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrate,P1DGEnum);
    21032095
    21042096        /*Cleanup and return*/
     
    21442136        }
    21452137
    2146         this->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
     2138        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
    21472139        xDelete<IssmDouble>(base);
    21482140   xDelete<IssmDouble>(perturbation);
     
    21712163        }
    21722164
    2173         this->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
     2165        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
    21742166        xDelete<IssmDouble>(base);
    21752167        xDelete<IssmDouble>(deepwaterel);
     
    22212213        }
    22222214
    2223         this->AddInput2(BasalforcingsGeothermalfluxEnum,values,P1Enum);
     2215        this->AddInput(BasalforcingsGeothermalfluxEnum,values,P1Enum);
    22242216        xDelete<IssmDouble>(xyz_list);
    22252217        xDelete<IssmDouble>(values);
     
    23182310                }
    23192311        }
    2320         this->AddInput2(MaskOceanLevelsetEnum,&phi[0],P1Enum);
     2312        this->AddInput(MaskOceanLevelsetEnum,&phi[0],P1Enum);
    23212313
    23222314        /*Update inputs*/
    2323         this->AddInput2(SurfaceEnum,&s[0],P1Enum);
    2324         this->AddInput2(BaseEnum,&b[0],P1Enum);
     2315        this->AddInput(SurfaceEnum,&s[0],P1Enum);
     2316        this->AddInput(BaseEnum,&b[0],P1Enum);
    23252317
    23262318        /*Delete*/
     
    23582350        }
    23592351
    2360         this->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
     2352        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
    23612353        xDelete<IssmDouble>(base);
    23622354        xDelete<IssmDouble>(bed);
     
    23972389        }
    23982390
    2399         this->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
     2391        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
    24002392        xDelete<IssmDouble>(base);
    24012393        xDelete<IssmDouble>(values);
     
    24302422
    24312423        /*Recover present day temperature and precipitation*/
    2432         DatasetInput2* dinput1=this->GetDatasetInput2(SmbTemperaturesPresentdayEnum);   _assert_(dinput1);
    2433         DatasetInput2* dinput2=this->GetDatasetInput2(SmbTemperaturesLgmEnum);          _assert_(dinput2);
    2434         DatasetInput2* dinput3=this->GetDatasetInput2(SmbPrecipitationsPresentdayEnum); _assert_(dinput3);
    2435         DatasetInput2* 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);
    24362428
    24372429        /*loop over vertices: */
     
    24662458                for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlytemperatures[i*12+imonth];
    24672459                switch(this->ObjectEnum()){
    2468                         case TriaEnum:  this->inputs2->SetTriaDatasetInput(SmbMonthlytemperaturesEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;
    2469                         case PentaEnum: this->inputs2->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;
    24702462                        default: _error_("Not implemented yet");
    24712463                }
    24722464                for(i=0;i<NUM_VERTICES;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
    24732465                switch(this->ObjectEnum()){
    2474                         case TriaEnum:  this->inputs2->SetTriaDatasetInput(SmbPrecipitationEnum,imonth,P1Enum,NUM_VERTICES,vertexlids,tmp); break;
    2475                         case PentaEnum: this->inputs2->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;
    24762468                        default: _error_("Not implemented yet");
    24772469                }
     
    25232515        IssmDouble boxid_max=reCast<IssmDouble>(max_boxid_basin_list[basin_id])+1.;
    25242516
    2525         Input2* dist_gl_input=this->GetInput2(DistanceToGroundinglineEnum); _assert_(dist_gl_input);
    2526         Input2* 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);
    25272519
    25282520        /*Get dist_gl and dist_cf at center of element*/
     
    25512543        if(boxid==-1) _error_("No boxid found for element " << this->Sid() << "!");
    25522544
    2553         this->SetIntInput(this->inputs2,BasalforcingsPicoBoxIdEnum, boxid);
     2545        this->SetIntInput(this->inputs,BasalforcingsPicoBoxIdEnum, boxid);
    25542546
    25552547}/*}}}*/
     
    25902582        this->GetInputValue(&basinid,BasalforcingsPicoBasinIdEnum);
    25912583        this->parameters->FindParam(&isplume, BasalforcingsPicoIsplumeEnum);
    2592         Input2 *thickness_input    = this->GetInput2(ThicknessEnum);                         _assert_(thickness_input);
     2584        Input *thickness_input    = this->GetInput(ThicknessEnum);                         _assert_(thickness_input);
    25932585        _assert_(basinid<=num_basins);
    25942586
     
    26142606                IssmDouble      s1                              = soc_farocean/(nu*lambda);
    26152607                IssmDouble* overturnings        = xNew<IssmDouble>(NUM_VERTICES);
    2616                 Input2 *overturningC_input = this->GetInput2(BasalforcingsPicoOverturningCoeffEnum); _assert_(overturningC_input);
     2608                Input *overturningC_input = this->GetInput(BasalforcingsPicoOverturningCoeffEnum); _assert_(overturningC_input);
    26172609
    26182610                /* Start looping on the number of verticies and calculate ocean vars */
     
    26372629                }
    26382630
    2639                 if(!isplume) this->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum);
    2640                 this->AddInput2(BasalforcingsPicoSubShelfOceanTempEnum,Tocs,P1DGEnum);
    2641                 this->AddInput2(BasalforcingsPicoSubShelfOceanSalinityEnum,Socs,P1DGEnum);
    2642                 this->AddInput2(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);
    26432635
    26442636                /*Cleanup and return*/
     
    26732665                }
    26742666
    2675                 if(!isplume) this->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum);
    2676                 this->AddInput2(BasalforcingsPicoSubShelfOceanTempEnum,Tocs,P1DGEnum);
    2677                 this->AddInput2(BasalforcingsPicoSubShelfOceanSalinityEnum,Socs,P1DGEnum);
     2667                if(!isplume) this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum);
     2668                this->AddInput(BasalforcingsPicoSubShelfOceanTempEnum,Tocs,P1DGEnum);
     2669                this->AddInput(BasalforcingsPicoSubShelfOceanSalinityEnum,Socs,P1DGEnum);
    26782670
    26792671                /*Cleanup and return*/
     
    27312723
    27322724        /*Get inputs*/
    2733         Input2* zgl_input         = this->GetInput2(GroundinglineHeightEnum);                     _assert_(zgl_input);
    2734         Input2* toc_input         = this->GetInput2(BasalforcingsPicoSubShelfOceanTempEnum);      _assert_(toc_input);
    2735         Input2* soc_input         = this->GetInput2(BasalforcingsPicoSubShelfOceanSalinityEnum);  _assert_(soc_input);
    2736         Input2* base_input        = this->GetInput2(BaseEnum);                                    _assert_(base_input);
    2737         Input2* baseslopex_input  = this->GetInput2(BaseSlopeXEnum);                              _assert_(baseslopex_input);
    2738         Input2* 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);
    27392731        this->FindParam(&yts, ConstantsYtsEnum);
    27402732
     
    27862778
    27872779        /*Save computed melt-rate*/
    2788         this->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum);
     2780        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1DGEnum);
    27892781
    27902782        /*Cleanup and return*/
     
    28332825
    28342826        /*Get inputs*/
    2835         DatasetInput2* dinput =this->GetDatasetInput2(SmbMonthlytemperaturesEnum); _assert_(dinput);
    2836         DatasetInput2* dinput2=this->GetDatasetInput2(SmbPrecipitationEnum);       _assert_(dinput2);
     2827        DatasetInput* dinput =this->GetDatasetInput(SmbMonthlytemperaturesEnum); _assert_(dinput);
     2828        DatasetInput* dinput2=this->GetDatasetInput(SmbPrecipitationEnum);       _assert_(dinput2);
    28372829
    28382830        /*loop over vertices: */
     
    28662858         *     This parameter is set, if the user wants to define the
    28672859         *     pdd factors regionally, if issetpddfac==1 in the d18opdd method */
    2868         Input2* input  = NULL;
    2869         Input2* input2 = NULL;
     2860        Input* input  = NULL;
     2861        Input* input2 = NULL;
    28702862        if(issetpddfac==1){
    2871                 input  = this->GetInput2(SmbPddfacSnowEnum); _assert_(input);
    2872                 input2 = this->GetInput2(SmbPddfacIceEnum); _assert_(input2);
     2863                input  = this->GetInput(SmbPddfacSnowEnum); _assert_(input);
     2864                input2 = this->GetInput(SmbPddfacIceEnum); _assert_(input2);
    28732865        }
    28742866
     
    29012893        switch(this->ObjectEnum()){
    29022894                case TriaEnum:
    2903                         this->AddInput2(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum);
    2904                         this->AddInput2(SmbMassBalanceEnum,&agd[0],P1Enum);
    2905                         this->AddInput2(SmbAccumulationEnum,&accu[0],P1Enum);
    2906                         this->AddInput2(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);
    29072899                        break;
    29082900                case PentaEnum:
     
    29112903                                 * the temperatures as they are for the base of the penta and
    29122904                                 * yse yearlytemperatures for the top*/
    2913                                 PentaInput2* temp_input = xDynamicCast<PentaInput2*>(this->GetInput2(TemperatureEnum)); _assert_(temp_input);
     2905                                PentaInput* temp_input = xDynamicCast<PentaInput*>(this->GetInput(TemperatureEnum)); _assert_(temp_input);
    29142906                                switch(temp_input->GetInputInterpolationType()){
    29152907                                        case P1Enum:
     
    29352927                                if(isenthalpy){
    29362928                                        /*Convert that to enthalpy for the enthalpy model*/
    2937                                         PentaInput2* enth_input = xDynamicCast<PentaInput2*>(this->GetInput2(EnthalpyEnum)); _assert_(enth_input);
     2929                                        PentaInput* enth_input = xDynamicCast<PentaInput*>(this->GetInput(EnthalpyEnum)); _assert_(enth_input);
    29382930                                        switch(enth_input->GetInputInterpolationType()){
    29392931                                                case P1Enum:
     
    29562948                                }
    29572949                        }
    2958                         this->AddInput2(SmbMassBalanceEnum,&agd[0],P1Enum);
    2959                         this->AddInput2(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum);
    2960                         this->AddInput2(SmbAccumulationEnum,&accu[0],P1Enum);
    2961                         this->AddInput2(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);
    29622954                        this->InputExtrude(TemperaturePDDEnum,-1);
    29632955                        this->InputExtrude(SmbMassBalanceEnum,-1);
     
    30293021
    30303022        /*Get inputs*/
    3031         DatasetInput2* dinput =this->GetDatasetInput2(SmbMonthlytemperaturesEnum); _assert_(dinput);
    3032         DatasetInput2* dinput2=this->GetDatasetInput2(SmbPrecipitationEnum);       _assert_(dinput2);
     3023        DatasetInput* dinput =this->GetDatasetInput(SmbMonthlytemperaturesEnum); _assert_(dinput);
     3024        DatasetInput* dinput2=this->GetDatasetInput(SmbPrecipitationEnum);       _assert_(dinput2);
    30333025
    30343026        /*loop over vertices: */
     
    30773069        switch(this->ObjectEnum()){
    30783070                case TriaEnum:
    3079                         //this->AddInput2(TemperatureEnum,&yearlytemperatures[0],P1Enum);
    3080                         this->AddInput2(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum);
    3081                         this->AddInput2(SmbMassBalanceEnum,&smb[0],P1Enum);
    3082                         this->AddInput2(SmbAccumulationEnum,&accu[0],P1Enum);
    3083                         this->AddInput2(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);
    30843076                        break;
    30853077                case PentaEnum:
     
    30953087
    30963088                                        /*FIXME: look at other function Element::PositiveDegreeDay and propagate change! Just assert for now*/
    3097                                         PentaInput2* temp_input = xDynamicCast<PentaInput2*>(this->GetInput2(TemperatureEnum)); _assert_(temp_input);
     3089                                        PentaInput* temp_input = xDynamicCast<PentaInput*>(this->GetInput(TemperatureEnum)); _assert_(temp_input);
    30983090                                        switch(temp_input->GetInputInterpolationType()){
    30993091                                                case P1Enum:
     
    31183110                                        if(isenthalpy){
    31193111                                                /*Convert that to enthalpy for the enthalpy model*/
    3120                                                 PentaInput2* enth_input = xDynamicCast<PentaInput2*>(this->GetInput2(EnthalpyEnum)); _assert_(enth_input);
     3112                                                PentaInput* enth_input = xDynamicCast<PentaInput*>(this->GetInput(EnthalpyEnum)); _assert_(enth_input);
    31213113                                                switch(enth_input->GetInputInterpolationType()){
    31223114                                                        case P1Enum:
     
    31413133                                }
    31423134                        }
    3143                         this->AddInput2(SmbMassBalanceEnum,&smb[0],P1Enum);
    3144                         this->AddInput2(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum);
    3145                         this->AddInput2(SmbAccumulationEnum,&accu[0],P1Enum);
    3146                         this->AddInput2(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);
    31473139                        this->InputExtrude(TemperaturePDDEnum,-1);
    31483140                        this->InputExtrude(SmbMassBalanceEnum,-1);
     
    32363228                case SurfaceCrevasseEnum: this->CalvingCrevasseDepth(); break;
    32373229                case SigmaVMEnum: this->CalvingRateVonmises(); break;
    3238                 case PartitioningEnum: this->inputs2->SetInput(PartitioningEnum,this->lid,IssmComm::GetRank()); break;
     3230                case PartitioningEnum: this->inputs->SetInput(PartitioningEnum,this->lid,IssmComm::GetRank()); break;
    32393231        }
    32403232
    32413233        /*If this input is not already in Inputs, maybe it needs to be computed?*/
    3242         switch(this->inputs2->GetInputObjectEnum(output_enum)){
    3243                 case TriaInput2Enum:
    3244                 case PentaInput2Enum:
    3245                 case TransientInput2Enum:{
    3246                         Input2* 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);
    32473239                        if(!input2) _error_("input "<<EnumToStringx(output_enum)<<" not found in element");
    32483240                        *pinterpolation   = input2->GetResultInterpolation();
     
    32513243                        }
    32523244                        break;
    3253                 case BoolInput2Enum:
     3245                case BoolInputEnum:
    32543246                        *pinterpolation   = P0Enum;
    32553247                        *pnodesperelement = 1;
    32563248                        *parray_size      = 1;
    32573249                        break;
    3258                 case IntInput2Enum:
     3250                case IntInputEnum:
    32593251                        *pinterpolation   = P0Enum;
    32603252                        *pnodesperelement = 1;
    32613253                        *parray_size      = 1;
    32623254                        break;
    3263                 case ArrayInput2Enum:{
     3255                case ArrayInputEnum:{
    32643256                        int M;
    3265                         this->inputs2->GetArray(output_enum,this->lid,NULL,&M);
     3257                        this->inputs->GetArray(output_enum,this->lid,NULL,&M);
    32663258                        *pinterpolation   = P0ArrayEnum;
    32673259                        *pnodesperelement = 1;
     
    32703262                        break;
    32713263                default:
    3272                         _error_("Input type \""<<EnumToStringx(this->inputs2->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)<<")");
    32733265        }
    32743266
     
    32813273
    32823274        /*Find input*/
    3283         Input2* input=this->GetInput2(output_enum);
     3275        Input* input=this->GetInput(output_enum);
    32843276        if(!input) _error_("input "<<EnumToStringx(output_enum)<<" not found in element");
    32853277
    32863278        /*Cast to ElementInput*/
    3287         if(input->ObjectEnum()!=TriaInput2Enum && input->ObjectEnum()!=PentaInput2Enum){
    3288                 _error_("Input "<<EnumToStringx(output_enum)<<" is not an ElementInput2");
    3289         }
    3290         ElementInput2* 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);
    32913283
    32923284        /*Get Number of nodes and make sure that it is the same as the one provided*/
     
    33023294        IssmDouble* array = NULL;
    33033295        int         m;
    3304         this->inputs2->GetArray(output_enum,this->lid,&array,&m);
     3296        this->inputs->GetArray(output_enum,this->lid,&array,&m);
    33053297        for(int i=0;i<m;i++) values[this->Sid()*ncols + i] = array[i];
    33063298        xDelete<IssmDouble>(array);
     
    33133305        int        sidlist[MAXVERTICES];
    33143306
    3315         switch(this->inputs2->GetInputObjectEnum(output_enum)){
    3316                 case TriaInput2Enum:
    3317                 case PentaInput2Enum:
    3318                 case TransientInput2Enum:{
    3319 
    3320                         Input2* 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);
    33213313                        if(!input2) _error_("input "<<EnumToStringx(output_enum)<<" not found in element");
    33223314
     
    33483340                        }
    33493341                        break;
    3350                 case BoolInput2Enum:
     3342                case BoolInputEnum:
    33513343                        bool bvalue;
    3352                         this->GetInput2Value(&bvalue,output_enum);
     3344                        this->GetInputValue(&bvalue,output_enum);
    33533345                        vector->SetValue(this->Sid(),reCast<IssmDouble>(bvalue),INS_VAL);
    33543346                        break;
    3355                 case IntInput2Enum:
     3347                case IntInputEnum:
    33563348                        int ivalue;
    3357                         this->GetInput2Value(&ivalue,output_enum);
     3349                        this->GetInputValue(&ivalue,output_enum);
    33583350                        vector->SetValue(this->Sid(),reCast<IssmDouble>(ivalue),INS_VAL);
    33593351                        break;
    33603352                default:
    3361                         _error_("Input type \""<<EnumToStringx(this->inputs2->GetInputObjectEnum(output_enum))<<"\" not supported yet");
     3353                        _error_("Input type \""<<EnumToStringx(this->inputs->GetInputObjectEnum(output_enum))<<"\" not supported yet");
    33623354        }
    33633355
    33643356} /*}}}*/
    3365 void       Element::SetBoolInput(Inputs2* inputs2,int enum_in,bool value){/*{{{*/
    3366 
    3367         _assert_(inputs2);
    3368         inputs2->SetInput(enum_in,this->lid,value);
    3369 
    3370 }
    3371 /*}}}*/
    3372 void       Element::SetIntInput(Inputs2* inputs2,int enum_in,int value){/*{{{*/
    3373 
    3374         _assert_(inputs2);
    3375         inputs2->SetInput(enum_in,this->lid,value);
     3357void       Element::SetBoolInput(Inputs* inputs,int enum_in,bool value){/*{{{*/
     3358
     3359        _assert_(inputs);
     3360        inputs->SetInput(enum_in,this->lid,value);
     3361
     3362}
     3363/*}}}*/
     3364void       Element::SetIntInput(Inputs* inputs,int enum_in,int value){/*{{{*/
     3365
     3366        _assert_(inputs);
     3367        inputs->SetInput(enum_in,this->lid,value);
    33763368
    33773369}
     
    34343426        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    34353427        if(analysis_type==StressbalanceAnalysisEnum){
    3436                 this->GetInput2Value(&approximation,ApproximationEnum);
     3428                this->GetInputValue(&approximation,ApproximationEnum);
    34373429                if(approximation==SSAHOApproximationEnum || approximation==SSAFSApproximationEnum){
    34383430                        parameters->FindParam(&numlayers,MeshNumberoflayersEnum);
     
    34993491        for (int iday = 0; iday < 365; iday++){
    35003492                /* Retrieve inputs: */
    3501                 Input2* dailysnowfall_input    = this->GetInput2(SmbDailysnowfallEnum,time_yr+(iday+1)/365.*yts); _assert_(dailysnowfall_input);
    3502                 Input2* dailyrainfall_input    = this->GetInput2(SmbDailyrainfallEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyrainfall_input);
    3503                 Input2* dailydlradiation_input = this->GetInput2(SmbDailydlradiationEnum,time_yr+(iday+1)/365.*yts); _assert_(dailydlradiation_input);
    3504                 Input2* dailydsradiation_input = this->GetInput2(SmbDailydsradiationEnum,time_yr+(iday+1)/365.*yts); _assert_(dailydsradiation_input);
    3505                 Input2* dailywindspeed_input   = this->GetInput2(SmbDailywindspeedEnum,time_yr+(iday+1)/365.*yts); _assert_(dailywindspeed_input);
    3506                 Input2* dailypressure_input    = this->GetInput2(SmbDailypressureEnum,time_yr+(iday+1)/365.*yts); _assert_(dailypressure_input);
    3507                 Input2* dailyairdensity_input  = this->GetInput2(SmbDailyairdensityEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyairdensity_input);
    3508                 Input2* dailyairhumidity_input = this->GetInput2(SmbDailyairhumidityEnum,time_yr+(iday+1)/365.*yts); _assert_(dailyairhumidity_input);
    3509                 Input2* 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);
    35103502
    35113503                for(int iv=0;iv<NUM_VERTICES;iv++){
     
    35503542        switch(this->ObjectEnum()){
    35513543                case TriaEnum:
    3552                         this->AddInput2(TemperatureSEMICEnum,&tsurf_out[0],P1Enum); // TODO add TemperatureSEMICEnum to EnumDefinitions
    3553                         this->AddInput2(SmbMassBalanceEnum,&smb_out[0],P1Enum);
    3554                         this->AddInput2(SmbAccumulationEnum,&saccu_out[0],P1Enum);
    3555                         this->AddInput2(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);
    35563548                        break;
    35573549                case PentaEnum:
     
    37113703        /*}}}*/
    37123704        /*Retrieve inputs: {{{*/
    3713         Input2 *zTop_input          = this->GetInput2(SmbZTopEnum);         _assert_(zTop_input);
    3714         Input2 *dzTop_input         = this->GetInput2(SmbDzTopEnum);        _assert_(dzTop_input);
    3715         Input2 *dzMin_input         = this->GetInput2(SmbDzMinEnum);        _assert_(dzMin_input);
    3716         Input2 *zMax_input          = this->GetInput2(SmbZMaxEnum);         _assert_(zMax_input);
    3717         Input2 *zMin_input          = this->GetInput2(SmbZMinEnum);         _assert_(zMin_input);
    3718         Input2 *zY_input            = this->GetInput2(SmbZYEnum);           _assert_(zY_input);
    3719         Input2 *Tmean_input         = this->GetInput2(SmbTmeanEnum);        _assert_(Tmean_input);
    3720         Input2 *Vmean_input         = this->GetInput2(SmbVmeanEnum);        _assert_(Vmean_input);
    3721         Input2 *C_input             = this->GetInput2(SmbCEnum);            _assert_(C_input);
    3722         Input2 *Tz_input            = this->GetInput2(SmbTzEnum);           _assert_(Tz_input);
    3723         Input2 *Vz_input            = this->GetInput2(SmbVzEnum);           _assert_(Vz_input);
    3724         Input2 *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;
    37253717
    37263718        /*Retrieve input values:*/
     
    37473739                //dz[i] << "\n");
    37483740
    3749                 this->inputs2->GetArray(SmbDziniEnum,this->lid,&dzini,&m);
    3750                 this->inputs2->GetArray(SmbDiniEnum,this->lid,&dini,&m);
    3751                 this->inputs2->GetArray(SmbReiniEnum,this->lid,&reini,&m);
    3752                 this->inputs2->GetArray(SmbGdniniEnum,this->lid,&gdnini,&m);
    3753                 this->inputs2->GetArray(SmbGspiniEnum,this->lid,&gspini,&m);
    3754                 this->inputs2->GetArray(SmbWiniEnum,this->lid,&Wini,&m);
    3755                 this->inputs2->GetArray(SmbAiniEnum,this->lid,&aini,&m);
    3756                 this->inputs2->GetArray(SmbTiniEnum,this->lid,&Tini,&m);
    3757                 EC_input = this->GetInput2(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);
    37583750                EC_input->GetInputAverage(&EC);
    37593751
    37603752                /*Retrieve the correct value of m (without the zeroes at the end)*/
    3761                 this->GetInput2Value(&m,SmbSizeiniEnum);
     3753                this->GetInputValue(&m,SmbSizeiniEnum);
    37623754
    37633755                if(m==2){ //Snow properties are initialized with default values. Vertical grid has to be initialized too
     
    37993791
    38003792                /*Flag the initialization:*/
    3801                 this->SetBoolInput(this->inputs2,SmbIsInitializedEnum,true);
     3793                this->SetBoolInput(this->inputs,SmbIsInitializedEnum,true);
    38023794        }
    38033795        else{
    38043796                /*Recover inputs: */
    3805                 this->inputs2->GetArray(SmbDzEnum,this->lid,&dz,&m);
    3806                 this->inputs2->GetArray(SmbDEnum,this->lid,&d,&m);
    3807                 this->inputs2->GetArray(SmbReEnum,this->lid,&re,&m);
    3808                 this->inputs2->GetArray(SmbGdnEnum,this->lid,&gdn,&m);
    3809                 this->inputs2->GetArray(SmbGspEnum,this->lid,&gsp,&m);
    3810                 this->inputs2->GetArray(SmbWEnum,this->lid,&W,&m);
    3811                 this->inputs2->GetArray(SmbAEnum,this->lid,&a,&m);
    3812                 this->inputs2->GetArray(SmbTEnum,this->lid,&T,&m);
    3813                 EC_input = this->GetInput2(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);
    38143806                EC_input->GetInputAverage(&EC);
    38153807
     
    38333825        /*Get daily accumulated inputs {{{*/
    38343826        if (count>1){
    3835                 Input2 *sumEC_input         = this->GetInput2(SmbECEnum);  _assert_(sumEC_input);
    3836                 Input2 *sumM_input          = this->GetInput2(SmbMeltEnum);  _assert_(sumM_input);
    3837                 Input2 *sumR_input          = this->GetInput2(SmbRunoffEnum);  _assert_(sumR_input);
    3838                 Input2 *sumP_input          = this->GetInput2(SmbPrecipitationEnum);  _assert_(sumP_input);
    3839                 Input2 *ULW_input           = this->GetInput2(SmbMeanULWEnum);  _assert_(ULW_input);
    3840                 Input2 *LW_input            = this->GetInput2(SmbNetLWEnum);  _assert_(LW_input);
    3841                 Input2 *SW_input            = this->GetInput2(SmbNetSWEnum);  _assert_(SW_input);
    3842                 Input2 *LHF_input           = this->GetInput2(SmbMeanLHFEnum);  _assert_(LHF_input);
    3843                 Input2 *SHF_input           = this->GetInput2(SmbMeanSHFEnum);  _assert_(SHF_input);
    3844                 Input2 *DzAdd_input         = this->GetInput2(SmbDzAddEnum);  _assert_(DzAdd_input);
    3845                 Input2 *MassAdd_input       = this->GetInput2(SmbMAddEnum);  _assert_(MassAdd_input);
    3846                 Input2 *InitMass_input      = this->GetInput2(SmbMInitnum);  _assert_(InitMass_input);
    3847                 Input2 *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);
    38483840
    38493841                ULW_input->GetInputAverage(&meanULW);
     
    38703862
    38713863        // Get time forcing inputs
    3872         Input2 *Ta_input  = this->GetInput2(SmbTaEnum,timeinputs);    _assert_(Ta_input);
    3873         Input2 *V_input   = this->GetInput2(SmbVEnum,timeinputs);     _assert_(V_input);
    3874         Input2 *Dlwr_input= this->GetInput2(SmbDlwrfEnum,timeinputs); _assert_(Dlwr_input);
    3875         Input2 *Dswr_input= this->GetInput2(SmbDswrfEnum,timeinputs); _assert_(Dswr_input);
    3876         Input2 *P_input   = this->GetInput2(SmbPEnum,timeinputs);     _assert_(P_input);
    3877         Input2 *eAir_input= this->GetInput2(SmbEAirEnum,timeinputs);  _assert_(eAir_input);
    3878         Input2 *pAir_input= this->GetInput2(SmbPAirEnum,timeinputs);  _assert_(pAir_input);
    3879         Input2 *teValue_input= this->GetInput2(SmbTeValueEnum,timeinputs); _assert_(teValue_input);
    3880         Input2 *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);
    38813873
    38823874        /*extract daily data:{{{*/
     
    39943986
    39953987        /*Save generated inputs: */
    3996         this->inputs2->SetArrayInput(SmbDzEnum,this->lid,dz,m);
    3997         this->inputs2->SetArrayInput(SmbDEnum,this->lid,d,m);
    3998         this->inputs2->SetArrayInput(SmbReEnum,this->lid,re,m);
    3999         this->inputs2->SetArrayInput(SmbGdnEnum,this->lid,gdn,m);
    4000         this->inputs2->SetArrayInput(SmbGspEnum,this->lid,gsp,m);
    4001         this->inputs2->SetArrayInput(SmbTEnum,this->lid,T,m);
    4002         this->inputs2->SetArrayInput(SmbWEnum,this->lid,W,m);
    4003         this->inputs2->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);
    40043996        this->SetElementInput(SmbECEnum,sumEC/dt/rho_ice);
    40053997        this->SetElementInput(SmbMassBalanceEnum,(sumP + sumEC -sumR)/dt/rho_ice);
     
    40434035}
    40444036/*}}}*/
    4045 void       Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     4037void       Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    40464038
    40474039        /*Intermediaries*/
     
    40634055
    40644056}/*}}}*/
    4065 void       Element::StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
     4057void       Element::StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
    40664058        /*Compute the 3d Strain Rate (6 components):
    40674059         *
     
    40924084
    40934085}/*}}}*/
    4094 void       Element::StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     4086void       Element::StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    40954087        /*Compute the 3d Blatter/HOStrain Rate (5 components):
    40964088         *
     
    41224114
    41234115}/*}}}*/
    4124 void       Element::StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     4116void       Element::StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    41254117        /*Compute the 2d Blatter/HOStrain Rate (2 components):
    41264118         *
     
    41464138
    41474139}/*}}}*/
    4148 void       Element::StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     4140void       Element::StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    41494141
    41504142        /*Intermediaries*/
     
    41654157
    41664158}/*}}}*/
    4167 void       Element::StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input){/*{{{*/
     4159void       Element::StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input){/*{{{*/
    41684160
    41694161        /*Intermediaries*/
     
    42014193        /*Retrieve all inputs and parameters*/
    42024194        this->GetVerticesCoordinatesBase(&xyz_list);
    4203         Input2* sigma_xx_input  = this->GetInput2(StressTensorxxEnum); _assert_(sigma_xx_input);
    4204         Input2* sigma_yy_input  = this->GetInput2(StressTensoryyEnum); _assert_(sigma_yy_input);
    4205         Input2* sigma_xy_input  = this->GetInput2(StressTensorxyEnum); _assert_(sigma_xy_input);
    4206         Input2* sigma_xz_input  = NULL;
    4207         Input2* sigma_yz_input  = NULL;
    4208         Input2* 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;
    42094201        if(dim==3){
    4210                 sigma_xz_input  = this->GetInput2(StressTensorxzEnum); _assert_(sigma_xz_input);
    4211                 sigma_yz_input  = this->GetInput2(StressTensoryzEnum); _assert_(sigma_yz_input);
    4212                 sigma_zz_input  = this->GetInput2(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);
    42134205        }
    42144206
     
    42604252
    42614253        /*Create input*/
    4262         this->AddInput2(StressMaxPrincipalEnum,maxprincipal,P1Enum);
     4254        this->AddInput(StressMaxPrincipalEnum,maxprincipal,P1Enum);
    42634255
    42644256        /*Clean up and return*/
     
    45444536        /*Retrieve all inputs and parameters*/
    45454537        this->GetVerticesCoordinates(&xyz_list);
    4546         Input2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);
    4547         Input2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);
    4548         Input2* 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);
    45494541
    45504542        /*loop over vertices: */
     
    45594551
    45604552        /*Create PentaVertex input, which will hold the basal friction:*/
    4561         this->AddInput2(ViscousHeatingEnum,viscousheating,P1Enum);
     4553        this->AddInput(ViscousHeatingEnum,viscousheating,P1Enum);
    45624554
    45634555        /*Clean up and return*/
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r25318 r25379  
    2323class Materials;
    2424class Material;
    25 class Inputs2;
    2625class Inputs;
    27 class Input2;
     26class Inputs;
    2827class Input;
    29 class ElementInput2;
    30 class DatasetInput2;
     28class Input;
     29class ElementInput;
     30class DatasetInput;
    3131class IoModel;
    3232class SealevelMasks;
     
    4545                int          sid;
    4646                int          lid;
    47                 Inputs2     *inputs2;
     47                Inputs     *inputs;
    4848                Node       **nodes;
    4949                Vertex     **vertices;
     
    7575                void               SmbGradCompParameterization(void);
    7676                IssmDouble         Divergence(void);
    77                 void               dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
    78                 void               dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    79                 void               dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    80                 void               dViscositydDSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* 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);
    8181                void               Echo();
    8282                void               FindParam(bool* pvalue,int paramenum);
     
    101101                void               GetInputValue(bool* pvalue,int enum_type);
    102102                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);
    106104                void               GetInputValue(IssmDouble* pvalue,Gauss* gauss,int enum_type);
    107105                Node*              GetNode(int nodeindex);
     
    130128                IssmDouble         IceVolumeAboveFloatation(IssmDouble* mask, bool scaled);
    131129                int                Id();
    132                 void               InputCreate(IssmDouble* vector,Inputs2* 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,Inputs2*inputs2,IoModel* iomodel,int M,int N,IssmDouble scale,int input_enum,int id);
    134                 void                                     DatasetInputAdd(int enum_type,IssmDouble* vector,Inputs2* 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);
    135133                void               InputUpdateFromConstant(IssmDouble constant, int name);
    136134                void               InputUpdateFromConstant(int constant, int name);
     
    167165                void               ResultToVector(Vector<IssmDouble>* vector,int output_enum);
    168166                void               SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
    169                 void               SetBoolInput(Inputs2* inputs2,int enum_in,bool value);
    170 
    171                 void               SetIntInput(Inputs2* 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);
    172170                void               SmbSemic();
    173171                int                Sid();
    174172                void               SmbGemb(IssmDouble timeinputs, int count);
    175                 void               StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    176                 void               StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
    177                 void               StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    178                 void               StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    179                 void               StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    180                 void               StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* 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);
    181179                void               StressMaxPrincipalCreateInput(void);
    182180                IssmDouble         TotalFloatingBmb(IssmDouble* mask, bool scaled);
     
    213211
    214212                /*Virtual functions*/
    215                 virtual void       AddBasalInput2(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented");};
    216                 virtual void       AddInput2(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented");};
    217                 virtual void       AddControlInput(int input_enum,Inputs2* 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,Inputs2* 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");};
    219217                virtual void       AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part)=0;
    220218                virtual void             BasalNodeIndices(int* pnumindices,int** pindices,int finiteelement){_error_("not implemented yet");};
     
    230228                virtual void       ComputeStressTensor(void)=0;
    231229                virtual void       ComputeEsaStrainAndVorticity(void)=0;
    232                 virtual void       Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters,Inputs2* inputs2in)=0;
     230                virtual void       Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters,Inputs* inputsin)=0;
    233231                virtual void       ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp)=0;
    234232                virtual void       ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp)=0;
     
    247245                virtual IssmDouble GetIcefrontArea(){_error_("not implemented");};
    248246                virtual void       GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum)=0;
    249                 virtual DatasetInput2* GetDatasetInput2(int inputenum){_error_("not implemented");};
    250                 virtual Input2*    GetInput2(int inputenum)=0;
    251                 virtual Input2*    GetInput2(int inputenum,IssmDouble time)=0;
    252                 virtual Input2*    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;
    253251                virtual void       GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype){_error_("not implemented yet");};
    254252                virtual void       GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){_error_("not implemented yet");};
    255                 virtual void       GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value)=0;
    256                 virtual void       GetInputListOnNodes(IssmDouble* pvalue,Input2* 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;
    257255                virtual void       GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level)=0;
    258256                virtual void       GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues)=0;
     
    332330                virtual void       RignotMeltParameterization(void){_error_("not implemented yet");};
    333331                virtual void       SetElementInput(int enum_in,IssmDouble values){_error_("not implemented yet");};
    334                 virtual void       SetElementInput(Inputs2* inputs2,int enum_in,IssmDouble values){_error_("not implemented yet");};
    335                 virtual void       SetElementInput(Inputs2* 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");};
    336334                virtual void       SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset,int M,int N)=0;
    337335                virtual void       SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters)=0;
     
    352350                virtual IssmDouble TotalGroundedBmb(bool scaled)=0;
    353351                virtual IssmDouble TotalSmb(bool scaled)=0;
    354                 virtual void       Update(Inputs2* 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;
    355353                virtual void       UpdateConstraintsExtrudeFromBase(void)=0;
    356354                virtual void       UpdateConstraintsExtrudeFromTop(void)=0;
     
    362360                virtual void       VerticalSegmentIndices(int** pindices,int* pnumseg)=0;
    363361                virtual void       VerticalSegmentIndicesBase(int** pindices,int* pnumseg)=0;
    364                 virtual void       ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input2* 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");};
    365363                virtual void       WriteFieldIsovalueSegment(DataSet* segments,int fieldenum,IssmDouble fieldvalue){_error_("not implemented yet");};
    366364
  • issm/trunk-jpl/src/c/classes/Elements/Elements.cpp

    r24335 r25379  
    3434
    3535/*Object management*/
    36 void Elements::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs2* inputs2){/*{{{*/
     36void Elements::Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs* inputs){/*{{{*/
    3737
    3838        vector<Object*>::iterator object;
     
    4040        for(object=objects.begin() ; object < objects.end(); object++ ){
    4141                Element* element=xDynamicCast<Element*>((*object));
    42                 element->Configure(elements,loads,nodes,vertices,materials,parameters,inputs2);
     42                element->Configure(elements,loads,nodes,vertices,materials,parameters,inputs);
    4343        }
    4444
  • issm/trunk-jpl/src/c/classes/Elements/Elements.h

    r24335 r25379  
    2424
    2525                /*numerics*/
    26                 void   Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs2* inputs2);
     26                void   Configure(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs* inputs);
    2727                int    MaxNumNodes(void);
    2828                int    NumberOfElements(void);
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r25319 r25379  
    1212
    1313#include "../classes.h"
    14 #include "../Inputs2/PentaInput2.h"
    15 #include "../Inputs2/ControlInput2.h"
    16 #include "../Inputs2/TransientInput2.h"
    17 #include "../Inputs2/DatasetInput2.h"
     14#include "../Inputs/PentaInput.h"
     15#include "../Inputs/ControlInput.h"
     16#include "../Inputs/TransientInput.h"
     17#include "../Inputs/DatasetInput.h"
    1818#include "../../shared/shared.h"
    1919/*}}}*/
     
    160160
    161161/*Other*/
    162 void       Penta::AddBasalInput2(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
    163 
    164         _assert_(this->inputs2);
     162void       Penta::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
     163
     164        _assert_(this->inputs);
    165165        if(!IsOnBase()) return;
    166166        else{
     
    173173                        Penta* penta=this;
    174174                        for(;;){
    175                                 penta->AddInput2(input_enum,&extrudedvalues[0],interpolation_enum);
     175                                penta->AddInput(input_enum,&extrudedvalues[0],interpolation_enum);
    176176                                if (penta->IsOnSurface()) break;
    177177                                penta=penta->GetUpperPenta(); _assert_(penta->Id()!=this->id);
     
    183183}
    184184/*}}}*/
    185 void       Penta::AddInput2(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
     185void       Penta::AddInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
    186186
    187187        /**/
     
    189189
    190190        /*Call inputs method*/
    191         _assert_(this->inputs2);
     191        _assert_(this->inputs);
    192192        switch(interpolation_enum){
    193193                case P1Enum:
    194194                        for(int i=0;i<NUMVERTICES;i++) vertexlids[i]=this->vertices[i]->lid;
    195                         inputs2->SetPentaInput(input_enum,interpolation_enum,NUMVERTICES,vertexlids,values);
     195                        inputs->SetPentaInput(input_enum,interpolation_enum,NUMVERTICES,vertexlids,values);
    196196                        break;
    197197                case P1DGEnum:
    198                         inputs2->SetPentaInput(input_enum,interpolation_enum,this->lid,NUMVERTICES,values);
     198                        inputs->SetPentaInput(input_enum,interpolation_enum,this->lid,NUMVERTICES,values);
    199199                        break;
    200200                default:
    201                         inputs2->SetPentaInput(input_enum,interpolation_enum,this->lid,this->GetNumberOfNodes(interpolation_enum),values);
    202         }
    203 
    204 }
    205 /*}}}*/
    206 void       Penta::AddControlInput(int input_enum,Inputs2* 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/*}}}*/
     206void       Penta::AddControlInput(int input_enum,Inputs* inputs,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id){/*{{{*/
    207207
    208208        /*Intermediaries*/
     
    218218        switch(interpolation_enum){
    219219                case P1Enum:
    220                         inputs2->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);
    221221                        break;
    222222                default:
     
    226226}
    227227/*}}}*/
    228 void       Penta::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs2* inputs2,IoModel* iomodel,int input_enum){/*{{{*/
     228void       Penta::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs* inputs,IoModel* iomodel,int input_enum){/*{{{*/
    229229
    230230        /*Intermediaries*/
     
    248248        for(int i=0;i<num_inputs;i++){
    249249                for(int j=0;j<NUMVERTICES;j++) nodeinputs[j]=array[vertexsids[j]*N+i];
    250                 inputs2->SetPentaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs);
     250                inputs->SetPentaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs);
    251251        }
    252252}
     
    285285
    286286        /*Retrieve all inputs and parameters we will need*/
    287         Input2* vx_input = this->GetInput2(VxAverageEnum); _assert_(vx_input);
    288         Input2* vy_input = this->GetInput2(VyAverageEnum); _assert_(vy_input);
    289         Input2* gr_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input);
    290         Input2* bs_input = this->GetInput2(BaseEnum);                    _assert_(bs_input);
    291         Input2* B_input  = this->GetInput2(MaterialsRheologyBbarEnum);   _assert_(B_input);
    292         Input2* n_input  = this->GetInput2(MaterialsRheologyNEnum);   _assert_(n_input);
    293         Input2* smax_fl_input = this->GetInput2(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input);
    294         Input2* smax_gr_input = this->GetInput2(CalvingStressThresholdGroundediceEnum); _assert_(smax_gr_input);
    295         Input2* 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);
    296296
    297297        /* Start looping on the number of vertices: */
     
    347347
    348348        /*Add input*/
    349         this->AddBasalInput2(CalvingratexEnum,&calvingratex[0],P1DGEnum);
    350         this->AddBasalInput2(CalvingrateyEnum,&calvingratey[0],P1DGEnum);
    351         this->AddBasalInput2(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
    352         this->AddBasalInput2(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);
    353353
    354354        this->InputExtrude(CalvingratexEnum,-1);
     
    377377
    378378        /*Retrieve all inputs and parameters we will need*/
    379         Input2* vx_input=this->GetInput2(VxEnum);                                                                                                                                               _assert_(vx_input);
    380         Input2* vy_input=this->GetInput2(VyEnum);                                                                                                                                               _assert_(vy_input);
    381         Input2* strainparallel_input=this->GetInput2(StrainRateparallelEnum);                                                           _assert_(strainparallel_input);
    382         Input2* strainperpendicular_input=this->GetInput2(StrainRateperpendicularEnum);              _assert_(strainperpendicular_input);
    383         Input2* 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);
    384384
    385385        /* Start looping on the number of vertices: */
     
    406406
    407407        /*Add input*/
    408         this->AddBasalInput2(CalvingratexEnum,&calvingratex[0],P1DGEnum);
    409         this->AddBasalInput2(CalvingrateyEnum,&calvingratey[0],P1DGEnum);
    410         this->AddBasalInput2(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);
    411411
    412412        /*Clean up and return*/
     
    420420        if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){
    421421                IssmDouble flux_per_area=0;
    422                 this->AddInput2(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);
     422                this->AddInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);
    423423        }
    424424        else{
     
    508508                IssmDouble calvingratex,calvingratey,thickness,Jdet,flux_per_area;
    509509                IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    510                 Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    511                 Input2* calvingratex_input=NULL;
    512                 Input2* calvingratey_input=NULL;
    513                 calvingratex_input=this->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    514                 calvingratey_input=this->GetInput2(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);
    515515
    516516                /*Start looping on Gaussian points*/
     
    530530                }
    531531
    532                 this->AddInput2(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);
     532                this->AddInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);
    533533
    534534                /*Clean up and return*/
     
    542542        if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){
    543543                IssmDouble flux_per_area=0;
    544                 this->AddInput2(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);
     544                this->AddInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);
    545545        }
    546546        else{
     
    630630                IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet,flux_per_area;
    631631                IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    632                 Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    633                 Input2* calvingratex_input=NULL;
    634                 Input2* calvingratey_input=NULL;
    635                 Input2* vx_input=NULL;
    636                 Input2* vy_input=NULL;
    637                 Input2* meltingrate_input=NULL;
    638                 calvingratex_input=this->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    639                 calvingratey_input=this->GetInput2(CalvingrateyEnum); _assert_(calvingratey_input);
    640                 vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    641                 vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
    642                 meltingrate_input=this->GetInput2(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);
    643643
    644644                /*Start looping on Gaussian points*/
     
    664664                }
    665665
    666                 this->AddInput2(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);
     666                this->AddInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);
    667667
    668668                /*Clean up and return*/
     
    693693        /*retrive parameters: */
    694694        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    695         this->GetInput2Value(&approximation,ApproximationEnum);
     695        this->Element::GetInputValue(&approximation,ApproximationEnum);
    696696
    697697        /*Check analysis_types*/
     
    717717
    718718        /*Retrieve all inputs we will be needing: */
    719         Input2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);
    720         Input2* vx_input=this->GetInput2(VxEnum);             _assert_(vx_input);
    721         Input2* vy_input=this->GetInput2(VyEnum);             _assert_(vy_input);
    722         Input2* 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);
    723723
    724724        /* Start  looping on the number of gaussian points: */
     
    777777
    778778        /*Retrieve all inputs we will be needing: */
    779         Input2* vx_input=this->GetInput2(VxEnum);             _assert_(vx_input);
    780         Input2* vy_input=this->GetInput2(VyEnum);             _assert_(vy_input);
    781         Input2* 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);
    782782
    783783        /* Start looping on the number of vertices: */
     
    805805
    806806        /*Add Stress tensor components into inputs*/
    807         this->AddInput2(DeviatoricStressxxEnum,&tau_xx[0],P1DGEnum);
    808         this->AddInput2(DeviatoricStressxyEnum,&tau_xy[0],P1DGEnum);
    809         this->AddInput2(DeviatoricStressxzEnum,&tau_xz[0],P1DGEnum);
    810         this->AddInput2(DeviatoricStressyyEnum,&tau_yy[0],P1DGEnum);
    811         this->AddInput2(DeviatoricStressyzEnum,&tau_yz[0],P1DGEnum);
    812         this->AddInput2(DeviatoricStresszzEnum,&tau_zz[0],P1DGEnum);
    813         this->AddInput2(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);
    814814
    815815        /*Clean up and return*/
     
    834834
    835835        /*Retrieve all inputs we will be needing: */
    836         Input2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);
    837         Input2* vx_input=this->GetInput2(VxEnum);             _assert_(vx_input);
    838         Input2* vy_input=this->GetInput2(VyEnum);             _assert_(vy_input);
    839         Input2* 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);
    840840
    841841        /* Start looping on the number of vertices: */
     
    859859
    860860        /*Add Stress tensor components into inputs*/
    861         this->AddInput2(StressTensorxxEnum,&sigma_xx[0],P1DGEnum);
    862         this->AddInput2(StressTensorxyEnum,&sigma_xy[0],P1DGEnum);
    863         this->AddInput2(StressTensorxzEnum,&sigma_xz[0],P1DGEnum);
    864         this->AddInput2(StressTensoryyEnum,&sigma_yy[0],P1DGEnum);
    865         this->AddInput2(StressTensoryzEnum,&sigma_yz[0],P1DGEnum);
    866         this->AddInput2(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);
    867867
    868868        /*Clean up and return*/
     
    870870}
    871871/*}}}*/
    872 void       Penta::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin,Inputs2* inputs2in){/*{{{*/
     872void       Penta::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin,Inputs* inputsin){/*{{{*/
    873873
    874874        int analysis_counter;
     
    896896        /*point parameters to real dataset: */
    897897        this->parameters=parametersin;
    898         this->inputs2=inputs2in;
     898        this->inputs=inputsin;
    899899}
    900900/*}}}*/
     
    908908        if(control_enum==DamageDbarEnum)            control_enum = DamageDEnum;
    909909
    910         ElementInput2* input=this->inputs2->GetControlInput2Data(control_enum,"gradient");   _assert_(input);
     910        ElementInput* input=this->inputs->GetControlInputData(control_enum,"gradient");   _assert_(input);
    911911        this->GetVerticesLidList(&lidlist[0]);
    912912        GradientIndexing(&idlist[0],control_index);
    913913
    914914        /*Get values on vertices*/
    915         if(input->ObjectEnum()==PentaInput2Enum && input->GetInputInterpolationType()==P1Enum){
     915        if(input->ObjectEnum()==PentaInputEnum && input->GetInputInterpolationType()==P1Enum){
    916916                _assert_(N==1);
    917917                for(int i=0;i<NUMVERTICES;i++){
     
    920920                input->SetInput(P1Enum,NUMVERTICES,&lidlist[0],&values[0]);
    921921        }
    922         else if(input->ObjectEnum()==PentaInput2Enum && input->GetInputInterpolationType()==P0Enum){
     922        else if(input->ObjectEnum()==PentaInputEnum && input->GetInputInterpolationType()==P0Enum){
    923923                _assert_(N==1);
    924924                input->SetInput(P0Enum,this->lid,gradient[idlist[0]]);
    925925        }
    926         else if(input->ObjectEnum()==TransientInput2Enum){
     926        else if(input->ObjectEnum()==TransientInputEnum){
    927927                for(int n=0;n<N;n++){
    928928                        _error_("not implemented");
     
    948948        if(control_enum==MaterialsRheologyBbarEnum) control_enum = MaterialsRheologyBEnum;
    949949        if(control_enum==DamageDbarEnum)            control_enum = DamageDEnum;
    950         ElementInput2* control_value    = this->inputs2->GetControlInput2Data(control_enum,"value");    _assert_(control_value);
    951         ElementInput2* 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);
    952952
    953953        if(control_interp==P1Enum){
     
    10151015
    10161016        /*Update Levelset*/
    1017         this->AddInput2(distanceenum,&ls[0],P1Enum);
     1017        this->AddInput(distanceenum,&ls[0],P1Enum);
    10181018}
    10191019/*}}}*/
     
    10221022
    10231023        /*Get transient input time steps*/
    1024         TransientInput2* transient_input  = this->inputs2->GetTransientInput(transientinput_enum);
    1025         PentaInput2* averaged_input = transient_input->GetPentaInput(start_time,end_time,averaging_method);
    1026         Input2* 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();
    10271027
    10281028        averaged_copy->ChangeEnum(averagedinput_enum);
    1029         this->inputs2->AddInput(averaged_copy);
     1029        this->inputs->AddInput(averaged_copy);
    10301030}
    10311031/*}}}*/
     
    10441044                                /*Get input:*/
    10451045                                IssmDouble vel;
    1046                                 Input2* vel_input=this->GetInput2(VelEnum); _assert_(vel_input);
     1046                                Input* vel_input=this->GetInput(VelEnum); _assert_(vel_input);
    10471047                                vel_input->GetInputAverage(&vel);
    10481048
     
    11071107
    11081108        if(scaled==true){
    1109                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     1109                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    11101110                scalefactor_input->GetInputAverage(&scalefactor);
    11111111                floatingarea=floatingarea*scalefactor;
     
    11211121
    11221122        int approximation;
    1123         this->GetInput2Value(&approximation,ApproximationEnum);
     1123        this->Element::GetInputValue(&approximation,ApproximationEnum);
    11241124        if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum || approximation==SSAHOApproximationEnum || approximation==HOFSApproximationEnum){
    11251125                _error_("Cannot compute contact condition for non FS elements");
     
    11461146
    11471147        /*Retrieve all inputs we will be needing: */
    1148         Input2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);
    1149         Input2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);
    1150         Input2* 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);
    11511151
    11521152        /*1. Recover stresses at the base*/
     
    15651565        xDelete<int>(indicesfront);
    15661566}/*}}}*/
    1567 Input2*    Penta::GetInput2(int inputenum){/*{{{*/
     1567Input*    Penta::GetInput(int inputenum){/*{{{*/
    15681568
    15691569        /*Get Input from dataset*/
    1570         PentaInput2* input = this->inputs2->GetPentaInput(inputenum);
     1570        PentaInput* input = this->inputs->GetPentaInput(inputenum);
    15711571        if(!input) return input;
    15721572
     
    15921592        return input;
    15931593}/*}}}*/
    1594 Input2*    Penta::GetInput2(int inputenum,IssmDouble time){/*{{{*/
     1594Input*    Penta::GetInput(int inputenum,IssmDouble time){/*{{{*/
    15951595
    15961596        /*Get Input from dataset*/
    1597         PentaInput2* input = this->inputs2->GetPentaInput(inputenum,time);
     1597        PentaInput* input = this->inputs->GetPentaInput(inputenum,time);
    15981598        if(!input) return input;
    15991599
     
    16191619        return input;
    16201620}/*}}}*/
    1621 void       Penta::GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value){/*{{{*/
     1621void       Penta::GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/
    16221622
    16231623        /*Checks in debugging mode*/
     
    16371637}
    16381638/*}}}*/
    1639 void       Penta::GetInputListOnNodes(IssmDouble* pvalue,Input2* input,IssmDouble default_value){/*{{{*/
     1639void       Penta::GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/
    16401640
    16411641        /*Checks in debugging mode*/
     
    16591659}
    16601660/*}}}*/
    1661 DatasetInput2* Penta::GetDatasetInput2(int inputenum){/*{{{*/
    1662 
    1663         DatasetInput2* datasetinput = this->inputs2->GetDatasetInput2(inputenum);
     1661DatasetInput* Penta::GetDatasetInput(int inputenum){/*{{{*/
     1662
     1663        DatasetInput* datasetinput = this->inputs->GetDatasetInput(inputenum);
    16641664        if(!datasetinput) return NULL;
    16651665
    16661666        for(int i=0;i<datasetinput->GetNumIds();i++){
    16671667
    1668                 PentaInput2* input = datasetinput->GetPentaInputByOffset(i); _assert_(input);
     1668                PentaInput* input = datasetinput->GetPentaInputByOffset(i); _assert_(input);
    16691669
    16701670                /*Intermediaries*/
     
    16891689void       Penta::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){/*{{{*/
    16901690
    1691         Input2* input=this->GetInput2(enumtype);
     1691        Input* input=this->GetInput(enumtype);
    16921692        if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria");
    16931693
     
    17031703void       Penta::GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype){/*{{{*/
    17041704
    1705         Input2* input=this->GetInput2(enumtype);
     1705        Input* input=this->GetInput(enumtype);
    17061706        if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria");
    17071707
     
    18351835        /*Get input*/
    18361836        if(control_enum==MaterialsRheologyBbarEnum) control_enum=MaterialsRheologyBEnum;
    1837         ElementInput2* input=this->inputs2->GetControlInput2Data(control_enum,data);   _assert_(input);
     1837        ElementInput* input=this->inputs->GetControlInputData(control_enum,data);   _assert_(input);
    18381838
    18391839        /*Lid list once for all*/
     
    18431843        /*Check what input we are dealing with*/
    18441844        switch(input->ObjectEnum()){
    1845                 case PentaInput2Enum:
     1845                case PentaInputEnum:
    18461846                          {
    18471847                                IssmDouble values[NUMVERTICES];
    18481848                                int        idlist[NUMVERTICES];
    18491849
    1850                                 PentaInput2* triainput = xDynamicCast<PentaInput2*>(input);
     1850                                PentaInput* triainput = xDynamicCast<PentaInput*>(input);
    18511851
    18521852                                /*Create list of indices and values for global vector*/
     
    18701870                case TransientInputEnum:
    18711871                                {
    1872                                         TransientInput2* transientinput = xDynamicCast<TransientInput2*>(input);
     1872                                        TransientInput* transientinput = xDynamicCast<TransientInput*>(input);
    18731873                                        int  N = transientinput->numtimesteps;
    18741874                                        int* M = NULL;
     
    19021902        /*Get input*/
    19031903        if(control_enum==MaterialsRheologyBbarEnum) control_enum=MaterialsRheologyBEnum;
    1904         ElementInput2* input=this->inputs2->GetControlInput2Data(control_enum,data);   _assert_(input);
     1904        ElementInput* input=this->inputs->GetControlInputData(control_enum,data);   _assert_(input);
    19051905
    19061906        /*Lid list once for all*/
     
    19101910        /*Check what input we are dealing with*/
    19111911        switch(input->ObjectEnum()){
    1912                 case PentaInput2Enum:
     1912                case PentaInputEnum:
    19131913                          {
    19141914                                IssmDouble values[NUMVERTICES];
    19151915                                int        idlist[NUMVERTICES];
    19161916
    1917                                 PentaInput2* triainput = xDynamicCast<PentaInput2*>(input);
     1917                                PentaInput* triainput = xDynamicCast<PentaInput*>(input);
    19181918
    19191919                                /*Create list of indices and values for global vector*/
     
    19371937                case TransientInputEnum:
    19381938                                {
    1939                                         TransientInput2* transientinput = xDynamicCast<TransientInput2*>(input);
     1939                                        TransientInput* transientinput = xDynamicCast<TransientInput*>(input);
    19401940                                        int  N = transientinput->numtimesteps;
    19411941                                        int* M = NULL;
     
    20022002
    20032003        if(scaled==true){
    2004                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     2004                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    20052005                scalefactor_input->GetInputAverage(&scalefactor);
    20062006                groundedarea=groundedarea*scalefactor;
     
    21082108        IssmDouble vx,vy,thickness,Jdet;
    21092109        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    2110         Input2 *thickness_input = this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    2111         Input2 *vx_input        = this->GetInput2(VxAverageEnum); _assert_(vx_input);
    2112         Input2 *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);
    21132113
    21142114        /*Start looping on Gaussian points*/
     
    22282228        IssmDouble vx,vy,thickness,Jdet;
    22292229        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    2230         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    2231         Input2* vx_input=NULL;
    2232         Input2* vy_input=NULL;
    2233         vx_input=this->GetInput2(VxAverageEnum); _assert_(vx_input);
    2234         vy_input=this->GetInput2(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);
    22352235
    22362236        /*Start looping on Gaussian points*/
     
    22702270
    22712271        if(scaled==true){ //scale for area projection correction
    2272                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     2272                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    22732273                scalefactor_input->GetInputAverage(&scalefactor);
    22742274                base=base*scalefactor;
     
    23002300        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]));
    23012301        if(scaled==true){
    2302                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     2302                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    23032303                scalefactor_input->GetInputAverage(&scalefactor);
    23042304                base=base*scalefactor;
     
    23062306
    23072307        /*Now get the average height above floatation*/
    2308         Input2* surface_input    = this->GetInput2(SurfaceEnum);    _assert_(surface_input);
    2309         Input2* base_input        = this->GetInput2(BaseEnum);        _assert_(base_input);
    2310         Input2* 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);
    23112311        if(!bed_input) _error_("Could not find bed");
    23122312        surface_input->GetInputAverage(&surface);
     
    23262326        int         lidlist[NUMVERTICES];
    23272327        IssmDouble  intz[NUMVERTICES]        = {0.};
    2328         Input2     *original_input           = NULL;
    2329         Input2     *depth_averaged_input     = NULL;
     2328        Input     *original_input           = NULL;
     2329        Input     *depth_averaged_input     = NULL;
    23302330
    23312331        /*Are we on the base? If not, return*/
     
    23412341
    23422342                /*Step1: Get original input (to be depth-avegaged): */
    2343                 original_input=penta->GetInput2(original_enum);
     2343                original_input=penta->GetInput(original_enum);
    23442344                if(!original_input) _error_("could not find input with enum " << EnumToStringx(original_enum));
    23452345
     
    23792379        switch(original_input->ObjectEnum()){
    23802380                case PentaInputEnum:
    2381                 case PentaInput2Enum:
    23822381                case ControlInputEnum:
    2383                         this->inputs2->SetPentaInput(average_enum,P1Enum,NUMVERTICES,lidlist,&total[0]);
     2382                        this->inputs->SetPentaInput(average_enum,P1Enum,NUMVERTICES,lidlist,&total[0]);
    23842383                        break;
    23852384                default:
     
    23912390
    23922391        _assert_(start==-1 || start==+1);
    2393         _assert_(this->inputs2);
     2392        _assert_(this->inputs);
    23942393
    23952394        /*Are we on the the boundary we want to be?*/
     
    23982397
    23992398        /*Get original input*/
    2400         DatasetInput2* dinput = this->inputs2->GetDatasetInput2(enum_type);
     2399        DatasetInput* dinput = this->inputs->GetDatasetInput(enum_type);
    24012400
    24022401        int lidlist[NUMVERTICES];
     
    24052404        for(int id=0;id<dinput->GetNumIds();id++){
    24062405
    2407                 PentaInput2* pentainput = dinput->GetPentaInputByOffset(id);
     2406                PentaInput* pentainput = dinput->GetPentaInputByOffset(id);
    24082407                pentainput->Serve(NUMVERTICES,&lidlist[0]);
    24092408
     
    24492448
    24502449        _assert_(start==-1 || start==+1);
    2451         _assert_(this->inputs2);
     2450        _assert_(this->inputs);
    24522451
    24532452        /*Are we on the the boundary we want to be?*/
     
    24562455
    24572456        /*Get original input*/
    2458         ElementInput2* input  = this->inputs2->GetControlInput2Data(enum_type,"value");
    2459         if(input->ObjectEnum()!=PentaInput2Enum) _error_("not supported yet");
    2460         PentaInput2* pentainput = xDynamicCast<PentaInput2*>(input);
    2461         ElementInput2* input2 = this->inputs2->GetControlInput2Data(enum_type,"savedvalues");
    2462         if(input->ObjectEnum()!=PentaInput2Enum) _error_("not supported yet");
    2463         PentaInput2* 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);
    24642463        /*FIXME: this should not be necessary*/
    2465         ElementInput2* input3 = this->inputs2->GetControlInput2Data(enum_type,"gradient");
    2466         if(input->ObjectEnum()!=PentaInput2Enum) _error_("not supported yet");
    2467         PentaInput2* 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);
    24682467
    24692468        int lidlist[NUMVERTICES];
     
    25302529
    25312530        _assert_(start==-1 || start==+1);
    2532         _assert_(this->inputs2);
     2531        _assert_(this->inputs);
    25332532
    25342533        /*Are we on the the boundary we want to be?*/
     
    25382537
    25392538        /*Get original input*/
    2540         Input2* input = this->GetInput2(enum_type);
    2541         if(input->ObjectEnum()!=PentaInput2Enum) _error_("not supported yet");
    2542         PentaInput2* 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);
    25432542
    25442543        if(pentainput->GetInterpolation()==P1Enum || pentainput->GetInterpolation()==P1DGEnum){
     
    25592558
    25602559                        /*Add input of the basal element to penta->inputs*/
    2561                         penta->AddInput2(enum_type,&extrudedvalues[0],pentainput->GetInterpolation());
     2560                        penta->AddInput(enum_type,&extrudedvalues[0],pentainput->GetInterpolation());
    25622561
    25632562                        /*Stop if we have reached the surface/base*/
     
    26232622
    26242623        /*Add input to the element: */
    2625         this->AddInput2(enum_type,values,this->element_type);
     2624        this->AddInput(enum_type,values,this->element_type);
    26262625
    26272626        /*Free ressources:*/
     
    26572656        for(;;){
    26582657                /*Add input to the element: */
    2659                 penta->AddInput2(enum_type,values,P1Enum);
     2658                penta->AddInput(enum_type,values,P1Enum);
    26602659
    26612660                /*Stop if we have reached the surface*/
     
    26882687                        }
    26892688                        /*update input*/
    2690                         inputs2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     2689                        inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    26912690                        return;
    26922691
     
    26962695                        }
    26972696                        /*update input*/
    2698                         inputs2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     2697                        inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    26992698                        return;
    27002699
     
    27042703                        }
    27052704                        /*update input*/
    2706                         inputs2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     2705                        inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    27072706                        return;
    27082707
     
    27182717                        }
    27192718                        /*Add input to the element: */
    2720                         inputs2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     2719                        inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    27212720
    27222721                        /*Free ressources:*/
     
    27312730                        }
    27322731                        /*Add input to the element: */
    2733                         inputs2->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     2732                        inputs->SetPentaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    27342733
    27352734                        /*Free ressources:*/
     
    30073006
    30083007        /*First, serarch the input: */
    3009         Input2* data=this->GetInput2(natureofdataenum);
     3008        Input* data=this->GetInput(natureofdataenum);
    30103009
    30113010        /*figure out if we have the vertex id: */
     
    31623161                        if(this->element_type==MINIcondensedEnum){
    31633162                                int approximation;
    3164                                 this->GetInput2Value(&approximation,ApproximationEnum);
     3163                                this->Element::GetInputValue(&approximation,ApproximationEnum);
    31653164                                if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
    31663165                                        //Do nothing, condensation already done in PVectorCoupling
     
    31863185                if(analysis_type==StressbalanceAnalysisEnum){
    31873186                        int approximation;
    3188                         this->GetInput2Value(&approximation,ApproximationEnum);
     3187                        this->Element::GetInputValue(&approximation,ApproximationEnum);
    31893188                        if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
    31903189                                //Do nothing condensatino already done for Stokes part
     
    32193218
    32203219        /*For FS only: we want the CS to be tangential to the bedrock*/
    3221         this->GetInput2Value(&approximation,ApproximationEnum);
     3220        this->Element::GetInputValue(&approximation,ApproximationEnum);
    32223221        if(!IsOnBase() || (approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum &&  approximation!=HOFSApproximationEnum)) return;
    32233222
     
    32263225
    32273226        /*Get inputs*/
    3228         Input2* slopex_input=this->GetInput2(BedSlopeXEnum); _assert_(slopex_input);
    3229         Input2* slopey_input=this->GetInput2(BedSlopeYEnum); _assert_(slopey_input);
    3230         Input2* 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);
    32313230
    32323231        /*Loop over basal nodes and update their CS*/
     
    33053304
    33063305        /*Get inputs*/
    3307         Input2* bed_input = this->GetInput2(BedEnum);                     _assert_(bed_input);
    3308         Input2* qsg_input = this->GetInput2(FrontalForcingsSubglacialDischargeEnum);             _assert_(qsg_input);
    3309         Input2* 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);
    33103309        Element::GetInputListOnVertices(&basinid[0],FrontalForcingsBasinIdEnum);
    33113310
     
    33403339
    33413340        /*Add input*/
    3342         this->AddInput2(CalvingMeltingrateEnum,&meltrates[0],P1Enum);
     3341        this->AddInput(CalvingMeltingrateEnum,&meltrates[0],P1Enum);
    33433342
    33443343        this->InputExtrude(CalvingMeltingrateEnum,-1);
     
    33513350void       Penta::SetElementInput(int enum_in,IssmDouble value){/*{{{*/
    33523351
    3353         this->SetElementInput(this->inputs2,enum_in,value);
    3354 
    3355 }
    3356 /*}}}*/
    3357 void       Penta::SetElementInput(Inputs2* inputs2,int enum_in,IssmDouble value){/*{{{*/
    3358 
    3359         _assert_(inputs2);
    3360         inputs2->SetPentaInput(enum_in,P0Enum,this->lid,value);
    3361 
    3362 }
    3363 /*}}}*/
    3364 void       Penta::SetElementInput(Inputs2* inputs2,int numindices,int* indices,IssmDouble* values,int enum_in){/*{{{*/
    3365 
    3366         _assert_(inputs2);
    3367         inputs2->SetPentaInput(enum_in,P1Enum,numindices,indices,values);
     3352        this->SetElementInput(this->inputs,enum_in,value);
     3353
     3354}
     3355/*}}}*/
     3356void       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/*}}}*/
     3363void       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);
    33683367
    33693368}
     
    33903389
    33913390        /*Prepare index list*/
    3392         ElementInput2* input=this->inputs2->GetControlInput2Data(control_enum,"value");   _assert_(input);
     3391        ElementInput* input=this->inputs->GetControlInputData(control_enum,"value");   _assert_(input);
    33933392        this->GetVerticesLidList(&lidlist[0]);
    33943393        GradientIndexing(&idlist[0],control_index);
    33953394
    33963395        /*Get values on vertices*/
    3397         if(input->ObjectEnum()==PentaInput2Enum && input->GetInputInterpolationType()==P1Enum){
     3396        if(input->ObjectEnum()==PentaInputEnum && input->GetInputInterpolationType()==P1Enum){
    33983397                _assert_(N==1);
    33993398                for(int i=0;i<NUMVERTICES;i++){
     
    34023401                input->SetInput(P1Enum,NUMVERTICES,&lidlist[0],&values[0]);
    34033402        }
    3404         else if(input->ObjectEnum()==PentaInput2Enum && input->GetInputInterpolationType()==P0Enum){
     3403        else if(input->ObjectEnum()==PentaInputEnum && input->GetInputInterpolationType()==P0Enum){
    34053404                _assert_(N==1);
    34063405                input->SetInput(P0Enum,this->lid,vector[idlist[0]]);
    34073406        }
    3408         else if(input->ObjectEnum()==TransientInput2Enum){
     3407        else if(input->ObjectEnum()==TransientInputEnum){
    34093408                for(int n=0;n<N;n++){
    34103409                        _error_("not implemented");
     
    34873486        tria->lid=this->lid;
    34883487        tria->parameters=this->parameters;
    3489         tria->inputs2=this->inputs2;
     3488        tria->inputs=this->inputs;
    34903489        tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED)
    34913490        this->SpawnTriaHook(xDynamicCast<ElementHook*>(tria),index1,index2,index3);
     
    35673566
    35683567        /*Retrieve all inputs we will need*/
    3569         Input2* vx_input=this->GetInput2(VxEnum);                                  _assert_(vx_input);
    3570         Input2* vy_input=this->GetInput2(VyEnum);                                  _assert_(vy_input);
    3571         Input2* 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);
    35723571
    35733572        /* Start looping on the number of vertices: */
     
    35923591
    35933592        /*Add input*/
    3594         this->AddInput2(StrainRateparallelEnum,&strainparallel[0],P1DGEnum);
     3593        this->AddInput(StrainRateparallelEnum,&strainparallel[0],P1DGEnum);
    35953594
    35963595        /*Clean up and return*/
     
    36143613
    36153614        /*Retrieve all inputs we will need*/
    3616         Input2* vx_input=this->GetInput2(VxEnum);                                  _assert_(vx_input);
    3617         Input2* vy_input=this->GetInput2(VyEnum);                                  _assert_(vy_input);
    3618         Input2* 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);
    36193618
    36203619        /* Start looping on the number of vertices: */
     
    36393638
    36403639        /*Add input*/
    3641         this->AddInput2(StrainRateperpendicularEnum,&strainperpendicular[0],P1DGEnum);
     3640        this->AddInput(StrainRateperpendicularEnum,&strainperpendicular[0],P1DGEnum);
    36423641
    36433642        /*Clean up and return*/
     
    36713670
    36723671                /*Retrieve all inputs we will need*/
    3673                 Input2* vx_input=this->GetInput2(VxEnum);                                  _assert_(vx_input);
    3674                 Input2* vy_input=this->GetInput2(VyEnum);                                  _assert_(vy_input);
    3675                 Input2* vel_input=this->GetInput2(VelEnum);                                _assert_(vel_input);
    3676                 Input2* pressure_input=this->GetInput2(PressureEnum);                      _assert_(pressure_input);
    3677                 Input2* deviaxx_input=this->GetInput2(DeviatoricStressxxEnum);             _assert_(deviaxx_input);
    3678                 Input2* deviaxy_input=this->GetInput2(DeviatoricStressxyEnum);             _assert_(deviaxy_input);
    3679                 Input2* deviayy_input=this->GetInput2(DeviatoricStressyyEnum);             _assert_(deviayy_input);
    3680                 Input2* surface_input=this->GetInput2(SurfaceEnum);                                                             _assert_(surface_input);
    3681                 Input2* 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);
    36823681
    36833682                /* Start looping on the number of 2D vertices: */
     
    37193718
    37203719        /*Add input*/
    3721         this->AddInput2(StressIntensityFactorEnum,&ki[0],P1Enum);
     3720        this->AddInput(StressIntensityFactorEnum,&ki[0],P1Enum);
    37223721        this->InputExtrude(StressIntensityFactorEnum,-1);
    37233722}
     
    37303729
    37313730        /*retrieve inputs :*/
    3732         this->GetInput2Value(&approximation,ApproximationEnum);
     3731        this->Element::GetInputValue(&approximation,ApproximationEnum);
    37333732
    37343733        /*If on water, return 0: */
     
    37693768
    37703769        /*Get for Vx and Vy, the max of abs value: */
    3771         Input2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);
    3772         Input2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);
    3773         Input2* 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);
    37743773        IssmDouble maxabsvx = vx_input->GetInputMaxAbs();
    37753774        IssmDouble maxabsvy = vy_input->GetInputMaxAbs();
     
    38963895        IssmDouble calvingratex,calvingratey,thickness,Jdet;
    38973896        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    3898         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    3899         Input2* calvingratex_input=NULL;
    3900         Input2* calvingratey_input=NULL;
    3901         calvingratex_input=this->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    3902         calvingratey_input=this->GetInput2(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);
    39033902
    39043903        /*Start looping on Gaussian points*/
     
    40174016        IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet;
    40184017        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    4019         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    4020         Input2* calvingratex_input=NULL;
    4021         Input2* calvingratey_input=NULL;
    4022         Input2* vx_input=NULL;
    4023         Input2* vy_input=NULL;
    4024         Input2* meltingrate_input=NULL;
    4025         calvingratex_input=this->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    4026         calvingratey_input=this->GetInput2(CalvingrateyEnum); _assert_(calvingratey_input);
    4027         vx_input=this->GetInput2(VxAverageEnum); _assert_(vx_input);
    4028         vy_input=this->GetInput2(VyAverageEnum); _assert_(vy_input);
    4029         meltingrate_input=this->GetInput2(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);
    40304029
    40314030        /*Start looping on Gaussian points*/
     
    40694068        /*Get material parameters :*/
    40704069        rho_ice=FindParam(MaterialsRhoIceEnum);
    4071         Input2* floatingmelt_input = this->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input);
    4072         Input2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
    4073         Input2* 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;
    40744073        if(scaled==true){
    4075                 scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     4074                scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    40764075        }
    40774076        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
     
    41144113        /*Get material parameters :*/
    41154114        rho_ice=FindParam(MaterialsRhoIceEnum);
    4116         Input2* groundedmelt_input = this->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input);
    4117         Input2* gllevelset_input   = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
    4118         Input2* 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;
    41194118        if(scaled==true){
    4120                 scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     4119                scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    41214120        }
    41224121        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
     
    41644163
    41654164        /*Now get the average SMB over the element*/
    4166         Input2* smb_input = this->GetInput2(SmbMassBalanceEnum); _assert_(smb_input);
     4165        Input* smb_input = this->GetInput(SmbMassBalanceEnum); _assert_(smb_input);
    41674166
    41684167        smb_input->GetInputAverage(&smb);
    41694168        if(scaled==true){
    4170                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     4169                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    41714170                scalefactor_input->GetInputAverage(&scalefactor);// average scalefactor on element
    41724171        }
     
    41804179}
    41814180/*}}}*/
    4182 void       Penta::Update(Inputs2* inputs2,int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/
     4181void       Penta::Update(Inputs* inputs,int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/
    41834182
    41844183        /*Intermediaries*/
     
    45714570                                if(iomodel->Data("md.initialization.vz") && iomodel->Data("md.flowequation.borderFS")){
    45724571                                        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(inputs2,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);
     4572                                        this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);
    45744573                                        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(inputs2,NUMVERTICES,vertexlids,nodeinputs,VzHOEnum);
     4574                                        this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzHOEnum);
    45764575                                }
    45774576                                else{
    45784577                                        for(i=0;i<6;i++)nodeinputs[i]=0;
    4579                                         this->SetElementInput(inputs2,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);
    4580                                         this->SetElementInput(inputs2,NUMVERTICES,vertexlids,nodeinputs,VzHOEnum);
     4578                                        this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);
     4579                                        this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzHOEnum);
    45814580                                }
    45824581                        }
     
    45874586                                if(iomodel->Data("md.initialization.vz") && iomodel->Data("md.flowequation.borderFS")){
    45884587                                        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(inputs2,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);
     4588                                        this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);
    45904589                                        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(inputs2,NUMVERTICES,vertexlids,nodeinputs,VzSSAEnum);
     4590                                        this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzSSAEnum);
    45924591                                }
    45934592                                else{
    45944593                                        for(i=0;i<6;i++)nodeinputs[i]=0;
    4595                                         this->SetElementInput(inputs2,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);
    4596                                         this->SetElementInput(inputs2,NUMVERTICES,vertexlids,nodeinputs,VzSSAEnum);
     4594                                        this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzFSEnum);
     4595                                        this->SetElementInput(inputs,NUMVERTICES,vertexlids,nodeinputs,VzSSAEnum);
    45974596                                }
    45984597                        }
     
    46124611
    46134612        this->parameters->FindParam(&extrusioninput,InputToExtrudeEnum);
    4614         Input2* input = this->GetInput2(extrusioninput);      _assert_(extrusioninput);
    4615         Input2* onbase = this->GetInput2(MeshVertexonbaseEnum); _assert_(onbase);
     4613        Input* input = this->GetInput(extrusioninput);      _assert_(extrusioninput);
     4614        Input* onbase = this->GetInput(MeshVertexonbaseEnum); _assert_(onbase);
    46164615
    46174616        GaussPenta* gauss=new GaussPenta();
     
    46374636
    46384637        this->parameters->FindParam(&extrusioninput,InputToExtrudeEnum);
    4639         Input2* input = this->GetInput2(extrusioninput); _assert_(extrusioninput);
     4638        Input* input = this->GetInput(extrusioninput); _assert_(extrusioninput);
    46404639
    46414640        GaussPenta* gauss=new GaussPenta();
     
    47054704}
    47064705/*}}}*/
    4707 void       Penta::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
     4706void       Penta::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
    47084707
    47094708        /*Intermediaries*/
     
    47364735       
    47374736        /*Branch according to whether we have a transient or not input: */
    4738         type=this->inputs2->GetInputObjectEnum(name);
    4739         if(type==PentaInput2Enum){
     4737        type=this->inputs->GetInputObjectEnum(name);
     4738        if(type==PentaInputEnum){
    47404739                /*Figure out if we are P0 or P1 interpolation: */
    4741                 PentaInput2* pentainput = this->inputs2->GetPentaInput(name);
    4742                 PentaInput2* pentainput2 = this->inputs2->GetPentaInput(DummyEnum);
     4740                PentaInput* pentainput = this->inputs->GetPentaInput(name);
     4741                PentaInput* pentainput2 = this->inputs->GetPentaInput(DummyEnum);
    47434742                interp=pentainput->GetInterpolation();
    47444743               
     
    47664765                else _error_("Penta::InputScaleFromDakota error message: input interpolation " << EnumToStringx(interp) << " not supported yet!");
    47674766        }
    4768         else if(type==TransientInput2Enum){
     4767        else if(type==TransientInputEnum){
    47694768
    47704769
    47714770                IssmDouble* steps=NULL;
    47724771                int nsteps;
    4773                 TransientInput2* transientinput = NULL;
    4774                 TransientInput2* transientinput2 = NULL;
     4772                TransientInput* transientinput = NULL;
     4773                TransientInput* transientinput2 = NULL;
    47754774
    47764775                /*retrieve transient input:*/
    4777                 transientinput= this->inputs2->GetTransientInput(name);
    4778                 transientinput2= this->inputs2->GetTransientInput(DummyEnum);
     4776                transientinput= this->inputs->GetTransientInput(name);
     4777                transientinput2= this->inputs->GetTransientInput(DummyEnum);
    47794778
    47804779                /*retrieve time steps: */
     
    47914790                /*go through the transient inputs, and update:*/
    47924791                for (int i=0;i<nsteps;i++){
    4793                         PentaInput2* pentainput=transientinput->GetPentaInput(i);
    4794                         PentaInput2* pentainput2=transientinput2->GetPentaInput(i);
     4792                        PentaInput* pentainput=transientinput->GetPentaInput(i);
     4793                        PentaInput* pentainput2=transientinput2->GetPentaInput(i);
    47954794                        interp=pentainput->GetInterpolation();
    47964795
     
    48294828        /*Check that name is an element input*/
    48304829        if(!IsInputEnum(name)) _error_("Enum "<<EnumToStringx(name)<<" is not in IsInput");
    4831         TransientInput2* transientinput = inputs2->GetTransientInput(name);
     4830        TransientInput* transientinput = inputs->GetTransientInput(name);
    48324831
    48334832        switch(type){
     
    49554954
    49564955                                        /*Add new inputs: */
    4957                                         this->AddInput2(ThicknessEnum,thickness,P1Enum);
    4958                                         this->AddInput2(BaseEnum,bed,P1Enum);
    4959                                         this->AddInput2(SurfaceEnum,surface,P1Enum);
     4956                                        this->AddInput(ThicknessEnum,thickness,P1Enum);
     4957                                        this->AddInput(BaseEnum,bed,P1Enum);
     4958                                        this->AddInput(SurfaceEnum,surface,P1Enum);
    49604959                                        break;
    49614960
    49624961                                default:
    4963                                         this->AddInput2(name,values,P1Enum);
     4962                                        this->AddInput(name,values,P1Enum);
    49644963                        }
    49654964                        break;
     
    49694968                        /*Get value for the element: */
    49704969                        value=vector[this->Sid()]; //careful, vector of values here is not parallel distributed, but serial distributed (from a serial Dakota core!)
    4971                         this->AddInput2(name,&value,P0Enum);
     4970                        this->AddInput(name,&value,P0Enum);
    49724971                        break;
    49734972
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r25318 r25379  
    4444                /*}}}*/
    4545                /*Penta routines:{{{*/
    46                 void           AddBasalInput2(int input_enum, IssmDouble* values, int interpolation_enum);
    47                 void           AddInput2(int input_enum, IssmDouble* values, int interpolation_enum);
    48                 void           AddControlInput(int input_enum,Inputs2* 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);
    4949                void           ControlInputExtrude(int enum_type,int start);
    5050                void           DatasetInputExtrude(int enum_type,int start);
    51                 void           DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs2* 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);
    5252                void           AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
    5353                void           BasalNodeIndices(int* pnumindices,int** pindices,int finiteelement);
     
    6262                void           ComputeSigmaNN(){_error_("not implemented yet");};
    6363                void           ComputeStressTensor();
    64                 void           Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters,Inputs2* inputs2in);
     64                void           Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters,Inputs* inputsin);
    6565                void           ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp);
    6666                void           ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp);
     
    8383                IssmDouble              GetIcefrontArea();
    8484                void           GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum);
    85                 Input2*        GetInput2(int enumtype);
    86                 Input2*        GetInput2(int enumtype,IssmDouble time);
    87                 Input2*        GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");};
    88                 void        GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value);
    89                 void        GetInputListOnNodes(IssmDouble* pvalue,Input2* input,IssmDouble default_value);
    90                 DatasetInput2* 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);
    9191                void           GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype);
    9292                void           GetInputValue(IssmDouble* pvalue,Node* node,int enumtype);
     
    164164                void                            RignotMeltParameterization();
    165165                void           SetElementInput(int enum_in,IssmDouble values);
    166                 void           SetElementInput(Inputs2* inputs2,int enum_in,IssmDouble values);
    167                 void           SetElementInput(Inputs2* 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);
    168168                void           SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset, int M,int N);
    169169                void           SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
     
    185185                IssmDouble     TotalGroundedBmb(bool scaled);
    186186                IssmDouble     TotalSmb(bool scaled);
    187                 void           Update(Inputs2* 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);
    188188                void           UpdateConstraintsExtrudeFromBase(void);
    189189                void           UpdateConstraintsExtrudeFromTop(void);
     
    195195                void           VerticalSegmentIndices(int** pindices,int* pnumseg);
    196196                void           VerticalSegmentIndicesBase(int** pindices,int* pnumseg);
    197                 void           ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input2* 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);
    198198
    199199                #ifdef _HAVE_DAKOTA_
  • issm/trunk-jpl/src/c/classes/Elements/Seg.cpp

    r24861 r25379  
    1313#include <string.h>
    1414#include "../classes.h"
    15 #include "../Inputs2/SegInput2.h"
    16 #include "../Inputs2/TriaInput2.h"
     15#include "../Inputs/SegInput.h"
     16#include "../Inputs/TriaInput.h"
    1717#include "../../shared/shared.h"
    1818/*}}}*/
     
    186186        *pxyz_front=xyz_front;
    187187}/*}}}*/
    188 Input2*    Seg::GetInput2(int inputenum){/*{{{*/
     188Input*    Seg::GetInput(int inputenum){/*{{{*/
    189189
    190190        if(this->iscollapsed){
    191                 TriaInput2* input = this->inputs2->GetTriaInput(inputenum);
     191                TriaInput* input = this->inputs->GetTriaInput(inputenum);
    192192                if(!input) return input;
    193193
     
    221221        }
    222222        else{
    223                 SegInput2* input = this->inputs2->GetSegInput(inputenum);
     223                SegInput* input = this->inputs->GetSegInput(inputenum);
    224224                if(!input) return input;
    225225
     
    252252        }
    253253}/*}}}*/
    254 Input2*    Seg::GetInput2(int inputenum,IssmDouble time){/*{{{*/
     254Input*    Seg::GetInput(int inputenum,IssmDouble time){/*{{{*/
    255255        _error_("not implemented yet");
    256256}/*}}}*/
     
    301301
    302302}/*}}}*/
    303 void       Seg::GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value){/*{{{*/
     303void       Seg::GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/
    304304
    305305        /*Checks in debugging mode*/
     
    319319}
    320320/*}}}*/
    321 void       Seg::GetInputListOnNodes(IssmDouble* pvalue,Input2* input,IssmDouble default_value){/*{{{*/
     321void       Seg::GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/
    322322
    323323        /*Checks in debugging mode*/
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r25318 r25379  
    4949                void        ComputeSigmaNN(){_error_("not implemented yet");};
    5050                void        ComputeStressTensor(){_error_("not implemented yet");};
    51                 void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs2* 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");};
    5252                void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp){_error_("not implemented yet");};
    5353                void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp){_error_("not implemented yet");};
     
    6262                IssmDouble  GetGroundedPortion(IssmDouble* xyz_list);
    6363                void               GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum);
    64                 Input2*     GetInput2(int enumtype);
    65                 Input2*     GetInput2(int enumtype,IssmDouble time);
    66                 Input2*     GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");};
    67                 void        GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value);
    68                 void        GetInputListOnNodes(IssmDouble* pvalue,Input2* 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);
    6969                void        GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype){_error_("not implemented yet");};
    7070                void               GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented");};
     
    149149                IssmDouble  TotalGroundedBmb(bool scaled){_error_("not implemented yet");};
    150150                IssmDouble  TotalSmb(bool scaled){_error_("not implemented yet");};
    151                 void        Update(Inputs2* 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");};
    152152                void        UpdateConstraintsExtrudeFromBase(){_error_("not implemented");};
    153153                void        UpdateConstraintsExtrudeFromTop(){_error_("not implemented");};
  • issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp

    r25239 r25379  
    1313#include <string.h>
    1414#include "../classes.h"
    15 #include "../Inputs2/ElementInput2.h"
     15#include "../Inputs/ElementInput.h"
    1616#include "../../shared/shared.h"
    1717/*}}}*/
     
    135135/*}}}*/
    136136
    137 void     Tetra::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin,Inputs2* inputs2in){/*{{{*/
     137void     Tetra::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin,Inputs* inputsin){/*{{{*/
    138138
    139139        int analysis_counter;
     
    159159        /*point parameters to real dataset: */
    160160        this->parameters=parametersin;
    161         this->inputs2=inputs2in;
     161        this->inputs=inputsin;
    162162}
    163163/*}}}*/
     
    257257}
    258258/*}}}*/
    259 Input2*    Tetra::GetInput2(int inputenum){/*{{{*/
     259Input*    Tetra::GetInput(int inputenum){/*{{{*/
    260260        _error_("not implemented yet");
    261261}/*}}}*/
    262 Input2*    Tetra::GetInput2(int inputenum,IssmDouble time){/*{{{*/
     262Input*    Tetra::GetInput(int inputenum,IssmDouble time){/*{{{*/
    263263        _error_("not implemented yet");
    264264}/*}}}*/
    265 void       Tetra::GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value){/*{{{*/
     265void       Tetra::GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/
    266266
    267267        /*Checks in debugging mode*/
     
    281281}
    282282/*}}}*/
    283 void       Tetra::GetInputListOnNodes(IssmDouble* pvalue,Input2* input,IssmDouble default_value){/*{{{*/
     283void       Tetra::GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/
    284284
    285285        /*Checks in debugging mode*/
     
    305305void     Tetra::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){/*{{{*/
    306306
    307         Input2* input=this->GetInput2(enumtype);
     307        Input* input=this->GetInput(enumtype);
    308308        if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria");
    309309
     
    442442
    443443        /*Add input to the element: */
    444         this->AddInput2(enum_type,values,this->element_type);
     444        this->AddInput(enum_type,values,this->element_type);
    445445
    446446        /*Free ressources:*/
     
    690690
    691691        /*For FS only: we want the CS to be tangential to the bedrock*/
    692         this->GetInput2Value(&approximation,ApproximationEnum);
     692        this->Element::GetInputValue(&approximation,ApproximationEnum);
    693693        if(!HasNodeOnBase() ||  approximation!=FSApproximationEnum) return;
    694694
    695695        //printf("element number %i \n",this->id);
    696696        /*Get inputs*/
    697         Input2* slopex_input=this->GetInput2(BedSlopeXEnum); _assert_(slopex_input);
    698         Input2* slopey_input=this->GetInput2(BedSlopeYEnum); _assert_(slopey_input);
    699         Input2* 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);
    700700        vertexonbase = xNew<IssmDouble>(numnodes);
    701701        this->GetInputListOnNodesVelocity(&vertexonbase[0],MeshVertexonbaseEnum);
     
    814814}
    815815/*}}}*/
    816 void     Tetra::Update(Inputs2* inputs2,int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/
     816void     Tetra::Update(Inputs* inputs,int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/
    817817
    818818        /*Intermediaries*/
     
    942942}
    943943/*}}}*/
    944 void     Tetra::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
     944void     Tetra::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
    945945
    946946        /*Intermediaries*/
  • issm/trunk-jpl/src/c/classes/Elements/Tetra.h

    r25318 r25379  
    4747                void        ComputeDeviatoricStressTensor(){_error_("not implemented yet");};
    4848                void        ComputeEsaStrainAndVorticity(){_error_("not implemented yet!");};
    49                 void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs2* inputs2in);
     49                void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs* inputsin);
    5050                void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp){_error_("not implemented yet");};
    5151                void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp){_error_("not implemented yet");};
     
    6666                IssmDouble  GetGroundedPortion(IssmDouble* xyz_list){_error_("not implemented yet");};
    6767                void               GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented yet");};
    68                 Input2*     GetInput2(int enumtype);
    69                 Input2*     GetInput2(int enumtype,IssmDouble time);
    70                 Input2*     GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method){_error_("not implemented yet!");};
    71                 void        GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value);
    72                 void        GetInputListOnNodes(IssmDouble* pvalue,Input2* 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);
    7373                void        GetInputValue(IssmDouble* pvalue,Node* node,int enumtype);
    7474                void               GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented yet");};
     
    156156                IssmDouble  TotalGroundedBmb(bool scaled){_error_("not implemented yet");};
    157157                IssmDouble  TotalSmb(bool scaled){_error_("not implemented yet");};
    158                 void        Update(Inputs2* 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);
    159159                void        UpdateConstraintsExtrudeFromBase(){_error_("not implemented");};
    160160                void        UpdateConstraintsExtrudeFromTop(){_error_("not implemented");};
     
    166166                void        VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");};
    167167                void        VerticalSegmentIndicesBase(int** pindices,int* pnumseg){_error_("not implemented yet");};
    168                 void        ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input2* 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);
    169169
    170170#ifdef _HAVE_GIA_
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r25323 r25379  
    1515//#include <gsl_cblas.h>
    1616#include "../classes.h"
    17 #include "../Inputs2/TriaInput2.h"
    18 #include "../Inputs2/PentaInput2.h"
    19 #include "../Inputs2/ControlInput2.h"
    20 #include "../Inputs2/DatasetInput2.h"
    21 #include "../Inputs2/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"
    2222#include "../../shared/shared.h"
    2323#ifdef _HAVE_GIA_
     
    163163
    164164/*Other*/
    165 void       Tria::AddBasalInput2(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
     165void       Tria::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
    166166
    167167        /*Call inputs method*/
    168         _assert_(this->inputs2);
     168        _assert_(this->inputs);
    169169
    170170        int domaintype;
     
    172172        switch(domaintype){
    173173                case Domain2DhorizontalEnum:
    174                         this->AddInput2(input_enum,values,interpolation_enum);
     174                        this->AddInput(input_enum,values,interpolation_enum);
    175175                        break;
    176176                case Domain2DverticalEnum:{
     
    183183}
    184184/*}}}*/
    185 void       Tria::AddInput2(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
     185void       Tria::AddInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
    186186
    187187        /*Intermediaries*/
     
    189189
    190190        /*Call inputs method*/
    191         if(!this->inputs2){
     191        if(!this->inputs){
    192192                int* temp = xNew<int>(3);
    193                 _error_("inputs2 not set");
    194         }
    195         _assert_(this->inputs2);
     193                _error_("inputs not set");
     194        }
     195        _assert_(this->inputs);
    196196        switch(interpolation_enum){
    197197                case P1Enum:
    198198                        for(int i=0;i<NUMVERTICES;i++) vertexlids[i]=this->vertices[i]->lid;
    199                         inputs2->SetTriaInput(input_enum,interpolation_enum,NUMVERTICES,vertexlids,values);
     199                        inputs->SetTriaInput(input_enum,interpolation_enum,NUMVERTICES,vertexlids,values);
    200200                        break;
    201201                case P1DGEnum:
    202202                        for(int i=0;i<NUMVERTICES;i++) vertexlids[i]=this->vertices[i]->lid;
    203                         inputs2->SetTriaInput(input_enum,interpolation_enum,this->lid,NUMVERTICES,values);
     203                        inputs->SetTriaInput(input_enum,interpolation_enum,this->lid,NUMVERTICES,values);
    204204                        break;
    205205                default:
    206                         inputs2->SetTriaInput(input_enum,interpolation_enum,this->lid,this->GetNumberOfNodes(interpolation_enum),values);
    207         }
    208 
    209 }
    210 /*}}}*/
    211 void       Tria::AddControlInput(int input_enum,Inputs2* 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/*}}}*/
     211void       Tria::AddControlInput(int input_enum,Inputs* inputs,IoModel* iomodel,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max, int interpolation_enum,int id){/*{{{*/
    212212
    213213        /*Intermediaries*/
     
    223223        switch(interpolation_enum){
    224224                case P0Enum:
    225                         inputs2->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);
    226226                        break;
    227227                case P1Enum:
    228                         inputs2->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);
    229229                        break;
    230230                default:
     
    234234}
    235235/*}}}*/
    236 void       Tria::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs2* inputs2,IoModel* iomodel,int input_enum){/*{{{*/
     236void       Tria::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs* inputs,IoModel* iomodel,int input_enum){/*{{{*/
    237237
    238238        /*Intermediaries*/
     
    256256        for(int i=0;i<num_inputs;i++){
    257257                for(int j=0;j<NUMVERTICES;j++) nodeinputs[j]=array[vertexsids[j]*N+i];
    258                 inputs2->SetTriaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs);
     258                inputs->SetTriaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs);
    259259        }
    260260}
     
    315315
    316316        /*Retrieve all inputs and parameters we will need*/
    317         Input2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);
    318         Input2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input);
    319         Input2* B_input  = this->GetInput2(MaterialsRheologyBbarEnum);   _assert_(B_input);
    320         Input2* gr_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input);
    321         Input2* bs_input = this->GetInput2(BaseEnum);                    _assert_(bs_input);
    322         Input2* smax_fl_input = this->GetInput2(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input);
    323         Input2* smax_gr_input = this->GetInput2(CalvingStressThresholdGroundediceEnum); _assert_(smax_gr_input);
    324         Input2* n_input  = this->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);
    325         Input2* 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);
    326326
    327327
     
    384384
    385385        /*Add input*/
    386         this->AddInput2(CalvingratexEnum,&calvingratex[0],P1DGEnum);
    387         this->AddInput2(CalvingrateyEnum,&calvingratey[0],P1DGEnum);
    388         this->AddInput2(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
    389         this->AddInput2(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);
    390390
    391391        /*Clean up and return*/
     
    415415        IssmDouble constant_g     = this->FindParam(ConstantsGEnum);
    416416
    417         Input2*   H_input                 = this->GetInput2(ThicknessEnum); _assert_(H_input);
    418         Input2*   bed_input               = this->GetInput2(BedEnum); _assert_(bed_input);
    419         Input2*   surface_input           = this->GetInput2(SurfaceEnum); _assert_(surface_input);
    420         Input2* strainrateparallel_input  = this->GetInput2(StrainRateparallelEnum);  _assert_(strainrateparallel_input);
    421         Input2* strainrateeffective_input = this->GetInput2(StrainRateeffectiveEnum); _assert_(strainrateeffective_input);
    422         Input2* vx_input                  = this->GetInput2(VxEnum); _assert_(vx_input);
    423         Input2* vy_input                  = this->GetInput2(VxEnum); _assert_(vy_input);
    424         Input2*   waterheight_input       = this->GetInput2(WaterheightEnum); _assert_(waterheight_input);
    425         Input2*   s_xx_input              = this->GetInput2(DeviatoricStressxxEnum);     _assert_(s_xx_input);
    426         Input2*   s_xy_input              = this->GetInput2(DeviatoricStressxyEnum);     _assert_(s_xy_input);
    427         Input2*   s_yy_input              = this->GetInput2(DeviatoricStressyyEnum);     _assert_(s_yy_input);
    428         Input2* B_input  = this->GetInput2(MaterialsRheologyBbarEnum);   _assert_(B_input);
    429         Input2* 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);
    430430
    431431        /*Loop over all elements of this partition*/
     
    484484        }
    485485
    486         this->AddInput2(SurfaceCrevasseEnum,&surface_crevasse[0],P1DGEnum);
    487         this->AddInput2(BasalCrevasseEnum,&basal_crevasse[0],P1DGEnum);
    488         this->AddInput2(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);
    489489
    490490        delete gauss;
     
    506506
    507507        /*Retrieve all inputs and parameters we will need*/
    508         Input2* vx_input=this->GetInput2(VxEnum);                                                                                                       _assert_(vx_input);
    509         Input2* vy_input=this->GetInput2(VyEnum);                                                                                                       _assert_(vy_input);
    510         Input2* bs_input = this->GetInput2(BaseEnum);                                 _assert_(bs_input);
    511         Input2* strainparallel_input=this->GetInput2(StrainRateparallelEnum);                   _assert_(strainparallel_input);
    512         Input2* strainperpendicular_input=this->GetInput2(StrainRateperpendicularEnum);_assert_(strainperpendicular_input);
    513         Input2* 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);
    514514
    515515        /* Start looping on the number of vertices: */
     
    539539
    540540        /*Add input*/
    541         this->AddInput2(CalvingratexEnum,&calvingratex[0],P1DGEnum);
    542         this->AddInput2(CalvingrateyEnum,&calvingratey[0],P1DGEnum);
    543         this->AddInput2(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);
    544544
    545545        /*Clean up and return*/
     
    553553        if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){
    554554                IssmDouble flux_per_area=0;
    555                 this->AddInput2(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);
     555                this->AddInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);
    556556        }
    557557        else{
     
    649649                IssmDouble calvingratex,calvingratey,thickness,Jdet,flux_per_area;
    650650                IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    651                 Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    652                 Input2* calvingratex_input=NULL;
    653                 Input2* calvingratey_input=NULL;
     651                Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input);
     652                Input* calvingratex_input=NULL;
     653                Input* calvingratey_input=NULL;
    654654                if(domaintype==Domain2DhorizontalEnum){
    655                         calvingratex_input=this->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    656                         calvingratey_input=this->GetInput2(CalvingrateyEnum); _assert_(calvingratey_input);
     655                        calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
     656                        calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
    657657                }
    658658                else{
    659                         calvingratex_input=this->GetInput2(CalvingratexAverageEnum); _assert_(calvingratex_input);
    660                         calvingratey_input=this->GetInput2(CalvingrateyAverageEnum); _assert_(calvingratey_input);
     659                        calvingratex_input=this->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
     660                        calvingratey_input=this->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
    661661                }
    662662
     
    677677                }
    678678
    679                 this->AddInput2(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);
     679                this->AddInput(CalvingFluxLevelsetEnum,&flux_per_area,P0Enum);
    680680
    681681                /*Clean up and return*/
     
    689689        if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)){
    690690                IssmDouble flux_per_area=0;
    691                 this->AddInput2(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);
     691                this->AddInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);
    692692        }
    693693        else{
     
    786786                IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet,flux_per_area;
    787787                IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    788                 Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    789                 Input2* calvingratex_input=NULL;
    790                 Input2* calvingratey_input=NULL;
    791                 Input2* vx_input=NULL;
    792                 Input2* vy_input=NULL;
    793                 Input2* 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;
    794794                if(domaintype==Domain2DhorizontalEnum){
    795                         calvingratex_input=this->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    796                         calvingratey_input=this->GetInput2(CalvingrateyEnum); _assert_(calvingratey_input);
    797                         vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    798                         vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
    799                         meltingrate_input=this->GetInput2(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);
    800800                }
    801801                else{
    802                         calvingratex_input=this->GetInput2(CalvingratexAverageEnum); _assert_(calvingratex_input);
    803                         calvingratey_input=this->GetInput2(CalvingrateyAverageEnum); _assert_(calvingratey_input);
     802                        calvingratex_input=this->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
     803                        calvingratey_input=this->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
    804804                }
    805805
     
    826826                }
    827827
    828                 this->AddInput2(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);
     828                this->AddInput(CalvingMeltingFluxLevelsetEnum,&flux_per_area,P0Enum);
    829829
    830830                /*Clean up and return*/
     
    861861        /*Get approximation*/
    862862        int approximation;
    863         this->GetInput2Value(&approximation,ApproximationEnum);
     863        this->Element::GetInputValue(&approximation,ApproximationEnum);
    864864
    865865        /* Get node coordinates and dof list: */
     
    868868        /*Retrieve all inputs we will be needing: */
    869869        this->FindParam(&domaintype,DomainTypeEnum);
    870         Input2* vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    871         Input2* 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);
    872872
    873873        /* Start looping on the number of vertices: */
     
    903903
    904904        /*Add Stress tensor components into inputs*/
    905         this->AddInput2(DeviatoricStressxxEnum,&tau_xx[0],P1DGEnum);
    906         this->AddInput2(DeviatoricStressxyEnum,&tau_xy[0],P1DGEnum);
    907         this->AddInput2(DeviatoricStressxzEnum,&tau_xz[0],P1DGEnum);
    908         this->AddInput2(DeviatoricStressyyEnum,&tau_yy[0],P1DGEnum);
    909         this->AddInput2(DeviatoricStressyzEnum,&tau_yz[0],P1DGEnum);
    910         this->AddInput2(DeviatoricStresszzEnum,&tau_zz[0],P1DGEnum);
    911         this->AddInput2(DeviatoricStresseffectiveEnum,&tau_e[0],P1DGEnum);
    912         this->AddInput2(DeviatoricStress1Enum,&tau_1[0],P1DGEnum);
    913         this->AddInput2(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);
    914914
    915915        /*Clean up and return*/
     
    931931
    932932        /*Retrieve all inputs we will be needing: */
    933         Input2* vx_input=this->GetInput2(EsaXmotionEnum); _assert_(vx_input);
    934         Input2* 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);
    935935
    936936        /* Start looping on the number of vertices: */
     
    950950
    951951        /*Add Stress tensor components into inputs*/
    952         this->AddInput2(EsaStrainratexxEnum,&strain_xx[0],P1DGEnum);
    953         this->AddInput2(EsaStrainrateyyEnum,&strain_yy[0],P1DGEnum);
    954         this->AddInput2(EsaStrainratexyEnum,&strain_xy[0],P1DGEnum);
    955         this->AddInput2(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);
    956956
    957957        /*Clean up and return*/
     
    963963        if(!IsOnBase()){
    964964                IssmDouble sigma_nn[3]={0.};
    965                 this->AddInput2(SigmaNNEnum,&sigma_nn[0],P1Enum);
     965                this->AddInput(SigmaNNEnum,&sigma_nn[0],P1Enum);
    966966                return;
    967967        }
     
    983983                this->FindParam(&domaintype,DomainTypeEnum);
    984984                if(domaintype==Domain2DhorizontalEnum) _error_("stress tensor calculation not supported for mesh of type " <<EnumToStringx(domaintype)<<", extrude mesh or call ComputeDeviatoricStressTensor");
    985                 Input2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);
    986                 Input2* vx_input=this->GetInput2(VxEnum);             _assert_(vx_input);
    987                 Input2* 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);
    988988
    989989                /* Start looping on the number of vertices: */
     
    10101010
    10111011                /*Add Stress tensor components into inputs*/
    1012                 this->AddInput2(SigmaNNEnum,&sigma_nn[0],P1Enum);
     1012                this->AddInput(SigmaNNEnum,&sigma_nn[0],P1Enum);
    10131013
    10141014                /*Clean up and return*/
     
    10391039        this->FindParam(&domaintype,DomainTypeEnum);
    10401040        if(domaintype==Domain2DhorizontalEnum) _error_("stress tensor calculation not supported for mesh of type " <<EnumToStringx(domaintype)<<", extrude mesh or call ComputeDeviatoricStressTensor");
    1041         Input2* pressure_input=this->GetInput2(PressureEnum); _assert_(pressure_input);
    1042         Input2* vx_input=this->GetInput2(VxEnum);             _assert_(vx_input);
    1043         Input2* 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);
    10441044
    10451045        /* Start looping on the number of vertices: */
     
    10601060
    10611061        /*Add Stress tensor components into inputs*/
    1062         this->AddInput2(StressTensorxxEnum,&sigma_xx[0],P1DGEnum);
    1063         this->AddInput2(StressTensorxyEnum,&sigma_xy[0],P1DGEnum);
    1064         this->AddInput2(StressTensorxzEnum,&sigma_xz[0],P1DGEnum);
    1065         this->AddInput2(StressTensoryyEnum,&sigma_yy[0],P1DGEnum);
    1066         this->AddInput2(StressTensoryzEnum,&sigma_yz[0],P1DGEnum);
    1067         this->AddInput2(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);
    10681068
    10691069        /*Clean up and return*/
     
    10711071}
    10721072/*}}}*/
    1073 void       Tria::Configure(Elements* elementsin, Loads* loadsin,Nodes* nodesin,Vertices *verticesin,Materials* materialsin, Parameters* parametersin,Inputs2* inputs2in){/*{{{*/
     1073void       Tria::Configure(Elements* elementsin, Loads* loadsin,Nodes* nodesin,Vertices *verticesin,Materials* materialsin, Parameters* parametersin,Inputs* inputsin){/*{{{*/
    10741074
    10751075        /*go into parameters and get the analysis_counter: */
     
    10981098        /*point parameters to real dataset: */
    10991099        this->parameters=parametersin;
    1100         this->inputs2=inputs2in;
     1100        this->inputs=inputsin;
    11011101}/*}}}*/
    11021102void       Tria::ControlInputSetGradient(IssmDouble* gradient,int control_enum,int control_index,int offset,int M,int N,int interp){/*{{{*/
     
    11061106        int         idlist[NUMVERTICES];
    11071107
    1108         ElementInput2* input=this->inputs2->GetControlInput2Data(control_enum,"gradient");   _assert_(input);
     1108        ElementInput* input=this->inputs->GetControlInputData(control_enum,"gradient");   _assert_(input);
    11091109        this->GetVerticesLidList(&lidlist[0]);
    11101110        GradientIndexing(&idlist[0],control_index);
    11111111
    11121112        /*Get values on vertices*/
    1113         if(input->ObjectEnum()==TriaInput2Enum && input->GetInputInterpolationType()==P1Enum){
     1113        if(input->ObjectEnum()==TriaInputEnum && input->GetInputInterpolationType()==P1Enum){
    11141114                _assert_(N==1);
    11151115                for(int i=0;i<NUMVERTICES;i++){
     
    11181118                input->SetInput(P1Enum,NUMVERTICES,&lidlist[0],&values[0]);
    11191119        }
    1120         else if(input->ObjectEnum()==TriaInput2Enum && input->GetInputInterpolationType()==P0Enum){
     1120        else if(input->ObjectEnum()==TriaInputEnum && input->GetInputInterpolationType()==P0Enum){
    11211121                _assert_(N==1);
    11221122                input->SetInput(P0Enum,this->lid,gradient[idlist[0]]);
    11231123        }
    1124         else if(input->ObjectEnum()==TransientInput2Enum){
     1124        else if(input->ObjectEnum()==TransientInputEnum){
    11251125                for(int n=0;n<N;n++){
    11261126                        _error_("not implemented");
     
    11431143
    11441144        /*Get relevant inputs*/
    1145         ElementInput2* control_value    = this->inputs2->GetControlInput2Data(control_enum,"value");    _assert_(control_value);
    1146         ElementInput2* 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);
    11471147
    11481148        if(control_interp==P1Enum){
     
    12101210
    12111211        /*Update Levelset*/
    1212         this->AddInput2(distanceenum,&ls[0],P1Enum);
     1212        this->AddInput(distanceenum,&ls[0],P1Enum);
    12131213}
    12141214/*}}}*/
     
    13001300                        /*Get input:*/
    13011301                        IssmDouble vel;
    1302                         Input2* vel_input=this->GetInput2(VelEnum); _assert_(vel_input);
     1302                        Input* vel_input=this->GetInput(VelEnum); _assert_(vel_input);
    13031303                        vel_input->GetInputAverage(&vel);
    13041304
     
    13561356        floatingarea=(1-phi)*this->GetArea();
    13571357        if(scaled==true){
    1358                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     1358                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    13591359                scalefactor_input->GetInputAverage(&scalefactor);
    13601360                floatingarea=floatingarea*scalefactor;
     
    13711371
    13721372        int approximation;
    1373         this->GetInput2Value(&approximation,ApproximationEnum);
     1373        this->Element::GetInputValue(&approximation,ApproximationEnum);
    13741374
    13751375        if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum || approximation==SSAHOApproximationEnum){
     
    13941394        GetVerticesCoordinates(&xyz_list);
    13951395        /*Retrieve all inputs we will be needing: */
    1396         Input2* vx_input       = this->GetInput2(VxEnum);       _assert_(vx_input);
    1397         Input2* 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);
    13981398
    13991399        /*1. Recover stresses at the base*/
     
    18971897        *pxyz_front=xyz_front;
    18981898}/*}}}*/
    1899 Input2*    Tria::GetInput2(int inputenum){/*{{{*/
     1899Input*    Tria::GetInput(int inputenum){/*{{{*/
    19001900
    19011901        /*Get Input from dataset*/
    19021902        if(this->iscollapsed){
    1903                 PentaInput2* input = this->inputs2->GetPentaInput(inputenum);
     1903                PentaInput* input = this->inputs->GetPentaInput(inputenum);
    19041904                if(!input) return input;
    19051905
     
    19081908        }
    19091909        else{
    1910                 TriaInput2* input = this->inputs2->GetTriaInput(inputenum);
     1910                TriaInput* input = this->inputs->GetTriaInput(inputenum);
    19111911                if(!input) return input;
    19121912
     
    19151915        }
    19161916}/*}}}*/
    1917 Input2*    Tria::GetInput2(int inputenum,IssmDouble time){/*{{{*/
     1917Input*    Tria::GetInput(int inputenum,IssmDouble time){/*{{{*/
    19181918
    19191919        /*Get Input from dataset*/
    19201920        if(this->iscollapsed){
    1921                 PentaInput2* input = this->inputs2->GetPentaInput(inputenum,time);
     1921                PentaInput* input = this->inputs->GetPentaInput(inputenum,time);
    19221922                if(!input) return input;
    19231923
     
    19261926        }
    19271927        else{
    1928                 TriaInput2* input = this->inputs2->GetTriaInput(inputenum,time);
     1928                TriaInput* input = this->inputs->GetTriaInput(inputenum,time);
    19291929                if(!input) return input;
    19301930
     
    19331933        }
    19341934}/*}}}*/
    1935 Input2*    Tria::GetInput2(int inputenum,IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/
     1935Input*    Tria::GetInput(int inputenum,IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/
    19361936
    19371937        /*Get Input from dataset*/
    19381938        if(this->iscollapsed){
    1939                 PentaInput2* input = this->inputs2->GetPentaInput(inputenum,start_time,end_time,averaging_method);
     1939                PentaInput* input = this->inputs->GetPentaInput(inputenum,start_time,end_time,averaging_method);
    19401940                if(!input) return input;
    19411941
     
    19441944        }
    19451945        else{
    1946                 TriaInput2* input = this->inputs2->GetTriaInput(inputenum,start_time,end_time,averaging_method);
     1946                TriaInput* input = this->inputs->GetTriaInput(inputenum,start_time,end_time,averaging_method);
    19471947                if(!input) return input;
    19481948
     
    19511951        }
    19521952}/*}}}*/
    1953 void       Tria::GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value){/*{{{*/
     1953void       Tria::GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/
    19541954
    19551955        /*Checks in debugging mode*/
     
    19691969}
    19701970/*}}}*/
    1971 void       Tria::GetInputListOnNodes(IssmDouble* pvalue,Input2* input,IssmDouble default_value){/*{{{*/
     1971void       Tria::GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value){/*{{{*/
    19721972
    19731973        /*Checks in debugging mode*/
     
    19911991}
    19921992/*}}}*/
    1993 void       Tria::InputServe(Input2* input_in){/*{{{*/
     1993void       Tria::InputServe(Input* input_in){/*{{{*/
    19941994
    19951995        /*Return NULL pointer if input is NULL*/
     
    19981998        /*Get Input from dataset*/
    19991999        if(this->iscollapsed){
    2000                 _assert_(input_in->ObjectEnum()==PentaInput2Enum);
    2001                 PentaInput2* input = xDynamicCast<PentaInput2*>(input_in);
     2000                _assert_(input_in->ObjectEnum()==PentaInputEnum);
     2001                PentaInput* input = xDynamicCast<PentaInput*>(input_in);
    20022002
    20032003                /*Intermediaries*/
     
    20302030        }
    20312031        else{
    2032                 _assert_(input_in->ObjectEnum()==TriaInput2Enum);
    2033                 TriaInput2* input = xDynamicCast<TriaInput2*>(input_in);
     2032                _assert_(input_in->ObjectEnum()==TriaInputEnum);
     2033                TriaInput* input = xDynamicCast<TriaInput*>(input_in);
    20342034
    20352035                /*Intermediaries*/
     
    20612061        }
    20622062}/*}}}*/
    2063 DatasetInput2* Tria::GetDatasetInput2(int inputenum){/*{{{*/
    2064 
    2065         DatasetInput2* datasetinput = this->inputs2->GetDatasetInput2(inputenum);
     2063DatasetInput* Tria::GetDatasetInput(int inputenum){/*{{{*/
     2064
     2065        DatasetInput* datasetinput = this->inputs->GetDatasetInput(inputenum);
    20662066        if(!datasetinput) return NULL;
    20672067
     
    20712071                if(this->iscollapsed){
    20722072
    2073                         PentaInput2* input = datasetinput->GetPentaInputByOffset(i); _assert_(input);
     2073                        PentaInput* input = datasetinput->GetPentaInputByOffset(i); _assert_(input);
    20742074
    20752075                        /*Intermediaries*/
     
    21022102                else{
    21032103
    2104                         TriaInput2* input = datasetinput->GetTriaInputByOffset(i); _assert_(input);
     2104                        TriaInput* input = datasetinput->GetTriaInputByOffset(i); _assert_(input);
    21052105
    21062106                        /*Intermediaries*/
     
    21382138
    21392139        /*Get transient input time steps*/
    2140         TransientInput2* transient_input  = this->inputs2->GetTransientInput(transientinput_enum);
    2141         TriaInput2* averaged_input = transient_input->GetTriaInput(start_time,end_time,averaging_method);
    2142         Input2* 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();
    21432143
    21442144        averaged_copy->ChangeEnum(averagedinput_enum);
    2145         this->inputs2->AddInput(averaged_copy);
     2145        this->inputs->AddInput(averaged_copy);
    21462146}
    21472147/*}}}*/
     
    21512151        int         numtimesteps;
    21522152        IssmDouble *timesteps    = NULL;
    2153         TransientInput2* transient_input  = this->inputs2->GetTransientInput(input_enum);
     2153        TransientInput* transient_input  = this->inputs->GetTransientInput(input_enum);
    21542154
    21552155        transient_input->GetAllTimes(&timesteps,&numtimesteps);
     
    21712171        for(int i=0;i<numsteps;i++){
    21722172                if((iscurrenttime_included==false) && (i==(numsteps-1))){
    2173                         Input2* input = this->GetInput2(input_enum,currenttime);
     2173                        Input* input = this->GetInput(input_enum,currenttime);
    21742174                        input->GetInputAverage(&values[i]);
    21752175                        times[i]=currenttime;
    21762176                }
    21772177                else{
    2178                         TriaInput2* input = transient_input->GetTriaInput(i);
     2178                        TriaInput* input = transient_input->GetTriaInput(i);
    21792179                        this->InputServe(input);
    21802180                        input->GetInputAverage(&values[i]);
     
    21912191void       Tria::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){/*{{{*/
    21922192
    2193         Input2* input=this->GetInput2(enumtype);
     2193        Input* input=this->GetInput(enumtype);
    21942194        if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria");
    21952195
     
    22052205void       Tria::GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype){/*{{{*/
    22062206
    2207         Input2* input=this->GetInput2(enumtype);
     2207        Input* input=this->GetInput(enumtype);
    22082208        if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria");
    22092209
     
    24192419
    24202420        /*Get input (either in element or material)*/
    2421         ElementInput2* input=this->inputs2->GetControlInput2Data(control_enum,data);   _assert_(input);
     2421        ElementInput* input=this->inputs->GetControlInputData(control_enum,data);   _assert_(input);
    24222422
    24232423        /*Intermediaries*/
     
    24412441        /*Flag as collapsed for later use*/
    24422442        if(this->iscollapsed){
    2443                 xDynamicCast<PentaInput2*>(input)->SetServeCollapsed(true);
     2443                xDynamicCast<PentaInput*>(input)->SetServeCollapsed(true);
    24442444        }
    24452445
     
    24592459
    24602460        /*Get input*/
    2461         ElementInput2* input=this->inputs2->GetControlInput2Data(control_enum,data);   _assert_(input);
     2461        ElementInput* input=this->inputs->GetControlInputData(control_enum,data);   _assert_(input);
    24622462
    24632463        /*Lid list once for all*/
     
    24672467        /*Check what input we are dealing with*/
    24682468        switch(input->ObjectEnum()){
    2469                 case TriaInput2Enum:
     2469                case TriaInputEnum:
    24702470                          {
    24712471                                IssmDouble values[NUMVERTICES];
    24722472                                int        idlist[NUMVERTICES];
    24732473
    2474                                 TriaInput2* triainput = xDynamicCast<TriaInput2*>(input);
     2474                                TriaInput* triainput = xDynamicCast<TriaInput*>(input);
    24752475
    24762476                                /*Create list of indices and values for global vector*/
     
    24942494                case TransientInputEnum:
    24952495                                {
    2496                                         TransientInput2* transientinput = xDynamicCast<TransientInput2*>(input);
     2496                                        TransientInput* transientinput = xDynamicCast<TransientInput*>(input);
    24972497                                        int  N = transientinput->numtimesteps;
    24982498                                        int* M = NULL;
     
    25732573        groundedarea=phi*this->GetArea();
    25742574        if(scaled==true){
    2575                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     2575                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    25762576                scalefactor_input->GetInputAverage(&scalefactor);
    25772577                groundedarea=groundedarea*scalefactor;
     
    26532653        IssmDouble vx,vy,thickness,Jdet;
    26542654        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    2655         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    2656         Input2* vx_input=NULL;
    2657         Input2* vy_input=NULL;
     2655        Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input);
     2656        Input* vx_input=NULL;
     2657        Input* vy_input=NULL;
    26582658        if(domaintype==Domain2DhorizontalEnum){
    2659                 vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    2660                 vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
     2659                vx_input=this->GetInput(VxEnum); _assert_(vx_input);
     2660                vy_input=this->GetInput(VyEnum); _assert_(vy_input);
    26612661        }
    26622662        else{
    2663                 vx_input=this->GetInput2(VxAverageEnum); _assert_(vx_input);
    2664                 vy_input=this->GetInput2(VyAverageEnum); _assert_(vy_input);
     2663                vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input);
     2664                vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input);
    26652665        }
    26662666
     
    27822782        IssmDouble vx,vy,thickness,Jdet;
    27832783        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    2784         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    2785         Input2* vx_input=NULL;
    2786         Input2* vy_input=NULL;
     2784        Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input);
     2785        Input* vx_input=NULL;
     2786        Input* vy_input=NULL;
    27872787        if(domaintype==Domain2DhorizontalEnum){
    2788                 vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    2789                 vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
     2788                vx_input=this->GetInput(VxEnum); _assert_(vx_input);
     2789                vy_input=this->GetInput(VyEnum); _assert_(vy_input);
    27902790        }
    27912791        else{
    2792                 vx_input=this->GetInput2(VxAverageEnum); _assert_(vx_input);
    2793                 vy_input=this->GetInput2(VyAverageEnum); _assert_(vy_input);
     2792                vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input);
     2793                vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input);
    27942794        }
    27952795
     
    29092909        IssmDouble vx,vy,thickness,Jdet;
    29102910        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    2911         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    2912         Input2* vx_input=NULL;
    2913         Input2* vy_input=NULL;
     2911        Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input);
     2912        Input* vx_input=NULL;
     2913        Input* vy_input=NULL;
    29142914        if(domaintype==Domain2DhorizontalEnum){
    2915                 vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    2916                 vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
     2915                vx_input=this->GetInput(VxEnum); _assert_(vx_input);
     2916                vy_input=this->GetInput(VyEnum); _assert_(vy_input);
    29172917        }
    29182918        else{
    2919                 vx_input=this->GetInput2(VxAverageEnum); _assert_(vx_input);
    2920                 vy_input=this->GetInput2(VyAverageEnum); _assert_(vy_input);
     2919                vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input);
     2920                vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input);
    29212921        }
    29222922
     
    30153015                area_base=this->GetArea();
    30163016                if(scaled==true){
    3017                         Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     3017                        Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    30183018                        scalefactor_input->GetInputAverage(&scalefactor);
    30193019                        area_base=area_base*scalefactor;
     
    30213021
    30223022                /*Now get the average height*/
    3023                 Input2* surface_input = this->GetInput2(SurfaceEnum); _assert_(surface_input);
    3024                 Input2* 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);
    30253025                surface_input->GetInputAverage(&surface);
    30263026                base_input->GetInputAverage(&base);
     
    30593059        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]));
    30603060        if(scaled==true){
    3061                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     3061                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    30623062                scalefactor_input->GetInputAverage(&scalefactor);
    30633063                base=base*scalefactor;
     
    30653065
    30663066        /*Now get the average height and bathymetry*/
    3067         Input2* surface_input = this->GetInput2(SurfaceEnum); _assert_(surface_input);
    3068         Input2* base_input    = this->GetInput2(BaseEnum);    _assert_(base_input);
    3069         Input2* 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);
    30703070        if(!bed_input) _error_("Could not find bed");
    30713071        surface_input->GetInputAverage(&surface);
     
    30803080
    30813081        /*New input*/
    3082         Input2* oldinput=NULL;
    3083         Input2* newinput=NULL;
     3082        Input* oldinput=NULL;
     3083        Input* newinput=NULL;
    30843084
    30853085        /*copy input of enum_type*/
    3086         oldinput=this->GetInput2(enum_type);
     3086        oldinput=this->GetInput(enum_type);
    30873087        if(!oldinput)_error_("could not find old input with enum: " << EnumToStringx(enum_type));
    30883088        newinput=oldinput->copy();
     
    31433143
    31443144        /*Add input to the element: */
    3145         this->AddInput2(enum_type,values,this->element_type);
     3145        this->AddInput(enum_type,values,this->element_type);
    31463146
    31473147        /*Free ressources:*/
     
    31723172                        }
    31733173                        /*update input*/
    3174                         inputs2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     3174                        inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    31753175                        break;
    31763176
     
    31833183                        }
    31843184                        /*update input*/
    3185                         inputs2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     3185                        inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    31863186                        break;
    31873187
     
    31943194                        }
    31953195                        /*update input*/
    3196                         inputs2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     3196                        inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    31973197                        break;
    31983198
     
    32233223                        }
    32243224                        if(this->element_type==P1Enum){
    3225                                 inputs2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     3225                                inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    32263226                        }
    32273227                        else{
    3228                                 inputs2->SetTriaInput(name,this->element_type,this->lid,numnodes,values);
     3228                                inputs->SetTriaInput(name,this->element_type,this->lid,numnodes,values);
    32293229                        }
    32303230                        break;
     
    32363236                        /*update input*/
    32373237                        //this->inputs->AddInput(new DoubleInput(name,value));
    3238                         //inputs2->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
     3238                        //inputs->SetTriaInput(name,P1Enum,NUMVERTICES,lidlist,values);
    32393239                        _error_("not implemented");
    32403240                        break;
     
    33543354        /*intermediary: */
    33553355        IssmDouble* values=NULL;
    3356         Input2*     thickness_input=NULL;
     3356        Input*     thickness_input=NULL;
    33573357        IssmDouble  thickness;
    33583358        IssmDouble  weight;
     
    33723372
    33733373        /*Retrieve inputs required:*/
    3374         thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
     3374        thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input);
    33753375
    33763376        /*Retrieve material parameters: */
     
    34343434        /*Get velocity and thickness*/
    34353435        this->parameters->FindParam(&domaintype,DomainTypeEnum);
    3436         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    3437         Input2* vx_input=NULL;
    3438         Input2* vy_input=NULL;
     3436        Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input);
     3437        Input* vx_input=NULL;
     3438        Input* vy_input=NULL;
    34393439        if(domaintype==Domain2DhorizontalEnum){
    3440                 vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    3441                 vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
     3440                vx_input=this->GetInput(VxEnum); _assert_(vx_input);
     3441                vy_input=this->GetInput(VyEnum); _assert_(vy_input);
    34423442        }
    34433443        else{
    3444                 vx_input=this->GetInput2(VxAverageEnum); _assert_(vx_input);
    3445                 vy_input=this->GetInput2(VyAverageEnum); _assert_(vy_input);
     3444                vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input);
     3445                vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input);
    34463446        }
    34473447
     
    34823482        /*Retrieve all inputs we will be needing: */
    34833483        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    3484         Input2* model_input=this->GetInput2(modelenum);   _assert_(model_input);
    3485         Input2* observation_input=this->GetInput2(observationenum);_assert_(observation_input);
    3486         Input2* 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);
    34873487
    34883488        /* Start  looping on the number of gaussian points: */
     
    35233523        /*Retrieve all inputs we will be needing: */
    35243524        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    3525         Input2* weights_input     =this->GetInput2(weightsenum);     _assert_(weights_input);
     3525        Input* weights_input     =this->GetInput(weightsenum);     _assert_(weights_input);
    35263526
    35273527        /* Start  looping on the number of gaussian points: */
     
    36623662
    36633663        /*First, serarch the input: */
    3664         Input2* data=this->GetInput2(natureofdataenum);
     3664        Input* data=this->GetInput(natureofdataenum);
    36653665
    36663666        /*figure out if we have the vertex id: */
     
    38273827
    38283828        /*For FS only: we want the CS to be tangential to the bedrock*/
    3829         this->GetInput2Value(&approximation,ApproximationEnum);
     3829        this->Element::GetInputValue(&approximation,ApproximationEnum);
    38303830        if(!HasNodeOnBase() ||  approximation!=FSApproximationEnum) return;
    38313831
    38323832        /*Get inputs*/
    3833         Input2* slope_input=this->GetInput2(BedSlopeXEnum);                             _assert_(slope_input);
    3834         Input2* 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);
    38353835        vertexonbase = xNew<IssmDouble>(numnodes);
    38363836        this->GetInputListOnNodesVelocity(&vertexonbase[0],MeshVertexonbaseEnum);
     
    38983898
    38993899        /*Get inputs*/
    3900         Input2* bed_input = this->GetInput2(BedEnum);                     _assert_(bed_input);
    3901         Input2* qsg_input = this->GetInput2(FrontalForcingsSubglacialDischargeEnum);             _assert_(qsg_input);
    3902         Input2* 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);
    39033903        Element::GetInputListOnVertices(&basinid[0],FrontalForcingsBasinIdEnum);
    39043904
     
    39333933
    39343934        /*Add input*/
    3935         this->AddInput2(CalvingMeltingrateEnum,&meltrates[0],P1Enum);
     3935        this->AddInput(CalvingMeltingrateEnum,&meltrates[0],P1Enum);
    39363936
    39373937        /*Cleanup and return*/
     
    39663966        if(!IsInputEnum(control_enum)) return;
    39673967
    3968         ElementInput2* input=this->inputs2->GetControlInput2Data(control_enum,"value");   _assert_(input);
     3968        ElementInput* input=this->inputs->GetControlInputData(control_enum,"value");   _assert_(input);
    39693969        this->GetVerticesLidList(&lidlist[0]);
    39703970        GradientIndexing(&idlist[0],control_index);
    39713971
    39723972        /*Get values on vertices*/
    3973         if(input->ObjectEnum()==TriaInput2Enum && input->GetInputInterpolationType()==P1Enum){
     3973        if(input->ObjectEnum()==TriaInputEnum && input->GetInputInterpolationType()==P1Enum){
    39743974                _assert_(N==1);
    39753975                for(int i=0;i<NUMVERTICES;i++){
     
    39783978                input->SetInput(P1Enum,NUMVERTICES,&lidlist[0],&values[0]);
    39793979        }
    3980         else if(input->ObjectEnum()==TriaInput2Enum && input->GetInputInterpolationType()==P0Enum){
     3980        else if(input->ObjectEnum()==TriaInputEnum && input->GetInputInterpolationType()==P0Enum){
    39813981                _assert_(N==1);
    39823982                input->SetInput(P0Enum,this->lid,vector[idlist[0]]);
    39833983        }
    3984         else if(input->ObjectEnum()==TransientInput2Enum){
     3984        else if(input->ObjectEnum()==TransientInputEnum){
    39853985                for(int n=0;n<N;n++){
    39863986                        _error_("not implemented");
     
    40114011void       Tria::SetElementInput(int enum_in,IssmDouble value){/*{{{*/
    40124012
    4013         this->SetElementInput(this->inputs2,enum_in,value);
    4014 
    4015 }
    4016 /*}}}*/
    4017 void       Tria::SetElementInput(Inputs2* inputs2,int enum_in,IssmDouble value){/*{{{*/
    4018 
    4019         _assert_(inputs2);
    4020         inputs2->SetTriaInput(enum_in,P0Enum,this->lid,value);
    4021 
    4022 }
    4023 /*}}}*/
    4024 void       Tria::SetElementInput(Inputs2* inputs2,int numindices,int* indices,IssmDouble* values,int enum_in){/*{{{*/
    4025 
    4026         _assert_(inputs2);
    4027         inputs2->SetTriaInput(enum_in,P1Enum,numindices,indices,values);
     4013        this->SetElementInput(this->inputs,enum_in,value);
     4014
     4015}
     4016/*}}}*/
     4017void       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/*}}}*/
     4024void       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);
    40284028
    40294029}
     
    40594059        seg->sid=this->sid;
    40604060        seg->lid=this->lid;
    4061         seg->inputs2=this->inputs2;
     4061        seg->inputs=this->inputs;
    40624062        seg->parameters=this->parameters;
    40634063        seg->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED)
     
    41124112
    41134113        /*Retrieve all inputs we will need*/
    4114         Input2* vx_input=this->GetInput2(VxEnum);                                  _assert_(vx_input);
    4115         Input2* 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);
    41164116
    41174117        /* Start looping on the number of vertices: */
     
    41364136
    41374137        /*Add input*/
    4138         this->AddInput2(StrainRateparallelEnum,&strainparallel[0],P1DGEnum);
     4138        this->AddInput(StrainRateparallelEnum,&strainparallel[0],P1DGEnum);
    41394139
    41404140        /*Clean up and return*/
     
    41584158
    41594159        /*Retrieve all inputs we will need*/
    4160         Input2* vx_input=this->GetInput2(VxEnum);                                  _assert_(vx_input);
    4161         Input2* 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);
    41624162
    41634163        /* Start looping on the number of vertices: */
     
    41824182
    41834183        /*Add input*/
    4184         this->AddInput2(StrainRateperpendicularEnum,&strainperpendicular[0],P1DGEnum);
     4184        this->AddInput(StrainRateperpendicularEnum,&strainperpendicular[0],P1DGEnum);
    41854185
    41864186        /*Clean up and return*/
     
    42304230
    42314231        /*Get for Vx and Vy, the max of abs value: */
    4232         Input2* vx_input = this->GetInput2(VxEnum); _assert_(vx_input);
    4233         Input2* 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);
    42344234        IssmDouble maxabsvx = vx_input->GetInputMaxAbs();
    42354235        IssmDouble maxabsvy = vy_input->GetInputMaxAbs();
     
    43594359        IssmDouble calvingratex,calvingratey,thickness,Jdet;
    43604360        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    4361         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    4362         Input2* calvingratex_input=NULL;
    4363         Input2* calvingratey_input=NULL;
     4361        Input* thickness_input=this->GetInput(ThicknessEnum); _assert_(thickness_input);
     4362        Input* calvingratex_input=NULL;
     4363        Input* calvingratey_input=NULL;
    43644364        if(domaintype==Domain2DhorizontalEnum){
    4365                 calvingratex_input=this->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    4366                 calvingratey_input=this->GetInput2(CalvingrateyEnum); _assert_(calvingratey_input);
     4365                calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
     4366                calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
    43674367        }
    43684368        else{
    4369                 calvingratex_input=this->GetInput2(CalvingratexAverageEnum); _assert_(calvingratex_input);
    4370                 calvingratey_input=this->GetInput2(CalvingrateyAverageEnum); _assert_(calvingratey_input);
     4369                calvingratex_input=this->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
     4370                calvingratey_input=this->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
    43714371        }
    43724372
     
    44884488        IssmDouble calvingratex,calvingratey,vx,vy,vel,meltingrate,meltingratex,meltingratey,thickness,Jdet;
    44894489        IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum);
    4490         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
    4491         Input2* calvingratex_input=NULL;
    4492         Input2* calvingratey_input=NULL;
    4493         Input2* vx_input=NULL;
    4494         Input2* vy_input=NULL;
    4495         Input2* 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;
    44964496        if(domaintype==Domain2DhorizontalEnum){
    4497                 calvingratex_input=this->GetInput2(CalvingratexEnum); _assert_(calvingratex_input);
    4498                 calvingratey_input=this->GetInput2(CalvingrateyEnum); _assert_(calvingratey_input);
    4499                 vx_input=this->GetInput2(VxEnum); _assert_(vx_input);
    4500                 vy_input=this->GetInput2(VyEnum); _assert_(vy_input);
    4501                 meltingrate_input=this->GetInput2(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);
    45024502        }
    45034503        else{
    4504                 calvingratex_input=this->GetInput2(CalvingratexAverageEnum); _assert_(calvingratex_input);
    4505                 calvingratey_input=this->GetInput2(CalvingrateyAverageEnum); _assert_(calvingratey_input);
     4504                calvingratex_input=this->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
     4505                calvingratey_input=this->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
    45064506        }
    45074507
     
    45434543        /*Get material parameters :*/
    45444544        rho_ice=FindParam(MaterialsRhoIceEnum);
    4545         Input2* floatingmelt_input = this->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input);
    4546         Input2* gllevelset_input   = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
    4547         Input2* 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;
    45484548        if(scaled==true){
    4549                 scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     4549                scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    45504550        }
    45514551        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
     
    45884588        /*Get material parameters :*/
    45894589        rho_ice=FindParam(MaterialsRhoIceEnum);
    4590         Input2* groundedmelt_input = this->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input);
    4591         Input2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
    4592         Input2* 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;
    45934593        if(scaled==true){
    4594                 scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     4594                scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    45954595        }
    45964596        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
     
    46384638
    46394639        /*Now get the average SMB over the element*/
    4640         Input2* smb_input = this->GetInput2(SmbMassBalanceEnum); _assert_(smb_input);
     4640        Input* smb_input = this->GetInput(SmbMassBalanceEnum); _assert_(smb_input);
    46414641        smb_input->GetInputAverage(&smb);       // average smb on element in m ice s-1
    46424642        if(scaled==true){
    4643                 Input2* scalefactor_input = this->GetInput2(MeshScaleFactorEnum); _assert_(scalefactor_input);
     4643                Input* scalefactor_input = this->GetInput(MeshScaleFactorEnum); _assert_(scalefactor_input);
    46444644                scalefactor_input->GetInputAverage(&scalefactor);// average scalefactor on element
    46454645        }
     
    46534653}
    46544654/*}}}*/
    4655 void       Tria::Update(Inputs2* inputs2,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){/*{{{*/
     4655void       Tria::Update(Inputs* inputs,int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){/*{{{*/
    46564656
    46574657        /*Intermediaries*/
     
    48074807
    48084808        this->parameters->FindParam(&extrusioninput,InputToExtrudeEnum);
    4809         Input2* input = this->GetInput2(extrusioninput);      _assert_(input);
    4810         Input2* onbase = this->GetInput2(MeshVertexonbaseEnum); _assert_(onbase);
     4809        Input* input = this->GetInput(extrusioninput);      _assert_(input);
     4810        Input* onbase = this->GetInput(MeshVertexonbaseEnum); _assert_(onbase);
    48114811
    48124812        GaussTria* gauss=new GaussTria();
     
    48314831
    48324832        this->parameters->FindParam(&extrusioninput,InputToExtrudeEnum);
    4833         Input2* input = this->GetInput2(extrusioninput); _assert_(input);
    4834         Input2* onsurf = this->GetInput2(MeshVertexonsurfaceEnum); _assert_(onsurf);
     4833        Input* input = this->GetInput(extrusioninput); _assert_(input);
     4834        Input* onsurf = this->GetInput(MeshVertexonsurfaceEnum); _assert_(onsurf);
    48354835
    48364836        GaussTria* gauss=new GaussTria();
     
    49964996
    49974997        /*recover mantle viscosity: */
    4998         Input2* mantle_viscosity_input=this->GetInput2(GiaMantleViscosityEnum);
     4998        Input* mantle_viscosity_input=this->GetInput(GiaMantleViscosityEnum);
    49994999        if (!mantle_viscosity_input)_error_("mantle viscosity input needed to compute gia deflection!");
    50005000        mantle_viscosity_input->GetInputAverage(&mantle_viscosity);
    50015001
    50025002        /*recover lithosphere thickness: */
    5003         Input2* lithosphere_thickness_input=this->GetInput2(GiaLithosphereThicknessEnum);
     5003        Input* lithosphere_thickness_input=this->GetInput(GiaLithosphereThicknessEnum);
    50045004        if (!lithosphere_thickness_input)_error_("lithosphere thickness input needed to compute gia deflection!");
    50055005        lithosphere_thickness_input->GetInputAverage(&lithosphere_thickness);
     
    50855085
    50865086        /*Compute ice thickness change: */
    5087         Input2* deltathickness_input=this->GetInput2(EsaDeltathicknessEnum);
     5087        Input* deltathickness_input=this->GetInput(EsaDeltathicknessEnum);
    50885088        if (!deltathickness_input)_error_("delta thickness input needed to compute elastic adjustment!");
    50895089        deltathickness_input->GetInputAverage(&I);
     
    52235223
    52245224        /*Compute ice thickness change: */
    5225         Input2* deltathickness_input=this->GetInput2(EsaDeltathicknessEnum);
     5225        Input* deltathickness_input=this->GetInput(EsaDeltathicknessEnum);
    52265226        if (!deltathickness_input)_error_("delta thickness input needed to compute elastic adjustment!");
    52275227        deltathickness_input->GetInputAverage(&I);
     
    53635363
    53645364                /*Get area of element:*/
    5365                 this->GetInput2Value(&area,AreaEnum);
     5365                this->Element::GetInputValue(&area,AreaEnum);
    53665366
    53675367                /*Average Sg over vertices:*/
     
    53865386        /*Compute area of element:*/
    53875387        IssmDouble area,planetarea;
    5388         this->GetInput2Value(&area,AreaEnum);
     5388        this->Element::GetInputValue(&area,AreaEnum);
    53895389
    53905390        /*recover earth area: */
     
    54585458
    54595459                /*Compute ice thickness change: */
    5460                 Input2* deltathickness_input=this->GetInput2(SurfaceloadIceThicknessChangeEnum);
     5460                Input* deltathickness_input=this->GetInput(SurfaceloadIceThicknessChangeEnum);
    54615461                if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
    54625462                deltathickness_input->GetInputAverage(&I);
     
    54755475
    54765476        /*are we fully floating:*/
    5477         Input2* gr_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input);
     5477        Input* gr_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
    54785478        if (gr_input->GetInputMax()<=0)masks->isfullyfloating[this->lid]=true;
    54795479        else masks->isfullyfloating[this->lid]=false;
     
    56225622
    56235623        /*Add in inputs:*/
    5624     this->inputs2->SetArrayInput(SealevelriseIndicesEnum,this->lid,indices,gsize);
    5625     this->inputs2->SetArrayInput(SealevelriseGEnum,this->lid,G,gsize);
    5626     this->inputs2->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);
    56275627    if(horiz){
    5628                 this->inputs2->SetArrayInput(SealevelriseGNEnum,this->lid,GN,gsize);
    5629                 this->inputs2->SetArrayInput(SealevelriseGEEnum,this->lid,GE,gsize);
    5630         }
    5631         this->inputs2->SetDoubleInput(AreaEnum,this->lid,area);
    5632         this->AddInput2(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);
    56335633
    56345634        /*Free allocations:*/
     
    56965696        if(!masks->isiceonly[this->lid]){
    56975697                #ifdef _ISSM_DEBUG_
    5698                 constant=0; this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum);
     5698                constant=0; this->AddInput(SealevelEustaticMaskEnum,&constant,P0Enum);
    56995699                #endif
    57005700                *peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage!
     
    57065706                constant=0;
    57075707                #ifdef _ISSM_DEBUG_
    5708                 this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum);
     5708                this->AddInput(SealevelEustaticMaskEnum,&constant,P0Enum);
    57095709                #endif
    57105710                *peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage!
     
    57185718        constant=1;
    57195719        #ifdef _ISSM_DEBUG_
    5720         this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum);
     5720        this->AddInput(SealevelEustaticMaskEnum,&constant,P0Enum);
    57215721        #endif
    57225722
     
    57295729
    57305730        /*retrieve precomputed G:*/
    5731         this->inputs2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);
     5731        this->inputs->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);
    57325732
    57335733        /*Get area of element: precomputed in the sealevelrise_core_geometry:*/
    5734         this->GetInput2Value(&area,AreaEnum);
     5734        this->Element::GetInputValue(&area,AreaEnum);
    57355735
    57365736        /*Compute fraction of the element that is grounded: */
     
    57445744
    57455745        /*Retrieve ice thickness at vertices: */
    5746         Input2* deltathickness_input=this->GetInput2(SurfaceloadIceThicknessChangeEnum);
     5746        Input* deltathickness_input=this->GetInput(SurfaceloadIceThicknessChangeEnum);
    57475747        if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
    57485748
     
    58285828
    58295829        /*retrieve precomputed G:*/
    5830         this->inputs2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);
     5830        this->inputs->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);
    58315831
    58325832        /*Get area of element: precomputed in the sealevelrise_core_geometry:*/
    5833         this->GetInput2Value(&area,AreaEnum);
     5833        this->Element::GetInputValue(&area,AreaEnum);
    58345834
    58355835        /*Retrieve water height at vertices: */
    5836         Input2* deltathickness_input=this->GetInput2(SurfaceloadWaterHeightChangeEnum);
     5836        Input* deltathickness_input=this->GetInput(SurfaceloadWaterHeightChangeEnum);
    58375837        if (!deltathickness_input)_error_("SurfaceloadWaterHeightChangeEnum input needed to compute sea level rise!");
    58385838        deltathickness_input->GetInputAverage(&W);
     
    58745874        /*Inform mask: */
    58755875        #ifdef _ISSM_DEBUG_
    5876         constant=1; this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum);
     5876        constant=1; this->AddInput(SealevelEustaticMaskEnum,&constant,P0Enum);
    58775877        #endif
    58785878
     
    58815881
    58825882        /*retrieve precomputed G:*/
    5883         this->inputs2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);
     5883        this->inputs->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize);
    58845884
    58855885        /*Get area of element: precomputed in the sealevelrise_core_geometry:*/
    5886         this->GetInput2Value(&area,AreaEnum);
     5886        this->Element::GetInputValue(&area,AreaEnum);
    58875887
    58885888        /*Retrieve bottom pressure change and average over the element: */
    5889         Input2* bottompressure_change_input=this->GetInput2(DslSeaWaterPressureChangeAtSeaFloorEnum);
     5889        Input* bottompressure_change_input=this->GetInput(DslSeaWaterPressureChangeAtSeaFloorEnum);
    58905890        if (!bottompressure_change_input)_error_("bottom pressure input needed to compute sea level rise fingerprint!");
    58915891        bottompressure_change_input->GetInputAverage(&BP);
     
    59185918                constant=0;
    59195919                #ifdef _ISSM_DEBUG_
    5920                 this->AddInput2(SealevelEustaticOceanMaskEnum,&constant,P0Enum);
     5920                this->AddInput(SealevelEustaticOceanMaskEnum,&constant,P0Enum);
    59215921                #endif
    59225922                return;
     
    59245924        constant=1;
    59255925        #ifdef _ISSM_DEBUG_
    5926         this->AddInput2(SealevelEustaticOceanMaskEnum,&constant,P0Enum);
     5926        this->AddInput(SealevelEustaticOceanMaskEnum,&constant,P0Enum);
    59275927        #endif
    59285928
     
    59315931
    59325932        /*retrieve precomputed G:*/
    5933         this->inputs2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&dummy); _assert_(dummy==gsize);
     5933        this->inputs->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&dummy); _assert_(dummy==gsize);
    59345934
    59355935        /*From Sg_old, recover water sea level rise:*/
     
    59775977
    59785978        /*recover elastic Green's functions for displacement:*/
    5979         this->inputs2->GetArrayPtr(SealevelriseGUEnum,this->lid,&GU,&gsize);
     5979        this->inputs->GetArrayPtr(SealevelriseGUEnum,this->lid,&GU,&gsize);
    59805980        if(horiz){
    5981                 this->inputs2->GetArrayPtr(SealevelriseGEEnum,this->lid,&GE,&gsize);
    5982                 this->inputs2->GetArrayPtr(SealevelriseGNEnum,this->lid,&GN,&gsize);
     5981                this->inputs->GetArrayPtr(SealevelriseGEEnum,this->lid,&GE,&gsize);
     5982                this->inputs->GetArrayPtr(SealevelriseGNEnum,this->lid,&GN,&gsize);
    59835983        }
    59845984
     
    59935993                /*If bottom pressures are available, retrieve them to load the bedrock:*/
    59945994                if(bp_compute_fingerprints){
    5995                         Input2* bottompressure_change_input=this->GetInput2(DslSeaWaterPressureChangeAtSeaFloorEnum);
     5995                        Input* bottompressure_change_input=this->GetInput(DslSeaWaterPressureChangeAtSeaFloorEnum);
    59965996                        if (!bottompressure_change_input)_error_("bottom pressure input needed to compute sea level rise fingerprint!");
    59975997                        bottompressure_change_input->GetInputAverage(&BP);
     
    60146014
    60156015                /*Compute ice thickness change: */
    6016                 Input2* deltathickness_input=this->GetInput2(SurfaceloadIceThicknessChangeEnum);
     6016                Input* deltathickness_input=this->GetInput(SurfaceloadIceThicknessChangeEnum);
    60176017                if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
    60186018                deltathickness_input->GetInputAverage(&I);
     
    60426042       
    60436043        /*Branch according to whether we have a transient or not input: */
    6044         type=this->inputs2->GetInputObjectEnum(name);
    6045         if(type==TriaInput2Enum){
     6044        type=this->inputs->GetInputObjectEnum(name);
     6045        if(type==TriaInputEnum){
    60466046                /*Figure out if we are P0 or P1 interpolation: */
    6047                 TriaInput2* triainput = this->inputs2->GetTriaInput(name);
    6048                 TriaInput2* triainput2 = this->inputs2->GetTriaInput(DummyEnum);
     6047                TriaInput* triainput = this->inputs->GetTriaInput(name);
     6048                TriaInput* triainput2 = this->inputs->GetTriaInput(DummyEnum);
    60496049                this->InputServe(triainput);
    60506050                interp=triainput->GetInterpolation();
     
    60716071                else _error_("Tria::InputScaleFromDakota error message: input interpolation " << EnumToStringx(interp) << " not supported yet!");
    60726072        }
    6073         else if(type==TransientInput2Enum){
     6073        else if(type==TransientInputEnum){
    60746074
    60756075                IssmDouble* steps=NULL;
    60766076                int nsteps;
    6077                 TransientInput2* transientinput = NULL;
    6078                 TransientInput2* transientinput2 = NULL;
     6077                TransientInput* transientinput = NULL;
     6078                TransientInput* transientinput2 = NULL;
    60796079
    60806080                /*retrieve transient input:*/
    6081                 transientinput= this->inputs2->GetTransientInput(name); _assert_(transientinput);
    6082                 transientinput2= this->inputs2->GetTransientInput(DummyEnum); _assert_(transientinput2);
     6081                transientinput= this->inputs->GetTransientInput(name); _assert_(transientinput);
     6082                transientinput2= this->inputs->GetTransientInput(DummyEnum); _assert_(transientinput2);
    60836083
    60846084                /*retrieve time steps: */
     
    60956095                /*go through the transient inputs, and update:*/
    60966096                for (int i=0;i<nsteps;i++){
    6097                         TriaInput2* triainput=transientinput->GetTriaInput(i);
    6098                         TriaInput2* triainput2=transientinput2->GetTriaInput(i);
     6097                        TriaInput* triainput=transientinput->GetTriaInput(i);
     6098                        TriaInput* triainput2=transientinput2->GetTriaInput(i);
    60996099                        this->InputServe(triainput);
    61006100                        interp=triainput->GetInterpolation();
     
    61326132        /*Check that name is an element input*/
    61336133        if(!IsInputEnum(name)) _error_("Enum "<<EnumToStringx(name)<<" is not in IsInput");
    6134         TransientInput2* transientinput = inputs2->GetTransientInput(name);
     6134        TransientInput* transientinput = inputs->GetTransientInput(name);
    61356135
    61366136        switch(type){
     
    62436243
    62446244                                        /*Add new inputs: */
    6245                                         this->AddInput2(ThicknessEnum,thickness,P1Enum);
    6246                                         this->AddInput2(BaseEnum,bed,P1Enum);
    6247                                         this->AddInput2(SurfaceEnum,surface,P1Enum);
     6245                                        this->AddInput(ThicknessEnum,thickness,P1Enum);
     6246                                        this->AddInput(BaseEnum,bed,P1Enum);
     6247                                        this->AddInput(SurfaceEnum,surface,P1Enum);
    62486248
    62496249                                        break;
    62506250                                case MaterialsRheologyBEnum:
    6251                                         this->AddInput2(MaterialsRheologyBbarEnum,values,P1Enum);
     6251                                        this->AddInput(MaterialsRheologyBbarEnum,values,P1Enum);
    62526252                                        break;
    62536253                                default:
    6254                                         this->AddInput2(name,values,P1Enum);
     6254                                        this->AddInput(name,values,P1Enum);
    62556255                        }
    62566256                        break;
     
    62606260                        /*Get value for the element: */
    62616261                        value=vector[this->Sid()]; //careful, vector of values here is not parallel distributed, but serial distributed (from a serial Dakota core!)
    6262                         this->AddInput2(name,&value,P0Enum);
     6262                        this->AddInput(name,&value,P0Enum);
    62636263                        break;
    62646264                default:
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r25318 r25379  
    6565                void        ComputeStressTensor();
    6666                void        ComputeSurfaceNormalVelocity();
    67                 void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs2* inputs2in);
     67                void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters,Inputs* inputsin);
    6868                void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int M,int N,int interp);
    6969                void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum,int control_interp);
     
    8484                IssmDouble  GetIcefrontArea();
    8585                void          GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum);
    86                 void        GetInputListOnVertices(IssmDouble* pvalue,Input2* input,IssmDouble default_value);
    87                 void        GetInputListOnNodes(IssmDouble* pvalue,Input2* input,IssmDouble default_value);
     86                void        GetInputListOnVertices(IssmDouble* pvalue,Input* input,IssmDouble default_value);
     87                void        GetInputListOnNodes(IssmDouble* pvalue,Input* input,IssmDouble default_value);
    8888                void          GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level);
    8989                int         GetVertexIndex(Vertex* vertex);
     
    127127                void        RignotMeltParameterization();
    128128                void        SetElementInput(int enum_in,IssmDouble values);
    129                 void        SetElementInput(Inputs2* inputs2,int enum_in,IssmDouble values);
    130                 void        SetElementInput(Inputs2* 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);
    131131                void        SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset,int M,int N);
    132132                void        SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
     
    144144                IssmDouble  TotalGroundedBmb(bool scaled);
    145145                IssmDouble  TotalSmb(bool scaled);
    146                 void        Update(Inputs2* 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);
    147147                int         UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf);
    148148                void        ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss);
     
    175175                /*}}}*/
    176176                /*Tria specific routines:{{{*/
    177                 void           AddBasalInput2(int input_enum, IssmDouble* values, int interpolation_enum);
    178                 void           AddInput2(int input_enum, IssmDouble* values, int interpolation_enum);
    179                 void           AddControlInput(int input_enum,Inputs2* 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,Inputs2* 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);
    181181                void           CreateInputTimeAverage(int transientinput_enum,int averagedinput_enum,IssmDouble init_time,IssmDouble end_time,int averaging_method);
    182182                void           GetInputAveragesUpToCurrentTime(int input_enum,IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
     
    188188                void           GetAreaCoordinates(IssmDouble *area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints);
    189189                int            GetElementType(void);
    190                 Input2*        GetInput2(int enumtype);
    191                 Input2*        GetInput2(int enumtype,IssmDouble time);
    192                 Input2*        GetInput2(int inputenum,IssmDouble start_time,IssmDouble end_time,int averaging_method);
    193                 DatasetInput2* 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);
    194194                void           GetInputValue(IssmDouble* pvalue,Node* node,int enumtype);
    195195                void           GetInputValue(IssmDouble* pvalue,Vertex* vertex,int enumtype);
     
    227227                void           NormalTop(IssmDouble* normal,IssmDouble* xyz_list);
    228228                void           SetTemporaryElementType(int element_type_in){_error_("not implemented yet");};
    229                 void           InputServe(Input2* input_in);
     229                void           InputServe(Input* input_in);
    230230                Seg*             SpawnSeg(int index1,int index2);
    231231                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  
    1717#include "../shared/Enum/Enum.h"
    1818#include "../analyses/analyses.h"
    19 #include "./Inputs2/DatasetInput2.h"
    20 #include "./Inputs2/ElementInput2.h"
    21 #include "./Inputs2/TransientInput2.h"
     19#include "./Inputs/DatasetInput.h"
     20#include "./Inputs/ElementInput.h"
     21#include "./Inputs/TransientInput.h"
    2222
    2323#if _HAVE_CODIPACK_
     
    202202        if(materials)delete materials;
    203203        if(parameters)delete parameters;
    204         if(inputs2)delete inputs2;
     204        if(inputs)delete inputs;
    205205        if(results)delete results;
    206206
     
    343343        output->materials=static_cast<Materials*>(this->materials->Copy());
    344344        output->parameters=static_cast<Parameters*>(this->parameters->Copy());
    345         output->inputs2=static_cast<Inputs2*>(this->inputs2->Copy());
     345        output->inputs=static_cast<Inputs*>(this->inputs->Copy());
    346346        output->results=static_cast<Results*>(this->results->Copy());
    347347        output->vertices=static_cast<Vertices*>(this->vertices->Copy());
     
    362362                SpcNodesx(output->nodes_list[i],output->constraints_list[i],output->parameters);
    363363                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->inputs2);
     364                ConfigureObjectsx(output->elements,output->loads_list[i],output->nodes_list[i],output->vertices,output->materials,output->parameters,output->inputs);
    365365        }
    366366
     
    436436
    437437        /*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->inputs2,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);
    439439
    440440        /*do the post-processing of the datasets to get an FemModel that can actually run analyses: */
     
    445445
    446446                if(VerboseMProcessor()) _printf0_("      configuring element and loads\n");
    447                 ConfigureObjectsx(this->elements,this->loads,this->nodes,this->vertices,this->materials,this->parameters,this->inputs2);
     447                ConfigureObjectsx(this->elements,this->loads,this->nodes,this->vertices,this->materials,this->parameters,this->inputs);
    448448
    449449                if(i==0){
     
    470470                delete this->materials;
    471471                delete this->parameters;
    472                 delete this->inputs2;
     472                delete this->inputs;
    473473                if(this->constraints_list && this->nummodels){
    474474                        for(i=0;i<this->nummodels;i++) delete this->constraints_list[i];
     
    490490                this->materials   = new Materials();
    491491                this->parameters  = new Parameters();
    492                 this->inputs2     = new Inputs2();
     492                this->inputs     = new Inputs();
    493493                this->results     = new Results();
    494494                this->nodes       = new Nodes();
     
    506506        this->materials->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    507507        this->parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    508         this->inputs2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
     508        this->inputs->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    509509        this->results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    510510        this->vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
     
    538538                        SpcNodesx(this->nodes_list[i],this->constraints_list[i],this->parameters);
    539539                        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->inputs2);
     540                        ConfigureObjectsx(this->elements,this->loads_list[i],this->nodes_list[i],this->vertices,this->materials,this->parameters,this->inputs);
    541541                }
    542542
     
    980980                /* Get node coordinates*/
    981981                element->GetVerticesCoordinates(&xyz_list);
    982                 DatasetInput2* weights_input                   = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    983                 Input2* thickness_input                 = element->GetInput2(ThicknessEnum); _assert_(thickness_input);
    984                 Input2* vx_input                        = element->GetInput2(VxEnum);                                  _assert_(vx_input);
    985                 Input2* vy_input                        = element->GetInput2(VyEnum);                                  _assert_(vy_input);
    986                 Input2* surface_mass_balance_input      = element->GetInput2(SmbMassBalanceEnum);          _assert_(surface_mass_balance_input);
    987                 Input2* groundedice_melting_input       = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input);
    988                 Input2* 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);
    989989
    990990                /* Start  looping on the number of gaussian points: */
     
    16171617                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    16181618                element->GetInputListOnVertices(P1DGlist,enum_in);
    1619                 element->AddInput2(DummyEnum,P1DGlist,P1DGEnum);
     1619                element->AddInput(DummyEnum,P1DGlist,P1DGEnum);
    16201620        }
    16211621        xDelete<IssmDouble>(P1DGlist);
    16221622
    1623         this->inputs2->ChangeEnum(DummyEnum,enum_in);
    1624         this->inputs2->DeleteInput(DummyEnum);
     1623        this->inputs->ChangeEnum(DummyEnum,enum_in);
     1624        this->inputs->DeleteInput(DummyEnum);
    16251625
    16261626}/*}}}*/
     
    17701770        for(i=0;i<this->elements->Size();i++){
    17711771                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1772                 Input2*  input = element->GetInput2(VxEnum);
     1772                Input*  input = element->GetInput(VxEnum);
    17731773                element_maxabsvx=input->GetInputMaxAbs();
    17741774                if(element_maxabsvx>maxabsvx) maxabsvx=element_maxabsvx;
     
    17951795        for(i=0;i<this->elements->Size();i++){
    17961796                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1797                 Input2*  input = element->GetInput2(VyEnum);
     1797                Input*  input = element->GetInput(VyEnum);
    17981798                element_maxabsvy=input->GetInputMaxAbs();
    17991799                if(element_maxabsvy>maxabsvy) maxabsvy=element_maxabsvy;
     
    18201820        for(i=0;i<this->elements->Size();i++){
    18211821                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1822                 Input2*  input = element->GetInput2(VzEnum);
     1822                Input*  input = element->GetInput(VzEnum);
    18231823                element_maxabsvz=input->GetInputMaxAbs();
    18241824                if(element_maxabsvz>maxabsvz) maxabsvz=element_maxabsvz;
     
    18641864        for(i=0;i<this->elements->Size();i++){
    18651865                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1866                 Input2* vel_input = element->GetInput2(VelEnum); _assert_(vel_input);
     1866                Input* vel_input = element->GetInput(VelEnum); _assert_(vel_input);
    18671867                element_maxvel = vel_input->GetInputMax();
    18681868                if(element_maxvel>maxvel) maxvel=element_maxvel;
     
    18891889        for(i=0;i<this->elements->Size();i++){
    18901890                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1891                 Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input);
     1891                Input* vx_input = element->GetInput(VxEnum); _assert_(vx_input);
    18921892                element_maxvx = vx_input->GetInputMax();
    18931893                if(element_maxvx>maxvx) maxvx=element_maxvx;
     
    19141914        for(i=0;i<this->elements->Size();i++){
    19151915                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1916                 Input2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input);
     1916                Input* vy_input = element->GetInput(VyEnum); _assert_(vy_input);
    19171917                element_maxvy = vy_input->GetInputMax();
    19181918                if(element_maxvy>maxvy) maxvy=element_maxvy;
     
    19391939        for(i=0;i<this->elements->Size();i++){
    19401940                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1941                 Input2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input);
     1941                Input* vz_input = element->GetInput(VzEnum); _assert_(vz_input);
    19421942                element_maxvz = vz_input->GetInputMax();
    19431943                if(element_maxvz>maxvz) maxvz=element_maxvz;
     
    19641964        for(i=0;i<this->elements->Size();i++){
    19651965                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1966                 Input2*  input = element->GetInput2(VelEnum);
     1966                Input*  input = element->GetInput(VelEnum);
    19671967                element_minvel =input->GetInputMin();
    19681968                if(element_minvel<minvel) minvel=element_minvel;
     
    19891989        for(i=0;i<this->elements->Size();i++){
    19901990                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1991                 Input2*  input = element->GetInput2(VxEnum);
     1991                Input*  input = element->GetInput(VxEnum);
    19921992                element_minvx =input->GetInputMin();
    19931993                if(element_minvx<minvx) minvx=element_minvx;
     
    20142014        for(i=0;i<this->elements->Size();i++){
    20152015                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    2016                 Input2*  input = element->GetInput2(VyEnum);
     2016                Input*  input = element->GetInput(VyEnum);
    20172017                element_minvy =input->GetInputMin();
    20182018                if(element_minvy<minvy) minvy=element_minvy;
     
    20392039        for(i=0;i<this->elements->Size();i++){
    20402040                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    2041                 Input2*  input = element->GetInput2(VzEnum);
     2041                Input*  input = element->GetInput(VzEnum);
    20422042                element_minvz =input->GetInputMin();
    20432043                if(element_minvz<minvz) minvz=element_minvz;
     
    20752075
    20762076                /*Retrieve all inputs we will be needing: */
    2077                 DatasetInput2* weights_input = element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    2078                 Input2* 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);
    20792079
    20802080                /* Start  looping on the number of gaussian points: */
     
    21322132
    21332133                /*Retrieve all inputs we will be needing: */
    2134                 DatasetInput2* weights_input =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    2135                 Input2* omega_input   =element->GetInput2(BalancethicknessOmegaEnum);              _assert_(omega_input);
    2136                 Input2* 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);
    21372137
    21382138                /* Start  looping on the number of gaussian points: */
     
    26912691
    26922692                 /*Retrieve all inputs we will be needing: */
    2693                  DatasetInput2* weights_input   =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    2694                  Input2* surface_input   =element->GetInput2(SurfaceEnum);                            _assert_(surface_input);
    2695                  Input2* 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);
    26962696
    26972697                 /* Start  looping on the number of gaussian points: */
     
    27472747
    27482748                /*Retrieve all inputs we will be needing: */
    2749                 DatasetInput2* weights_input   =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    2750                 Input2* 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);
    27512751
    27522752                /* Start  looping on the number of gaussian points: */
     
    28332833                H[1]=Hserial[element->vertices[1]->Sid()];
    28342834                H[2]=Hserial[element->vertices[2]->Sid()];
    2835                 element->AddInput2(ThicknessEnum,H,P1Enum);
     2835                element->AddInput(ThicknessEnum,H,P1Enum);
    28362836        }
    28372837
     
    28662866
    28672867                /*Retrieve all inputs we will be needing: */
    2868                 DatasetInput2* weights_input   =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    2869                 Input2* 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);
    28702870
    28712871                /* Start  looping on the number of gaussian points: */
     
    31763176
    31773177        /*Creating inputs*/
    3178         Inputs2* new_inputs2=new Inputs2(newnumberofelements,newnumberofvertices);
     3178        Inputs* new_inputs=new Inputs(newnumberofelements,newnumberofvertices);
    31793179
    31803180        /*Creating materials*/
     
    32413241                }
    32423242
    3243                 ConfigureObjectsx(new_elements,this->loads,new_nodes_list[i],new_vertices,new_materials,this->parameters,new_inputs2);
     3243                ConfigureObjectsx(new_elements,this->loads,new_nodes_list[i],new_vertices,new_materials,this->parameters,new_inputs);
    32443244                SpcNodesx(new_nodes_list[i],new_constraints_list[i],this->parameters);
    32453245                NodesDofx(new_nodes_list[i],this->parameters);
     
    32473247
    32483248        /*Interpolate all inputs and insert them into the new elements.*/
    3249         this->InterpolateInputs(new_vertices,new_elements,new_inputs2);
     3249        this->InterpolateInputs(new_vertices,new_elements,new_inputs);
    32503250
    32513251        /*Delete old structure and set new pointers*/
    3252         delete this->inputs2;   this->inputs2 = new_inputs2;
     3252        delete this->inputs;   this->inputs = new_inputs;
    32533253        delete this->vertices;  this->vertices = new_vertices;
    32543254        delete this->elements;  this->elements = new_elements;
     
    33133313                }
    33143314                /*insert new bedrock*/
    3315                 element->AddInput2(BedEnum,&r[0],P1Enum);
     3315                element->AddInput(BedEnum,&r[0],P1Enum);
    33163316                /*Cleanup*/
    33173317                xDelete<IssmDouble>(xyz_list);
     
    33613361
    33623362                /*Update inputs*/
    3363                 element->AddInput2(MaskOceanLevelsetEnum,&phi[0],P1Enum);
    3364                 element->AddInput2(ThicknessEnum,&h[0],P1Enum);
    3365                 element->AddInput2(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);
    33663366        }
    33673367
     
    33953395
    33963396        /*Figure out how many inputs we have and their respective interpolation*/
    3397         this->inputs2->GetInputsInterpolations(&numinputs,&input_interpolations,&input_enums);
     3397        this->inputs->GetInputsInterpolations(&numinputs,&input_interpolations,&input_enums);
    33983398
    33993399        /*Count and get enums of all inputs in old mesh*/
     
    34213421                                        break;
    34223422                                case P0Enum:
    3423                                 case IntInput2Enum:
    3424                                 case BoolInput2Enum:
     3423                                case IntInputEnum:
     3424                                case BoolInputEnum:
    34253425                                        if(step){
    34263426                                                P0input_enums[numP0inputs]  = input_enums[i];
     
    34463446                        switch(P0input_interp[j]){
    34473447                                case P0Enum:{
    3448                                         Input2* input=element->GetInput2(P0input_enums[j]);
     3448                                        Input* input=element->GetInput(P0input_enums[j]);
    34493449                                        input->GetInputAverage(&value);
    34503450                                }
    34513451                                                         break;
    3452                                 case IntInput2Enum:{
     3452                                case IntInputEnum:{
    34533453                                        int valueint;
    3454                                         element->GetInput2Value(&valueint,P0input_enums[j]);
     3454                                        element->GetInputValue(&valueint,P0input_enums[j]);
    34553455                                        value = reCast<IssmDouble>(valueint);
    34563456                                }
    34573457                                                                         break;
    3458                                 case BoolInput2Enum:{
     3458                                case BoolInputEnum:{
    34593459                                        bool valuebool;
    3460                                         element->GetInput2Value(&valuebool,P0input_enums[j]);
     3460                                        element->GetInputValue(&valuebool,P0input_enums[j]);
    34613461                                        value = reCast<IssmDouble>(valuebool);
    34623462                                }
     
    34723472                /*Get P1 inputs*/
    34733473                for(int j=0;j<numP1inputs;j++){
    3474                         Input2* temp = element->GetInput2(P1input_enums[j]); _assert_(temp);
    3475                         ElementInput2* input=xDynamicCast<ElementInput2*>(temp);
     3474                        Input* temp = element->GetInput(P1input_enums[j]); _assert_(temp);
     3475                        ElementInput* input=xDynamicCast<ElementInput*>(temp);
    34763476                        pos[0]=element->vertices[0]->Sid()*numP1inputs+j;
    34773477                        pos[1]=element->vertices[1]->Sid()*numP1inputs+j;
     
    35063506}
    35073507/*}}}*/
    3508 void FemModel::InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs2* newinputs2){/*{{{*/
     3508void FemModel::InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs* newinputs){/*{{{*/
    35093509
    35103510        int numberofelements                    = -1;                                                                                           //global, entire old mesh
     
    35753575                        switch(P0input_interp[j]){
    35763576                                case P0Enum:
    3577                                         element->SetElementInput(newinputs2,P0input_enums[j],newP0inputs[i*numP0inputs+j]);
     3577                                        element->SetElementInput(newinputs,P0input_enums[j],newP0inputs[i*numP0inputs+j]);
    35783578                                        break;
    3579                                 case IntInput2Enum:
    3580                                         element->SetIntInput(newinputs2,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]));
    35813581                                        break;
    3582                                 case BoolInput2Enum:
    3583                                         element->SetBoolInput(newinputs2,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]));
    35843584                                        break;
    35853585                                default:
     
    35933593                        values[1]=newP1inputs[sidtoindex[element->vertices[1]->Sid()]*numP1inputs+j];
    35943594                        values[2]=newP1inputs[sidtoindex[element->vertices[2]->Sid()]*numP1inputs+j];
    3595                         newinputs2->SetTriaInput(P1input_enums[j],P1Enum,3,vertexlids,values);
     3595                        newinputs->SetTriaInput(P1input_enums[j],P1Enum,3,vertexlids,values);
    35963596                }
    35973597        }
     
    36973697                        newtria->isonbase = true;
    36983698                        newtria->parameters=NULL;
    3699                         newtria->inputs2=NULL;
     3699                        newtria->inputs=NULL;
    37003700                        newtria->nodes=NULL;
    37013701                        newtria->vertices=NULL;
     
    47234723        for(int i=0;i<elements->Size();i++){
    47244724                Element*   element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    4725                 element->GetInput2Value(&area,AreaEnum);
     4725                element->GetInputValue(&area,AreaEnum);
    47264726                if (masks->isoceanin[i]) oceanarea_cpu += area;
    47274727        }
     
    52125212
    52135213        for(int i=0;i<numoutputs;i++){
    5214                 this->inputs2->DeleteInput(transientinput_enum[i]);
    5215                 this->inputs2->SetTransientInput(transientinput_enum[i],NULL,0);
     5214                this->inputs->DeleteInput(transientinput_enum[i]);
     5215                this->inputs->SetTransientInput(transientinput_enum[i],NULL,0);
    52165216                /*We need to configure this input!*/
    5217                 TransientInput2* transientinput = this->inputs2->GetTransientInput(transientinput_enum[i]); _assert_(transientinput);
     5217                TransientInput* transientinput = this->inputs->GetTransientInput(transientinput_enum[i]); _assert_(transientinput);
    52185218                transientinput->Configure(this->parameters);
    52195219        }
     
    52315231                                /*Get the right transient input*/
    52325232                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    5233                                 TransientInput2* transientinput = this->inputs2->GetTransientInput(transientinput_enum[i]);
     5233                                TransientInput* transientinput = this->inputs->GetTransientInput(transientinput_enum[i]);
    52345234
    52355235                                /*Get values and lid list*/
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r25066 r25379  
    1111class DataSet;
    1212class Parameters;
    13 class Inputs2;
     13class Inputs;
    1414class Nodes;
    1515class Vertices;
     
    4545                Materials   *materials;            //one set of materials, for each element
    4646                Parameters  *parameters;           //one set of parameters, independent of the analysis_type
    47                 Inputs2     *inputs2;              //one set of inputs, independent of the analysis_type
     47                Inputs     *inputs;              //one set of inputs, independent of the analysis_type
    4848                Results     *results;              //results that cannot be fit into the elements
    4949                Vertices    *vertices;             //one set of vertices
     
    200200                void CreateConstraints(Vertices* newfemmodel_vertices,int analysis_enum,Constraints* newfemmodel_constraints);
    201201                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,Inputs2* new_inputs);
     202                void InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs* new_inputs);
    203203                void UpdateElements(int newnumberofelements,int* newelementslist,bool* my_elements,int analysis_counter,Elements* newelements);
    204204                void WriteMeshInResults(void);
  • issm/trunk-jpl/src/c/classes/Inputs/ArrayInput.cpp

    r25378 r25379  
    1 /*!\file ArrayInput2.c
    2  * \brief: implementation of the ArrayInput2 object
     1/*!\file ArrayInput.c
     2 * \brief: implementation of the ArrayInput object
    33 */
    44
     
    1111#include "../classes.h"
    1212#include "../../shared/shared.h"
    13 #include "./ArrayInput2.h"
     13#include "./ArrayInput.h"
    1414
    15 /*ArrayInput2 constructors and destructor*/
    16 ArrayInput2::ArrayInput2(void){/*{{{*/
     15/*ArrayInput constructors and destructor*/
     16ArrayInput::ArrayInput(void){/*{{{*/
    1717
    1818        this->numberofelements_local = -1;
     
    2121
    2222}/*}}}*/
    23 ArrayInput2::ArrayInput2(int nbe_in){/*{{{*/
     23ArrayInput::ArrayInput(int nbe_in){/*{{{*/
    2424
    2525        _assert_(nbe_in>0);
     
    3030
    3131}/*}}}*/
    32 ArrayInput2::~ArrayInput2(){/*{{{*/
     32ArrayInput::~ArrayInput(){/*{{{*/
    3333        if(this->values){
    3434                for(int i=0;i<this->numberofelements_local;i++) if(this->values[i]) xDelete<IssmDouble>(this->values[i]);
     
    4040
    4141/*Object virtual functions definitions:*/
    42 Input2* ArrayInput2::copy() {/*{{{*/
     42Input* ArrayInput::copy() {/*{{{*/
    4343
    44         ArrayInput2* output = new ArrayInput2(this->numberofelements_local);
     44        ArrayInput* output = new ArrayInput(this->numberofelements_local);
    4545
    4646        output->N = xNew<int>(this->numberofelements_local);
     
    6262}
    6363/*}}}*/
    64 void ArrayInput2::DeepEcho(void){/*{{{*/
    65         _printf_("ArrayInput2 Echo:\n");
     64void ArrayInput::DeepEcho(void){/*{{{*/
     65        _printf_("ArrayInput Echo:\n");
    6666        ///_printf_("   Size:          "<<N<<"\n");
    6767        //printarray(this->values,this->M,this->N);
    68         //_printf_(setw(15)<<"   ArrayInput2 "<<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");
    6969}
    7070/*}}}*/
    71 void ArrayInput2::Echo(void){/*{{{*/
     71void ArrayInput::Echo(void){/*{{{*/
    7272        this->DeepEcho();
    7373}
    7474/*}}}*/
    75 int  ArrayInput2::Id(void){/*{{{*/
     75int  ArrayInput::Id(void){/*{{{*/
    7676        return -1;
    7777}/*}}}*/
    78 void ArrayInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     78void ArrayInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    7979
    80         MARSHALLING_ENUM(ArrayInput2Enum);
     80        MARSHALLING_ENUM(ArrayInputEnum);
    8181        MARSHALLING(this->numberofelements_local);
    8282        if(this->numberofelements_local){
     
    9595}
    9696/*}}}*/
    97 int  ArrayInput2::ObjectEnum(void){/*{{{*/
    98         return ArrayInput2Enum;
     97int  ArrayInput::ObjectEnum(void){/*{{{*/
     98        return ArrayInputEnum;
    9999}
    100100/*}}}*/
    101101
    102 /*ArrayInput2 management*/
    103 void ArrayInput2::SetInput(int row,int numindices,IssmDouble* values_in){/*{{{*/
     102/*ArrayInput management*/
     103void ArrayInput::SetInput(int row,int numindices,IssmDouble* values_in){/*{{{*/
    104104
    105105        _assert_(this);
     
    117117}
    118118/*}}}*/
    119 void ArrayInput2::GetArray(int row,IssmDouble** pvalues,int* pN){/*{{{*/
     119void ArrayInput::GetArray(int row,IssmDouble** pvalues,int* pN){/*{{{*/
    120120
    121121        _assert_(this);
     
    131131}
    132132/*}}}*/
    133 void ArrayInput2::GetArrayPtr(int row,IssmDouble** pvalues,int* pN){/*{{{*/
     133void ArrayInput::GetArrayPtr(int row,IssmDouble** pvalues,int* pN){/*{{{*/
    134134
    135135        _assert_(this);
  • issm/trunk-jpl/src/c/classes/Inputs/ArrayInput.h

    r25378 r25379  
    33
    44/*Headers:*/
    5 #include "./Input2.h"
     5#include "./Input.h"
    66
    7 class ArrayInput2: public Input2{
     7class ArrayInput: public Input{
    88
    99        private:
     
    1313
    1414        public:
    15                 /*ArrayInput2 constructors, destructors: {{{*/
    16                 ArrayInput2();
    17                 ArrayInput2(int nbe_in);
    18                 ~ArrayInput2();
     15                /*ArrayInput constructors, destructors: {{{*/
     16                ArrayInput();
     17                ArrayInput(int nbe_in);
     18                ~ArrayInput();
    1919                /*}}}*/
    2020                /*Object virtual functions definitions:{{{ */
    21                 Input2 *copy();
     21                Input *copy();
    2222                void    DeepEcho();
    2323                void    Echo();
     
    2626                int     ObjectEnum();
    2727                /*}}}*/
    28                 /*ArrayInput2 management:*/
     28                /*ArrayInput management:*/
    2929                void SetInput(int row,int numinds,IssmDouble* values_in);
    3030                void GetArray(int row,IssmDouble** pvalues,int* pN);
  • issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp

    r25378 r25379  
    1 /*!\file BoolInput2.c
    2  * \brief: implementation of the BoolInput2 object
     1/*!\file BoolInput.c
     2 * \brief: implementation of the BoolInput object
    33 */
    44
     
    1010
    1111#include "../classes.h"
    12 #include "./BoolInput2.h"
     12#include "./BoolInput.h"
    1313#include "../../shared/shared.h"
    1414
    15 /*BoolInput2 constructors and destructor*/
    16 BoolInput2::BoolInput2(){/*{{{*/
     15/*BoolInput constructors and destructor*/
     16BoolInput::BoolInput(){/*{{{*/
    1717        this->size   = -1;
    1818        this->values = NULL;
    1919}
    2020/*}}}*/
    21 BoolInput2::BoolInput2(int size_in){/*{{{*/
     21BoolInput::BoolInput(int size_in){/*{{{*/
    2222        _assert_(size_in>0);
    2323        _assert_(size_in<1e11);
     
    2626}
    2727/*}}}*/
    28 BoolInput2::~BoolInput2(){/*{{{*/
     28BoolInput::~BoolInput(){/*{{{*/
    2929        xDelete<bool>(this->values);
    3030}
     
    3232
    3333/*Object virtual functions definitions:*/
    34 Input2* BoolInput2::copy() {/*{{{*/
     34Input* BoolInput::copy() {/*{{{*/
    3535
    3636        _assert_(this->size);
    37         BoolInput2* output = new BoolInput2(this->size);
     37        BoolInput* output = new BoolInput(this->size);
    3838        xMemCpy<bool>(output->values,this->values,this->size);
    3939
     
    4242}
    4343/*}}}*/
    44 void BoolInput2::DeepEcho(void){/*{{{*/
     44void BoolInput::DeepEcho(void){/*{{{*/
    4545
    46         _printf_("BoolInput2 Echo:\n");
     46        _printf_("BoolInput Echo:\n");
    4747        _printf_("   Size:          "<<size<<"\n");
    4848        printarray(this->values,this->size);
    4949}
    5050/*}}}*/
    51 void BoolInput2::Echo(void){/*{{{*/
     51void BoolInput::Echo(void){/*{{{*/
    5252        this->DeepEcho();
    5353}
    5454/*}}}*/
    55 int  BoolInput2::Id(void){ return -1; }/*{{{*/
     55int  BoolInput::Id(void){ return -1; }/*{{{*/
    5656/*}}}*/
    57 void BoolInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     57void BoolInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    5858
    59         MARSHALLING_ENUM(BoolInput2Enum);
     59        MARSHALLING_ENUM(BoolInputEnum);
    6060        MARSHALLING(this->size);
    6161        if(this->size > 0){
     
    6666}
    6767/*}}}*/
    68 int  BoolInput2::ObjectEnum(void){/*{{{*/
     68int  BoolInput::ObjectEnum(void){/*{{{*/
    6969
    70         return BoolInput2Enum;
     70        return BoolInputEnum;
    7171
    7272}
    7373/*}}}*/
    7474
    75 /*BoolInput2 management*/
    76 void BoolInput2::GetInput(bool* pvalue,int index){/*{{{*/
     75/*BoolInput management*/
     76void BoolInput::GetInput(bool* pvalue,int index){/*{{{*/
    7777
    7878        _assert_(index>=0);
     
    8282}
    8383/*}}}*/
    84 void BoolInput2::SetInput(int index,bool value){/*{{{*/
     84void BoolInput::SetInput(int index,bool value){/*{{{*/
    8585
    8686        _assert_(index>=0);
  • issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h

    r25378 r25379  
    33
    44/*Headers:*/
    5 #include "./Input2.h"
     5#include "./Input.h"
    66
    7 class BoolInput2: public Input2{
     7class BoolInput: public Input{
    88
    99        private:
     
    1212
    1313        public:
    14                 /*BoolInput2 constructors, destructors: {{{*/
    15                 BoolInput2();
    16                 BoolInput2(int size_in);
    17                 ~BoolInput2();
     14                /*BoolInput constructors, destructors: {{{*/
     15                BoolInput();
     16                BoolInput(int size_in);
     17                ~BoolInput();
    1818                /*}}}*/
    1919                /*Object virtual functions definitions:{{{ */
    20                 Input2 *copy();
     20                Input *copy();
    2121                void    DeepEcho();
    2222                void    Echo();
     
    2525                int     ObjectEnum();
    2626                /*}}}*/
    27                 /*BoolInput2 management: {{{*/
     27                /*BoolInput management: {{{*/
    2828                void GetInput(bool* pvalue,int index);
    2929                void SetInput(int index,bool value);
  • issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp

    r25378 r25379  
    1 /*!\file ControlInput2.c
    2  * \brief: implementation of the ControlInput2 object
     1/*!\file ControlInput.c
     2 * \brief: implementation of the ControlInput object
    33 */
    44
     
    99#endif
    1010
    11 #include "./ControlInput2.h"
    12 #include "./ElementInput2.h"
    13 #include "./TriaInput2.h"
    14 #include "./PentaInput2.h"
     11#include "./ControlInput.h"
     12#include "./ElementInput.h"
     13#include "./TriaInput.h"
     14#include "./PentaInput.h"
    1515//#include "../../toolkits/objects/Vector.h"
    1616
    17 /*ControlInput2 constructors and destructor*/
    18 ControlInput2::ControlInput2(){/*{{{*/
     17/*ControlInput constructors and destructor*/
     18ControlInput::ControlInput(){/*{{{*/
    1919        control_id  = 0;
    2020        values      = NULL;
     
    2525}
    2626/*}}}*/
    27 ControlInput2::ControlInput2(int nbe, int nbv,int input_layout_enum,int interp,int id){/*{{{*/
     27ControlInput::ControlInput(int nbe, int nbv,int input_layout_enum,int interp,int id){/*{{{*/
    2828
    2929        this->control_id  = id;
     
    3131
    3232        switch(this->layout_enum){
    33                 case TriaInput2Enum:
    34                         this->values     =new TriaInput2(nbe,nbv,interp);
    35                         this->savedvalues=new TriaInput2(nbe,nbv,interp);
    36                         this->minvalues  =new TriaInput2(nbe,nbv,interp);
    37                         this->maxvalues  =new TriaInput2(nbe,nbv,interp);
    38                         this->gradient   =new TriaInput2(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);
    3939                        break;
    40                 case PentaInput2Enum:
    41                         this->values     =new PentaInput2(nbe,nbv,interp);
    42                         this->savedvalues=new PentaInput2(nbe,nbv,interp);
    43                         this->minvalues  =new PentaInput2(nbe,nbv,interp);
    44                         this->maxvalues  =new PentaInput2(nbe,nbv,interp);
    45                         this->gradient   =new PentaInput2(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);
    4646                        break;
    4747                default:
    48                         _error_("Input of Enum \"" << EnumToStringx(input_layout_enum) << "\" not supported yet by ControlInput2");
    49         }
    50 }
    51 /*}}}*/
    52 ControlInput2::~ControlInput2(){/*{{{*/
     48                        _error_("Input of Enum \"" << EnumToStringx(input_layout_enum) << "\" not supported yet by ControlInput");
     49        }
     50}
     51/*}}}*/
     52ControlInput::~ControlInput(){/*{{{*/
    5353        if(values)      delete values;
    5454        if(savedvalues) delete savedvalues;
     
    6060
    6161/*Object virtual functions definitions:*/
    62 Input2* ControlInput2::copy() {/*{{{*/
    63 
    64         ControlInput2* output=NULL;
    65 
    66         output = new ControlInput2();
     62Input* ControlInput::copy() {/*{{{*/
     63
     64        ControlInput* output=NULL;
     65
     66        output = new ControlInput();
    6767        output->enum_type=this->enum_type;
    6868        output->control_id=this->control_id;
    6969        output->layout_enum = this->control_id;
    7070
    71         if(values)      output->values      = xDynamicCast<ElementInput2*>(this->values->copy());
    72         if(savedvalues) output->savedvalues = xDynamicCast<ElementInput2*>(this->savedvalues->copy());
    73         if(minvalues)   output->minvalues   = xDynamicCast<ElementInput2*>(this->minvalues->copy());
    74         if(maxvalues)   output->maxvalues   = xDynamicCast<ElementInput2*>(this->maxvalues->copy());
    75         if(gradient)    output->gradient    = xDynamicCast<ElementInput2*>(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());
    7676
    7777        return output;
    7878}
    7979/*}}}*/
    80 void ControlInput2::DeepEcho(void){/*{{{*/
    81 
    82         _printf_("ControlInput2:\n");
    83         _printf_(setw(15)<<"   ControlInput2 "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<"\n");
    84         _printf_(setw(15)<<"   ControlInput2 "<<setw(25)<<left<<EnumToStringx(this->layout_enum)<<"\n");
     80void 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");
    8585        _printf_("---values: \n");     if (values)      values->Echo();
    8686        _printf_("---savedvalues: \n");if (savedvalues) savedvalues->Echo();
     
    9090}
    9191/*}}}*/
    92 void ControlInput2::Echo(void){/*{{{*/
     92void ControlInput::Echo(void){/*{{{*/
    9393        this->DeepEcho();
    9494}
    9595/*}}}*/
    96 int  ControlInput2::Id(void){ return -1; }/*{{{*/
    97 /*}}}*/
    98 void ControlInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    99 
    100         MARSHALLING_ENUM(ControlInput2Enum);
     96int  ControlInput::Id(void){ return -1; }/*{{{*/
     97/*}}}*/
     98void ControlInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     99
     100        MARSHALLING_ENUM(ControlInputEnum);
    101101        _error_("Not implemented");
    102102}
    103103/*}}}*/
    104 int  ControlInput2::ObjectEnum(void){/*{{{*/
    105 
    106         return ControlInput2Enum;
    107 
    108 }
    109 /*}}}*/
    110 
    111 void ControlInput2::SetControl(int interp,int numindices,int* indices,IssmDouble* values_in,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/
     104int  ControlInput::ObjectEnum(void){/*{{{*/
     105
     106        return ControlInputEnum;
     107
     108}
     109/*}}}*/
     110
     111void ControlInput::SetControl(int interp,int numindices,int* indices,IssmDouble* values_in,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/
    112112
    113113        _assert_(this);
    114114
    115115        /*Set input*/
    116         //TriaInput2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);
     116        //TriaInput* input = xDynamicCast<TriaInput*>(this->inputs[id]);
    117117        this->values->SetInput(interp,numindices,indices,values_in);
    118118        this->minvalues->SetInput(interp,numindices,indices,values_min);
     
    120120}
    121121/*}}}*/
    122 void ControlInput2::SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in){/*{{{*/
     122void ControlInput::SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in){/*{{{*/
    123123
    124124        _assert_(this);
     
    127127}
    128128/*}}}*/
    129 void ControlInput2::SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in,int n){/*{{{*/
    130 
    131         if(this->values->ObjectEnum()!=TransientInput2Enum)_error_("you are in the wrong place, go home");
     129void 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");
    132132        _assert_(this);
    133133        _assert_(this->gradient);
    134134        _error_("S");
    135135
    136         //TransientInput2* transient_input = xDynamicCast<TransientInput2*>(this->gradient);
    137         //TransientInput2* values_input    = xDynamicCast<TransientInput2*>(this->values);
     136        //TransientInput* transient_input = xDynamicCast<TransientInput*>(this->gradient);
     137        //TransientInput* values_input    = xDynamicCast<TransientInput*>(this->values);
    138138        //if(values_input->numtimesteps==transient_input->numtimesteps){
    139         //      TransientInput* new_trans_input = new TransientInput2(ControlInputGradEnum);
     139        //      TransientInput* new_trans_input = new TransientInput(ControlInputGradEnum);
    140140        //      IssmDouble time = transient_input->GetTimeByOffset(timestep);
    141141        //      for(int i=0;i<transient_input->numtimesteps;i++){
    142142        //              if(transient_input->timesteps[i]==time) new_trans_input->AddTimeInput(xDynamicCast<TriaInput*>(gradient_in),time);
    143143        //              else {
    144         //                      Input2* input = transient_input->GetTimeInput(transient_input->timesteps[i]);
    145         //                      new_trans_input->AddTimeInput(xDynamicCast<TriaInput2*>(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]);
    146146        //              }
    147147        //      }
     
    158158}
    159159/*}}}*/
    160 TriaInput2* ControlInput2::GetTriaInput(){/*{{{*/
     160TriaInput* ControlInput::GetTriaInput(){/*{{{*/
    161161
    162162        /*Cast and return*/
    163         if(this->values->ObjectEnum()!=TriaInput2Enum){
    164                 _error_("Cannot return a TriaInput2");
    165         }
    166         return xDynamicCast<TriaInput2*>(this->values);
    167 
    168 }
    169 /*}}}*/
    170 PentaInput2* ControlInput2::GetPentaInput(){/*{{{*/
     163        if(this->values->ObjectEnum()!=TriaInputEnum){
     164                _error_("Cannot return a TriaInput");
     165        }
     166        return xDynamicCast<TriaInput*>(this->values);
     167
     168}
     169/*}}}*/
     170PentaInput* ControlInput::GetPentaInput(){/*{{{*/
    171171
    172172        /*Cast and return*/
    173         if(this->values->ObjectEnum()!=PentaInput2Enum){
    174                 _error_("Cannot return a PentaInput2");
    175         }
    176         return xDynamicCast<PentaInput2*>(this->values);
    177 
    178 }
    179 /*}}}*/
    180 ElementInput2* 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/*}}}*/
     180ElementInput* ControlInput::GetInput(const char* data){/*{{{*/
    181181
    182182        if(strcmp(data,"value")==0){
  • issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h

    r25378 r25379  
    1 /*! \file ControlInput2.h
     1/*! \file ControlInput.h
    22 *  \brief: header file for triavertexinput object
    33 */
     
    77
    88/*Headers:*/
    9 #include "./Input2.h"
     9#include "./Input.h"
    1010class Gauss;
    11 class ElementInput2;
     11class ElementInput;
    1212
    13 class ControlInput2: public Input2{
     13class ControlInput: public Input{
    1414
    1515        public:
     
    1717                int            enum_type;
    1818                int            layout_enum;
    19                 ElementInput2 *gradient;
    20                 ElementInput2 *maxvalues;
    21                 ElementInput2 *minvalues;
    22                 ElementInput2 *savedvalues;
    23                 ElementInput2 *values;
     19                ElementInput *gradient;
     20                ElementInput *maxvalues;
     21                ElementInput *minvalues;
     22                ElementInput *savedvalues;
     23                ElementInput *values;
    2424
    25                 /*ControlInput2 constructors, destructors: {{{*/
    26                 ControlInput2();
    27                 ControlInput2(int nbe, int nbv,int input_layout_enum,int interp,int id);
    28                 ~ControlInput2();
     25                /*ControlInput constructors, destructors: {{{*/
     26                ControlInput();
     27                ControlInput(int nbe, int nbv,int input_layout_enum,int interp,int id);
     28                ~ControlInput();
    2929                /*}}}*/
    3030                /*Object virtual functions definitions:{{{ */
    31                 Input2* copy();
     31                Input* copy();
    3232                void    DeepEcho();
    3333                void    Echo();
     
    3636                int     ObjectEnum();
    3737                /*}}}*/
    38                 void SetInput(Input2* in_input){_error_("not impelemented");};
    39                 void SetInput(Input2* in_input,int timeoffset){_error_("not impelemented");};
    40                 ElementInput2* 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);
    4141                void SetControl(int interp,int numindices,int* indices,IssmDouble* values_in,IssmDouble* values_min,IssmDouble* values_max);
    4242                void SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in);
    4343                void SetGradient(int interp,int numindices,int* indices,IssmDouble* values_in,int n);
    44                 TriaInput2* GetTriaInput();
    45                 PentaInput2* GetPentaInput();
     44                TriaInput* GetTriaInput();
     45                PentaInput* GetPentaInput();
    4646};
    4747#endif  /* _CONTROLINPUT_H */
  • issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp

    r25378 r25379  
    1 /*!\file DatasetInput2.c
     1/*!\file DatasetInput.c
    22 * \brief: implementation of the datasetinput object
    33 */
     
    99#endif
    1010
    11 #include "./DatasetInput2.h"
    12 #include "./TriaInput2.h"
    13 #include "./PentaInput2.h"
    14 #include "./TransientInput2.h"
    15 
    16 /*DatasetInput2 constructors and destructor*/
    17 DatasetInput2::DatasetInput2(){/*{{{*/
     11#include "./DatasetInput.h"
     12#include "./TriaInput.h"
     13#include "./PentaInput.h"
     14#include "./TransientInput.h"
     15
     16/*DatasetInput constructors and destructor*/
     17DatasetInput::DatasetInput(){/*{{{*/
    1818        this->inputs    = NULL;
    1919        this->numids    = 0;
     
    2323}
    2424/*}}}*/
    25 DatasetInput2::DatasetInput2(int nbe, int nbv){/*{{{*/
     25DatasetInput::DatasetInput(int nbe, int nbv){/*{{{*/
    2626        this->inputs    = NULL;
    2727        this->numids    = 0;
     
    3131}
    3232/*}}}*/
    33 DatasetInput2::~DatasetInput2(){/*{{{*/
     33DatasetInput::~DatasetInput(){/*{{{*/
    3434        xDelete<int>(this->ids);
    3535        for(int i=0;i<this->numids;i++){
    3636                delete this->inputs[i];
    3737        }
    38         xDelete<Input2*>(this->inputs);
     38        xDelete<Input*>(this->inputs);
    3939}
    4040/*}}}*/
    4141
    4242/*Object virtual functions definitions:*/
    43 Input2* DatasetInput2::copy() {/*{{{*/
    44 
    45         DatasetInput2* output=NULL;
    46 
    47         output = new DatasetInput2();
     43Input* DatasetInput::copy() {/*{{{*/
     44
     45        DatasetInput* output=NULL;
     46
     47        output = new DatasetInput();
    4848        output->numids=this->numids;
    4949        if(this->numids>0){
    5050                output->ids=xNew<int>(output->numids);
    5151                xMemCpy(output->ids,this->ids,output->numids);
    52                 output->inputs = xNew<Input2*>(this->numids);
     52                output->inputs = xNew<Input*>(this->numids);
    5353                for(int i=0;i<this->numids;i++){
    5454                        output->inputs[i] = this->inputs[i]->copy();
     
    5959}
    6060/*}}}*/
    61 void DatasetInput2::Configure(Parameters* params){/*{{{*/
     61void DatasetInput::Configure(Parameters* params){/*{{{*/
    6262        for(int i=0;i<this->numids;i++){
    6363                this->inputs[i]->Configure(params);
     
    6565}
    6666/*}}}*/
    67 void DatasetInput2::DeepEcho(void){/*{{{*/
    68 
    69         _printf_("DatasetInput2:\n");
     67void DatasetInput::DeepEcho(void){/*{{{*/
     68
     69        _printf_("DatasetInput:\n");
    7070        _printf_("   numids:"<< this->numids<< "\n");
    7171        _printf_("      ids: ");
     
    7575}
    7676/*}}}*/
    77 void DatasetInput2::Echo(void){/*{{{*/
     77void DatasetInput::Echo(void){/*{{{*/
    7878        this->DeepEcho();
    7979}
    8080/*}}}*/
    81 int  DatasetInput2::Id(void){ return -1; }/*{{{*/
    82 /*}}}*/
    83 void DatasetInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    84 
    85         MARSHALLING_ENUM(DatasetInput2Enum);
     81int  DatasetInput::Id(void){ return -1; }/*{{{*/
     82/*}}}*/
     83void DatasetInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     84
     85        MARSHALLING_ENUM(DatasetInputEnum);
    8686
    8787        MARSHALLING(numids);
     
    9595}
    9696/*}}}*/
    97 int  DatasetInput2::ObjectEnum(void){/*{{{*/
    98         return DatasetInput2Enum;
    99 }/*}}}*/
    100 
    101 void DatasetInput2::SetTriaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in){ /*{{{*/
     97int  DatasetInput::ObjectEnum(void){/*{{{*/
     98        return DatasetInputEnum;
     99}/*}}}*/
     100
     101void DatasetInput::SetTriaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in){ /*{{{*/
    102102
    103103        int  index = -1;
     
    112112                new_ids[this->numids] = id;
    113113
    114                 Input2** new_inputs = xNew<Input2*>(this->numids+1);
     114                Input** new_inputs = xNew<Input*>(this->numids+1);
    115115                if(this->numids) xMemCpy(new_inputs,this->inputs,this->numids);
    116                 new_inputs[this->numids] = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,interp_in);
     116                new_inputs[this->numids] = new TriaInput(this->numberofelements_local,this->numberofvertices_local,interp_in);
    117117                index = this->numids;
    118118
    119119                xDelete<int>(this->ids);
    120120                this->ids = new_ids;
    121                 xDelete<Input2*>(this->inputs);
     121                xDelete<Input*>(this->inputs);
    122122                this->inputs = new_inputs;
    123123
     
    126126
    127127        /*Set input*/
    128         if(this->inputs[index]->ObjectEnum()!=TriaInput2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum()));
    129         TriaInput2* 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]);
    130130        input->SetInput(interp_in,numinds,rows,values_in);
    131131
    132132}
    133133/*}}}*/
    134 void DatasetInput2::SetPentaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in){ /*{{{*/
     134void DatasetInput::SetPentaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in){ /*{{{*/
    135135
    136136        int  index = -1;
     
    145145                new_ids[this->numids] = id;
    146146
    147                 Input2** new_inputs = xNew<Input2*>(this->numids+1);
     147                Input** new_inputs = xNew<Input*>(this->numids+1);
    148148                if(this->numids) xMemCpy(new_inputs,this->inputs,this->numids);
    149                 new_inputs[this->numids] = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,interp_in);
     149                new_inputs[this->numids] = new PentaInput(this->numberofelements_local,this->numberofvertices_local,interp_in);
    150150                index = this->numids;
    151151
    152152                xDelete<int>(this->ids);
    153153                this->ids = new_ids;
    154                 xDelete<Input2*>(this->inputs);
     154                xDelete<Input*>(this->inputs);
    155155                this->inputs = new_inputs;
    156156
     
    159159
    160160        /*Set input*/
    161         if(this->inputs[index]->ObjectEnum()!=PentaInput2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum()));
    162         PentaInput2* 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]);
    163163        input->SetInput(interp_in,numinds,rows,values_in);
    164164
    165165}
    166166/*}}}*/
    167 TransientInput2* DatasetInput2::SetTransientInput(int id,IssmDouble* times,int numtimes){ /*{{{*/
     167TransientInput* DatasetInput::SetTransientInput(int id,IssmDouble* times,int numtimes){ /*{{{*/
    168168
    169169        int  index = -1;
     
    178178                new_ids[this->numids] = id;
    179179
    180                 Input2** new_inputs = xNew<Input2*>(this->numids+1);
     180                Input** new_inputs = xNew<Input*>(this->numids+1);
    181181                if(this->numids) xMemCpy(new_inputs,this->inputs,this->numids);
    182                 new_inputs[this->numids] = new TransientInput2(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);
    183183                index = this->numids;
    184184
    185185                xDelete<int>(this->ids);
    186186                this->ids = new_ids;
    187                 xDelete<Input2*>(this->inputs);
     187                xDelete<Input*>(this->inputs);
    188188                this->inputs = new_inputs;
    189189
     
    192192
    193193        /*Set input*/
    194         if(this->inputs[index]->ObjectEnum()!=TransientInput2Enum) _error_("cannot add values to a "<<EnumToStringx(this->inputs[index]->ObjectEnum()));
    195         TransientInput2* 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]);
    196196        return input;
    197197}
    198198/*}}}*/
    199 void DatasetInput2::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int id){ /*{{{*/
     199void DatasetInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss,int id){ /*{{{*/
    200200
    201201        int  index = -1;
     
    210210        }
    211211
    212         Input2* input = this->inputs[index];
    213 
    214         if(this->inputs[index]->ObjectEnum()==TransientInput2Enum){
    215                 input = xDynamicCast<TransientInput2*>(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;
    216216        }
    217217
     
    220220}
    221221/*}}}*/
    222 IssmDouble DatasetInput2::GetInputMin(void){ /*{{{*/
     222IssmDouble DatasetInput::GetInputMin(void){ /*{{{*/
    223223
    224224        IssmDouble minvalue,newminvalue;
    225225        for(int i=0;i<this->numids;i++){
    226226
    227                 Input2* input = this->inputs[i];
    228 
    229                 if(this->inputs[i]->ObjectEnum()==TransientInput2Enum){
    230                         input = xDynamicCast<TransientInput2*>(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;
    231231                }
    232232                newminvalue=input->GetInputMin();
     
    238238}
    239239/*}}}*/
    240 TransientInput2* DatasetInput2::GetTransientInputByOffset(int offset){/*{{{*/
     240TransientInput* DatasetInput::GetTransientInputByOffset(int offset){/*{{{*/
    241241
    242242        _assert_(offset>=0 && offset<this->numids);
     
    244244
    245245        /*Cast and return*/
    246         if(this->inputs[offset]->ObjectEnum()==TransientInput2Enum){
    247                 return xDynamicCast<TransientInput2*>(this->inputs[offset]);
     246        if(this->inputs[offset]->ObjectEnum()==TransientInputEnum){
     247                return xDynamicCast<TransientInput*>(this->inputs[offset]);
    248248        }
    249249        else{
    250                 _error_("Cannot return a TransientInput2");
    251         }
    252 }/*}}}*/
    253 TriaInput2* DatasetInput2::GetTriaInput(void){/*{{{*/
     250                _error_("Cannot return a TransientInput");
     251        }
     252}/*}}}*/
     253TriaInput* DatasetInput::GetTriaInput(void){/*{{{*/
    254254
    255255        return this->GetTriaInputByOffset(0);
    256256
    257257}/*}}}*/
    258 TriaInput2* DatasetInput2::GetTriaInputByOffset(int offset){/*{{{*/
     258TriaInput* DatasetInput::GetTriaInputByOffset(int offset){/*{{{*/
    259259
    260260        _assert_(offset>=0 && offset<this->numids);
     
    262262
    263263        /*Cast and return*/
    264         if(this->inputs[offset]->ObjectEnum()==TransientInput2Enum){
    265                 return xDynamicCast<TransientInput2*>(this->inputs[offset])->GetTriaInput();
    266         }
    267         if(this->inputs[offset]->ObjectEnum()!=TriaInput2Enum){
    268                 _error_("Cannot return a TriaInput2");
    269         }
    270         return xDynamicCast<TriaInput2*>(this->inputs[offset]);
    271 
    272 }/*}}}*/
    273 PentaInput2* 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}/*}}}*/
     273PentaInput* DatasetInput::GetPentaInputByOffset(int offset){/*{{{*/
    274274
    275275        _assert_(offset>=0 && offset<this->numids);
     
    277277
    278278        /*Cast and return*/
    279         if(this->inputs[offset]->ObjectEnum()==TransientInput2Enum){
    280                 return xDynamicCast<TransientInput2*>(this->inputs[offset])->GetPentaInput();
    281         }
    282         if(this->inputs[offset]->ObjectEnum()!=PentaInput2Enum){
    283                 _error_("Cannot return a PentaInput2");
    284         }
    285         return xDynamicCast<PentaInput2*>(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 DatasetInput2.h
     1/*! \file DatasetInput.h
    22 *  \brief: header file for datasetinput object
    33 */
     
    77
    88/*Headers:*/
    9 #include "./Input2.h"
    10 class TriaInput2;
    11 class PentaInput2;
    12 class TransientInput2;
     9#include "./Input.h"
     10class TriaInput;
     11class PentaInput;
     12class TransientInput;
    1313
    14 class DatasetInput2: public Input2{
     14class DatasetInput: public Input{
    1515
    1616        private:
    1717                int             numids;
    18                 Input2        **inputs;
     18                Input        **inputs;
    1919                int            *ids;
    2020                int             numberofelements_local;
     
    2424                int GetNumIds() const {return this->numids;};
    2525                /*DatasetInput constructors, destructors: {{{*/
    26                 DatasetInput2();
    27                 DatasetInput2(int nbe, int nbv);
    28                 ~DatasetInput2();
     26                DatasetInput();
     27                DatasetInput(int nbe, int nbv);
     28                ~DatasetInput();
    2929                /*}}}*/
    3030                /*Object virtual functions definitions:{{{ */
    31                 Input2* copy();
     31                Input* copy();
    3232                void    Configure(Parameters* params);
    3333                void    DeepEcho();
     
    4141                void SetTriaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in);
    4242                void SetPentaInput(int id,int interp_in,int numinds,int* rows,IssmDouble* values_in);
    43                 TransientInput2* SetTransientInput(int id,IssmDouble* times,int numtimes);
    44                 PentaInput2* GetPentaInputByOffset(int i);
    45                 TriaInput2*  GetTriaInput(void);
    46                 TriaInput2*  GetTriaInputByOffset(int i);
    47                 TransientInput2* 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);
    4848                void GetInputValue(IssmDouble* pvalue,Gauss* gauss,int index);
    4949};
  • issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp

    r25378 r25379  
    1 /*!\file DoubleInput2.c
    2  * \brief: implementation of the DoubleInput2 object
     1/*!\file DoubleInput.c
     2 * \brief: implementation of the DoubleInput object
    33 */
    44
     
    1111#include "../classes.h"
    1212#include "../../shared/shared.h"
    13 #include "./DoubleInput2.h"
     13#include "./DoubleInput.h"
    1414
    15 /*DoubleInput2 constructors and destructor*/
    16 DoubleInput2::DoubleInput2(){/*{{{*/
     15/*DoubleInput constructors and destructor*/
     16DoubleInput::DoubleInput(){/*{{{*/
    1717        this->size   = -1;
    1818        this->values = NULL;
    1919}
    2020/*}}}*/
    21 DoubleInput2::DoubleInput2(int size_in){/*{{{*/
     21DoubleInput::DoubleInput(int size_in){/*{{{*/
    2222        _assert_(size_in>0);
    2323        _assert_(size_in<1e11);
     
    2626}
    2727/*}}}*/
    28 DoubleInput2::~DoubleInput2(){/*{{{*/
     28DoubleInput::~DoubleInput(){/*{{{*/
    2929        xDelete<IssmDouble>(this->values);
    3030}
     
    3232
    3333/*Object virtual functions definitions:*/
    34 Input2* DoubleInput2::copy() {/*{{{*/
     34Input* DoubleInput::copy() {/*{{{*/
    3535
    36         DoubleInput2* output = new DoubleInput2(this->size);
     36        DoubleInput* output = new DoubleInput(this->size);
    3737        xMemCpy<IssmDouble>(output->values,this->values,this->size);
    3838
     
    4040}
    4141/*}}}*/
    42 void DoubleInput2::DeepEcho(void){/*{{{*/
     42void DoubleInput::DeepEcho(void){/*{{{*/
    4343
    44         _printf_("DoubleInput2 Echo:\n");
     44        _printf_("DoubleInput Echo:\n");
    4545        _printf_("   Size:          "<<size<<"\n");
    4646        printarray(this->values,this->size);
    47         //_printf_(setw(15)<<"   DoubleInput2 "<<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");
    4848}
    4949/*}}}*/
    50 void DoubleInput2::Echo(void){/*{{{*/
     50void DoubleInput::Echo(void){/*{{{*/
    5151        this->DeepEcho();
    5252}
    5353/*}}}*/
    54 int  DoubleInput2::Id(void){ return -1; }/*{{{*/
     54int  DoubleInput::Id(void){ return -1; }/*{{{*/
    5555/*}}}*/
    56 void DoubleInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     56void DoubleInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    5757
    58         MARSHALLING_ENUM(DoubleInput2Enum);
     58        MARSHALLING_ENUM(DoubleInputEnum);
    5959
    6060        MARSHALLING(this->size);
     
    6666}
    6767/*}}}*/
    68 int  DoubleInput2::ObjectEnum(void){/*{{{*/
     68int  DoubleInput::ObjectEnum(void){/*{{{*/
    6969
    70         return DoubleInput2Enum;
     70        return DoubleInputEnum;
    7171
    7272}
    7373/*}}}*/
    7474
    75 /*DoubleInput2 management*/
    76 void DoubleInput2::GetInput(IssmDouble* pvalue,int index){/*{{{*/
     75/*DoubleInput management*/
     76void DoubleInput::GetInput(IssmDouble* pvalue,int index){/*{{{*/
    7777
    7878        _assert_(index>=0);
     
    8282}
    8383/*}}}*/
    84 void DoubleInput2::SetInput(int index,IssmDouble value){/*{{{*/
     84void DoubleInput::SetInput(int index,IssmDouble value){/*{{{*/
    8585
    8686        _assert_(index>=0);
  • issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h

    r25378 r25379  
    33
    44/*Headers:*/
    5 #include "./Input2.h"
     5#include "./Input.h"
    66
    7 class DoubleInput2: public Input2{
     7class DoubleInput: public Input{
    88
    99        private:
     
    1212
    1313        public:
    14                 /*DoubleInput2 constructors, destructors: {{{*/
    15                 DoubleInput2();
    16                 DoubleInput2(int size_in);
    17                 ~DoubleInput2();
     14                /*DoubleInput constructors, destructors: {{{*/
     15                DoubleInput();
     16                DoubleInput(int size_in);
     17                ~DoubleInput();
    1818                /*}}}*/
    1919                /*Object virtual functions definitions:{{{ */
    20                 Input2 *copy();
     20                Input *copy();
    2121                void    DeepEcho();
    2222                void    Echo();
     
    2525                int     ObjectEnum();
    2626                /*}}}*/
    27                 /*DoubleInput2 management: {{{*/
     27                /*DoubleInput management: {{{*/
    2828                void GetInput(IssmDouble* pvalue,int index);
    2929                void SetInput(int index,IssmDouble value);
  • issm/trunk-jpl/src/c/classes/Inputs/ElementInput.cpp

    r25378 r25379  
    1 /*!\file ElementInput2.c
    2  * \brief: implementation of the ElementInput2 object
     1/*!\file ElementInput.c
     2 * \brief: implementation of the ElementInput object
    33 */
    44
     
    1111#include "../classes.h"
    1212#include "../../shared/shared.h"
    13 #include "./ElementInput2.h"
     13#include "./ElementInput.h"
    1414
    15 /*ElementInput2 constructors and destructor*/
    16 ElementInput2::ElementInput2(){/*{{{*/
     15/*ElementInput constructors and destructor*/
     16ElementInput::ElementInput(){/*{{{*/
    1717        this->interpolation  = -1;
    1818        this->M              = -1;
     
    2323}
    2424/*}}}*/
    25 ElementInput2::~ElementInput2(){/*{{{*/
     25ElementInput::~ElementInput(){/*{{{*/
    2626        if(this->element_values) xDelete<IssmDouble>(this->element_values);
    2727        if(this->values)         xDelete<IssmDouble>(this->values);
     
    3030
    3131/*Numerics*/
    32 int ElementInput2::GetInputInterpolationType(void){/*{{{*/
     32int ElementInput::GetInputInterpolationType(void){/*{{{*/
    3333
    3434        return this->interpolation;
  • issm/trunk-jpl/src/c/classes/Inputs/ElementInput.h

    r25378 r25379  
    33
    44/*Headers:*/
    5 #include "./Input2.h"
     5#include "./Input.h"
    66
    7 class ElementInput2: public Input2{
     7class ElementInput: public Input{
    88
    99        protected:
     
    1818                IssmDouble* element_values;
    1919
    20                 /*ElementInput2 constructors, destructors*/
    21                 ElementInput2();
    22                 ~ElementInput2();
     20                /*ElementInput constructors, destructors*/
     21                ElementInput();
     22                ~ElementInput();
    2323
    2424                int  GetInputInterpolationType();
    2525
    2626                /*Object virtual functions definitions:*/
    27                 virtual Input2 *copy()=0;
     27                virtual Input *copy()=0;
    2828                virtual void    DeepEcho()=0;
    2929                virtual void    Echo()=0;
  • issm/trunk-jpl/src/c/classes/Inputs/Input.h

    r25378 r25379  
    1 /*!\file:  Input2.h
    2  * \brief abstract class for Input2 object
     1/*!\file:  Input.h
     2 * \brief abstract class for Input object
    33 */
    44
     
    1111class Gauss;
    1212class Parameters;
    13 class SegInput2;
    14 class TriaInput2;
    15 class PentaInput2;
     13class SegInput;
     14class TriaInput;
     15class PentaInput;
    1616template <class doubletype> class Vector;
    1717
    18 class Input2: public Object{
     18class Input: public Object{
    1919
    2020        private:
     
    2727
    2828                /*Virtual functions*/
    29                 virtual ~Input2(){};
     29                virtual ~Input(){};
    3030                virtual void Configure(Parameters* parameters){return;};
    31                 virtual Input2* copy()=0;
    32                 //virtual void GetInput2AllTimeAverages(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");};
    3333                virtual void  GetInputAverage(IssmDouble* pvalue){_error_("Not implemented yet");};
    3434                virtual IssmDouble GetInputMax(void){_error_("Not implemented yet");};
     
    3838                virtual void GetInputValue(IssmDouble* pvalue,Gauss* gauss){int* temp = xNew<int>(3); _error_("Not implemented yet for");};
    3939                virtual int  GetInputInterpolationType(){_error_("Not implemented yet");};
    40                 virtual SegInput2*   GetSegInput(){ int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");};
    41                 virtual TriaInput2*  GetTriaInput(){ int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");};
    42                 virtual PentaInput2* GetPentaInput(){int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");};
    43                 //virtual void GetInput2UpToCurrentTimeAverages(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");};
    4444
    45                 virtual void   AXPY(Input2* xinput,IssmDouble scalar){_error_("Not implemented yet");};
    46                 virtual void   PointWiseMult(Input2* 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");};
    4747                virtual void   Pow(IssmDouble scale_factor){_error_("Not implemented yet");};
    4848                virtual void   Scale(IssmDouble scale_factor){_error_("Not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp

    r25378 r25379  
    1010#endif
    1111
    12 #include "./Input2.h"
    13 #include "./Inputs2.h"
    14 
    15 #include "./BoolInput2.h"
    16 #include "./IntInput2.h"
    17 #include "./DoubleInput2.h"
    18 #include "./ElementInput2.h"
    19 #include "./SegInput2.h"
    20 #include "./TriaInput2.h"
    21 #include "./PentaInput2.h"
    22 #include "./TransientInput2.h"
    23 #include "./ControlInput2.h"
    24 #include "./DatasetInput2.h"
    25 #include "./ArrayInput2.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"
    2626using namespace std;
    2727/*}}}*/
    2828
    2929/*Object constructors and destructor*/
    30 Inputs2::Inputs2(void){/*{{{*/
     30Inputs::Inputs(void){/*{{{*/
    3131
    3232        this->numberofelements_local = 0;
     
    3737}
    3838/*}}}*/
    39 Inputs2::Inputs2(int nbe,int nbv){/*{{{*/
     39Inputs::Inputs(int nbe,int nbv){/*{{{*/
    4040
    4141        this->numberofelements_local = nbe;
     
    4646}
    4747/*}}}*/
    48 Inputs2::~Inputs2(){/*{{{*/
     48Inputs::~Inputs(){/*{{{*/
    4949        for(int i=0;i<NUMINPUTS;i++){
    5050                if(this->inputs[i]) delete this->inputs[i];
     
    5454/*}}}*/
    5555
    56 Inputs2* Inputs2::Copy(void){/*{{{*/
    57 
    58         Inputs2* output = new Inputs2(this->numberofelements_local,this->numberofvertices_local);
     56Inputs* Inputs::Copy(void){/*{{{*/
     57
     58        Inputs* output = new Inputs(this->numberofelements_local,this->numberofvertices_local);
    5959
    6060        for(int i=0;i<NUMINPUTS;i++){
     
    6464        return output;
    6565}/*}}}*/
    66 void Inputs2::DeepEcho(void){/*{{{*/
     66void Inputs::DeepEcho(void){/*{{{*/
    6767        for(int i=0;i<NUMINPUTS;i++) {
    6868                if(this->inputs[i]) this->inputs[i]->DeepEcho();
     
    7171}
    7272/*}}}*/
    73 void Inputs2::Echo(void){/*{{{*/
     73void Inputs::Echo(void){/*{{{*/
    7474        _printf_("Inputs Echo:\n");
    7575        for(int i=0;i<NUMINPUTS;i++) {
     
    7979}
    8080/*}}}*/
    81 void Inputs2::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){/*{{{*/
     81void Inputs::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){/*{{{*/
    8282
    8383        int obj_enum=-1;
    84         int num_inputs2=0;
     84        int num_inputs=0;
    8585        int index;
    8686
    87         MARSHALLING_ENUM(Inputs2Enum);
     87        MARSHALLING_ENUM(InputsEnum);
    8888
    8989        if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
    9090
    91                 /*Marshall num_inputs2 first*/
     91                /*Marshall num_inputs first*/
    9292                for(int i=0;i<NUMINPUTS;i++){
    93                         if(this->inputs[i]) num_inputs2++;
    94                 }
    95                 MARSHALLING(num_inputs2);
     93                        if(this->inputs[i]) num_inputs++;
     94                }
     95                MARSHALLING(num_inputs);
    9696
    9797                /*Marshall Parameters one by one now*/
     
    107107        else{
    108108
    109                 /*Get number of inputs2 marshalled*/
    110                 MARSHALLING(num_inputs2);
     109                /*Get number of inputs marshalled*/
     110                MARSHALLING(num_inputs);
    111111
    112112                /*Recover input2eters one by one*/
    113                 for(int i=0;i<num_inputs2;i++){
     113                for(int i=0;i<num_inputs;i++){
    114114
    115115                        /*Recover enum of object first: */
     
    117117                        MARSHALLING(obj_enum);
    118118
    119                         if(obj_enum==BoolInput2Enum){
    120                                 BoolInput2* boolinput2=new BoolInput2();
     119                        if(obj_enum==BoolInputEnum){
     120                                BoolInput* boolinput2=new BoolInput();
    121121                                boolinput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    122122                                this->inputs[index]=boolinput2;
    123123                        }
    124                         else if(obj_enum==IntInput2Enum){
    125                                 IntInput2* intinput2=new IntInput2();
     124                        else if(obj_enum==IntInputEnum){
     125                                IntInput* intinput2=new IntInput();
    126126                                intinput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    127127                                this->inputs[index]=intinput2;
    128128                        }
    129                         else if(obj_enum==TriaInput2Enum){
    130                                 TriaInput2* triainput2=new TriaInput2();
     129                        else if(obj_enum==TriaInputEnum){
     130                                TriaInput* triainput2=new TriaInput();
    131131                                triainput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    132132                                this->inputs[index]=triainput2;
    133133                        }
    134                         else if(obj_enum==PentaInput2Enum){
    135                                 PentaInput2* pentainput2=new PentaInput2();
     134                        else if(obj_enum==PentaInputEnum){
     135                                PentaInput* pentainput2=new PentaInput();
    136136                                pentainput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    137137                                this->inputs[index]=pentainput2;
     
    145145/*}}}*/
    146146
    147 void Inputs2::AddInput(Input2* newinput){/*{{{*/
     147void Inputs::AddInput(Input* newinput){/*{{{*/
    148148
    149149        /*Get Enum from Param*/
     
    168168}
    169169/*}}}*/
    170 void Inputs2::ChangeEnum(int oldenumtype,int newenumtype){/*{{{*/
     170void Inputs::ChangeEnum(int oldenumtype,int newenumtype){/*{{{*/
    171171
    172172        /*Get indices from enums*/
     
    187187        this->inputs[index_old] = NULL;
    188188}/*}}}*/
    189 void Inputs2::Configure(Parameters* parameters){/*{{{*/
     189void Inputs::Configure(Parameters* parameters){/*{{{*/
    190190        for(int i=0;i<NUMINPUTS;i++){
    191191                if(this->inputs[i]) this->inputs[i]->Configure(parameters);
     
    193193}
    194194/*}}}*/
    195 int  Inputs2::DeleteInput(int input_enum){/*{{{*/
     195int  Inputs::DeleteInput(int input_enum){/*{{{*/
    196196
    197197        int index = EnumToIndex(input_enum);
     
    204204}
    205205/*}}}*/
    206 void Inputs2::DuplicateInput(int original_enum,int new_enum){/*{{{*/
     206void Inputs::DuplicateInput(int original_enum,int new_enum){/*{{{*/
    207207
    208208        _assert_(this);
     
    221221
    222222        /*Make a copy*/
    223         Input2* copy=this->inputs[index_ori]->copy();
     223        Input* copy=this->inputs[index_ori]->copy();
    224224
    225225        /*Add copy*/
     
    227227}
    228228/*}}}*/
    229 int  Inputs2::EnumToIndex(int enum_in){/*{{{*/
     229int  Inputs::EnumToIndex(int enum_in){/*{{{*/
    230230
    231231        _assert_(this);
     
    243243        return enum_in - InputsSTARTEnum -1;
    244244}/*}}}*/
    245 bool Inputs2::Exist(int enum_in){/*{{{*/
     245bool Inputs::Exist(int enum_in){/*{{{*/
    246246
    247247        _assert_(this);
     
    252252}
    253253/*}}}*/
    254 int Inputs2::GetInputObjectEnum(int enum_in){/*{{{*/
     254int Inputs::GetInputObjectEnum(int enum_in){/*{{{*/
    255255
    256256        _assert_(this);
     
    261261}
    262262/*}}}*/
    263 void Inputs2::GetInputsInterpolations(int* pnuminputs,int** pinterpolations,int** pinputenums){/*{{{*/
     263void Inputs::GetInputsInterpolations(int* pnuminputs,int** pinterpolations,int** pinputenums){/*{{{*/
    264264
    265265        /*First count number of inputs*/
     
    278278        for(int i=0;i<NUMINPUTS;i++){
    279279
    280                 Input2* input=this->inputs[i];
     280                Input* input=this->inputs[i];
    281281                if(!input) continue;
    282282
    283283                enumlist[count] = i+InputsSTARTEnum+1;
    284284                switch(input->ObjectEnum()){
    285                         case BoolInput2Enum:
    286                         case IntInput2Enum:
     285                        case BoolInputEnum:
     286                        case IntInputEnum:
    287287                                interpolations[count] = input->ObjectEnum();
    288288                                break;
    289                         case TriaInput2Enum:
     289                        case TriaInputEnum:
    290290                                interpolations[count] = input->GetResultInterpolation();
    291291                                break;
     
    303303
    304304}/*}}}*/
    305 SegInput2* Inputs2::GetSegInput(int enum_in){/*{{{*/
     305SegInput* Inputs::GetSegInput(int enum_in){/*{{{*/
    306306
    307307        _assert_(this);
     
    311311
    312312        /*Check that it has the right format*/
    313         Input2* input = this->inputs[id];
     313        Input* input = this->inputs[id];
    314314        if(!input) return NULL;
    315315
    316316        return input->GetSegInput();
    317317}/*}}}*/
    318 TriaInput2* Inputs2::GetTriaInput(int enum_in){/*{{{*/
     318TriaInput* Inputs::GetTriaInput(int enum_in){/*{{{*/
    319319
    320320        _assert_(this);
     
    324324
    325325        /*Check that it has the right format*/
    326         Input2* input = this->inputs[id];
     326        Input* input = this->inputs[id];
    327327        if(!input) return NULL;
    328328
    329329        return input->GetTriaInput();
    330330}/*}}}*/
    331 TriaInput2* 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         Input2* input = this->inputs[id];
    338         if(!input) return NULL;
    339 
    340         if(input->ObjectEnum()==TransientInput2Enum){
    341                 return xDynamicCast<TransientInput2*>(input)->GetTriaInput(time);
     331TriaInput* 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);
    342342        }
    343343        else{
     
    345345        }
    346346}/*}}}*/
    347 TriaInput2* 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         Input2* input = this->inputs[id];
    354         if(!input) return NULL;
    355 
    356         if(input->ObjectEnum()==TransientInput2Enum){
    357                 return xDynamicCast<TransientInput2*>(input)->GetTriaInput(start_time,end_time,averaging_method);
    358         }
    359         else{
    360                 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput2");
    361         }
    362 }/*}}}*/
    363 PentaInput2* 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         Input2* input = this->inputs[id];
     347TriaInput* 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}/*}}}*/
     363PentaInput* 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];
    370370        if(!input) return NULL;
    371371
    372372        return input->GetPentaInput();
    373373}/*}}}*/
    374 PentaInput2* 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         Input2* input = this->inputs[id];
    381         if(!input) return NULL;
    382 
    383         if(input->ObjectEnum()==TransientInput2Enum){
    384                 return xDynamicCast<TransientInput2*>(input)->GetPentaInput(time);
     374PentaInput* 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);
    385385        }
    386386        else{
     
    388388        }
    389389}/*}}}*/
    390 PentaInput2* 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         Input2* input = this->inputs[id];
    397         if(!input) return NULL;
    398 
    399         if(input->ObjectEnum()==TransientInput2Enum){
    400                 return xDynamicCast<TransientInput2*>(input)->GetPentaInput(start_time,end_time,averaging_method);
    401         }
    402         else{
    403                 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput2");
    404         }
    405 }/*}}}*/
    406 TransientInput2* 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         Input2* input = this->inputs[id];
    413         if(!input) return NULL;
    414 
    415         if(input->ObjectEnum() != TransientInput2Enum){
    416                 _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput2");
     390PentaInput* 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}/*}}}*/
     406TransientInput* 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");
    417417        }
    418418
    419419        /*Cast and return*/
    420         TransientInput2* output = xDynamicCast<TransientInput2*>(input);
     420        TransientInput* output = xDynamicCast<TransientInput*>(input);
    421421        return output;
    422422}/*}}}*/
    423 ElementInput2* 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         Input2* input = this->inputs[id];
    430         if(!input) return NULL;
    431         if(input->ObjectEnum() != ControlInput2Enum){
    432                 _error_("Input "<<EnumToStringx(enum_in)<<" is not an ControlInput2");
     423ElementInput* 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");
    433433        }
    434434
    435435        /*Cast and return*/
    436         return xDynamicCast<ControlInput2*>(input)->GetInput2(data);
    437 }/*}}}*/
    438 DatasetInput2* 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         Input2* input = this->inputs[id];
    445         if(!input) return NULL;
    446         if(input->ObjectEnum() != DatasetInput2Enum){
    447                 _error_("Input "<<EnumToStringx(enum_in)<<" is not an DatasetInput2");
     436        return xDynamicCast<ControlInput*>(input)->GetInput(data);
     437}/*}}}*/
     438DatasetInput* 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");
    448448        }
    449449
    450450        /*Cast and return*/
    451         return xDynamicCast<DatasetInput2*>(input);
    452 }/*}}}*/
    453 ControlInput2* 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         Input2* input = this->inputs[id];
    460         if(!input) return NULL;
    461         if(input->ObjectEnum() != ControlInput2Enum){
    462                 _error_("Input "<<EnumToStringx(enum_in)<<" is not an ControlInput2");
     451        return xDynamicCast<DatasetInput*>(input);
     452}/*}}}*/
     453ControlInput* 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");
    463463        }
    464464
    465465        /*Cast and return*/
    466         return xDynamicCast<ControlInput2*>(input);
    467 }/*}}}*/
    468 void Inputs2::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()!=ArrayInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array");
     466        return xDynamicCast<ControlInput*>(input);
     467}/*}}}*/
     468void 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");
    476476        }
    477477        else{
     
    480480
    481481        /*Set input*/
    482         ArrayInput2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]);
     482        ArrayInput* input = xDynamicCast<ArrayInput*>(this->inputs[id]);
    483483        input->GetArrayPtr(row,pvalues,pN);
    484484}/*}}}*/
    485 void Inputs2::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()!=ArrayInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array");
     485void 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");
    493493        }
    494494        else{
     
    497497
    498498        /*Set input*/
    499         ArrayInput2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]);
     499        ArrayInput* input = xDynamicCast<ArrayInput*>(this->inputs[id]);
    500500        input->GetArray(row,pvalues,pN);
    501501}/*}}}*/
    502 void Inputs2::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()!=BoolInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a bool");
     502void 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");
    510510        }
    511511        else{
     
    514514
    515515        /*Set input*/
    516         BoolInput2* input = xDynamicCast<BoolInput2*>(this->inputs[id]);
     516        BoolInput* input = xDynamicCast<BoolInput*>(this->inputs[id]);
    517517        input->GetInput(pvalue,index);
    518518}/*}}}*/
    519 void Inputs2::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()!=IntInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a int");
     519void 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");
    527527        }
    528528        else{
     
    532532
    533533        /*Set input*/
    534         IntInput2* input = xDynamicCast<IntInput2*>(this->inputs[id]);
     534        IntInput* input = xDynamicCast<IntInput*>(this->inputs[id]);
    535535        input->GetInput(pvalue,index);
    536536}/*}}}*/
    537 void Inputs2::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()!=DoubleInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a double!");
     537void 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!");
    545545        }
    546546        else{
     
    550550
    551551        /*Set input*/
    552         DoubleInput2* input = xDynamicCast<DoubleInput2*>(this->inputs[id]);
     552        DoubleInput* input = xDynamicCast<DoubleInput*>(this->inputs[id]);
    553553        input->GetInput(pvalue,index);
    554554
    555555}/*}}}*/
    556 void Inputs2::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/
     556void Inputs::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/
    557557
    558558        /*Get input */
    559559        int     index = EnumToIndex(output_enum);
    560         Input2* input = this->inputs[index];
     560        Input* input = this->inputs[index];
    561561
    562562        /*Check that it is found*/
     
    570570        *parray_size      = input->GetResultArraySize();
    571571}/*}}}*/
    572 void Inputs2::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()!=BoolInput2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    580         }
    581         else{
    582                 this->inputs[id] = new BoolInput2(this->numberofelements_local);
    583         }
    584 
    585         /*Set input*/
    586         BoolInput2* input = xDynamicCast<BoolInput2*>(this->inputs[id]);
     572void 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]);
    587587        input->SetInput(index,value);
    588588}/*}}}*/
    589 void Inputs2::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()!=IntInput2Enum) _error_("cannot add an int to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    597         }
    598         else{
    599                 this->inputs[id] = new IntInput2(this->numberofelements_local);
    600         }
    601 
    602         /*Set input*/
    603         IntInput2* input = xDynamicCast<IntInput2*>(this->inputs[id]);
     589void 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]);
    604604        input->SetInput(index,value);
    605605}/*}}}*/
    606 void Inputs2::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()!=DoubleInput2Enum) _error_("cannot add a double to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    614         }
    615         else{
    616                 this->inputs[id] = new DoubleInput2(this->numberofelements_local);
    617         }
    618 
    619         /*Set input*/
    620         DoubleInput2* input = xDynamicCast<DoubleInput2*>(this->inputs[id]);
     606void 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]);
    621621        input->SetInput(index,value);
    622622}/*}}}*/
    623 void Inputs2::SetArrayInput(int enum_in,int row,IssmDouble* values,int numlayers){/*{{{*/
     623void Inputs::SetArrayInput(int enum_in,int row,IssmDouble* values,int numlayers){/*{{{*/
    624624
    625625        bool recreate = false;
     
    630630        /*Create it if necessary*/
    631631        if(this->inputs[id]){
    632                 if(this->inputs[id]->ObjectEnum()!=ArrayInput2Enum){
     632                if(this->inputs[id]->ObjectEnum()!=ArrayInputEnum){
    633633                        delete this->inputs[id];
    634634                        recreate = true;
     
    640640
    641641        if(recreate){
    642                 this->inputs[id] = new ArrayInput2(this->numberofelements_local);
    643         }
    644 
    645         /*Set input*/
    646         ArrayInput2* 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]);
    647647        input->SetInput(row,numlayers,values);
    648648}/*}}}*/
    649 TransientInput2* Inputs2::SetDatasetTransientInput(int enum_in,int dataset_id,IssmDouble* times,int numtimes){/*{{{*/
     649TransientInput* Inputs::SetDatasetTransientInput(int enum_in,int dataset_id,IssmDouble* times,int numtimes){/*{{{*/
    650650
    651651        bool recreate = false;
     
    655655        /*Create it if necessary*/
    656656        if(this->inputs[id]){
    657                 if(this->inputs[id]->ObjectEnum()!=DatasetInput2Enum){
     657                if(this->inputs[id]->ObjectEnum()!=DatasetInputEnum){
    658658                        delete this->inputs[id];
    659659                        recreate = true;
     
    665665
    666666        if(recreate){
    667                 this->inputs[id] = new DatasetInput2(this->numberofelements_local,this->numberofvertices_local);
     667                this->inputs[id] = new DatasetInput(this->numberofelements_local,this->numberofvertices_local);
    668668        }
    669669
    670670        /*Get Dataset Input now*/
    671         DatasetInput2* input = xDynamicCast<DatasetInput2*>(this->inputs[id]);
     671        DatasetInput* input = xDynamicCast<DatasetInput*>(this->inputs[id]);
    672672
    673673        /*Create and return transient input*/
    674674        return input->SetTransientInput(dataset_id,times,numtimes);
    675675}/*}}}*/
    676 void Inputs2::SetTransientInput(int enum_in,IssmDouble* times,int numtimes){/*{{{*/
     676void Inputs::SetTransientInput(int enum_in,IssmDouble* times,int numtimes){/*{{{*/
    677677
    678678        /*Get input id*/
     
    682682        if(this->inputs[id]){
    683683                /*Input already there, make sure it is the right type*/
    684                 if(this->inputs[id]->ObjectEnum()!=TransientInput2Enum){
     684                if(this->inputs[id]->ObjectEnum()!=TransientInputEnum){
    685685                        _error_("cannot add a TransientInput to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    686686                }
    687687        }
    688688        else{
    689                 this->inputs[id] = new TransientInput2(enum_in,this->numberofelements_local,this->numberofvertices_local,times,numtimes);
    690         }
    691 }/*}}}*/
    692 void Inputs2::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}/*}}}*/
     692void Inputs::SetTriaControlInput(int enum_in,int layout,int interpolation,int control_id,int numindices,int* indices,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/
    693693
    694694        bool recreate = false;
     
    698698        /*Create it if necessary*/
    699699        if(this->inputs[id]){
    700                 if(this->inputs[id]->ObjectEnum()!=ControlInput2Enum){
     700                if(this->inputs[id]->ObjectEnum()!=ControlInputEnum){
    701701                        delete this->inputs[id];
    702702                        recreate = true;
     
    708708
    709709        if(recreate){
    710                 this->inputs[id] = new ControlInput2(this->numberofelements_local,this->numberofvertices_local,layout,interpolation,control_id);
    711         }
    712 
    713         /*Set input*/
    714         ControlInput2* 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]);
    715715        input->SetControl(interpolation,numindices,indices,values,values_min,values_max);
    716716}/*}}}*/
    717 void Inputs2::SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/
     717void Inputs::SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/
    718718
    719719        /*Get input id*/
     
    722722        /*Create it if necessary*/
    723723        if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in));
    724         if( this->inputs[id]->ObjectEnum()!=ControlInput2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");
    725 
    726         /*Set input*/
    727         ControlInput2* 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]);
    728728        input->SetGradient(interpolation,numindices,indices,values);
    729729}/*}}}*/
    730 void Inputs2::SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values,int n){/*{{{*/
     730void Inputs::SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values,int n){/*{{{*/
    731731
    732732        /*Get input id*/
     
    735735        /*Create it if necessary*/
    736736        if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in));
    737         if( this->inputs[id]->ObjectEnum()!=ControlInput2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");
    738 
    739         /*Set input*/
    740         ControlInput2* 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]);
    741741        input->SetGradient(interpolation,numindices,indices,values,n);
    742742}/*}}}*/
    743 void Inputs2::SetTriaDatasetInput(int enum_in,int id_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/
     743void Inputs::SetTriaDatasetInput(int enum_in,int id_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/
    744744
    745745        bool recreate = false;
     
    749749        /*Create it if necessary*/
    750750        if(this->inputs[id]){
    751                 if(this->inputs[id]->ObjectEnum()!=DatasetInput2Enum){
     751                if(this->inputs[id]->ObjectEnum()!=DatasetInputEnum){
    752752                        delete this->inputs[id];
    753753                        recreate = true;
     
    759759
    760760        if(recreate){
    761                 this->inputs[id] = new DatasetInput2(this->numberofelements_local,this->numberofvertices_local);
    762         }
    763 
    764         /*Set input*/
    765         DatasetInput2* 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]);
    766766        input->SetTriaInput(id_in,P1Enum,numindices,indices,values);
    767767}/*}}}*/
    768 void Inputs2::SetTriaInput(int enum_in,int interpolation,int row,IssmDouble value){/*{{{*/
     768void Inputs::SetTriaInput(int enum_in,int interpolation,int row,IssmDouble value){/*{{{*/
    769769
    770770        /*This one only supports P0 and P1 because it assumes col=0*/
     
    776776        /*Create it if necessary*/
    777777        if(this->inputs[id]){
    778                 if(this->inputs[id]->ObjectEnum()!=TriaInput2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    779         }
    780         else{
    781                 this->inputs[id] = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
    782         }
    783 
    784         /*Set input*/
    785         TriaInput2* 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]);
    786786        input->SetInput(interpolation,row,value);
    787787}/*}}}*/
    788 void Inputs2::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()!=TriaInput2Enum){
     788void 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){
    796796                        _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())<<" while trying to set "<<EnumToStringx(enum_in));
    797797                }
    798798        }
    799799        else{
    800                 this->inputs[id] = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
    801         }
    802 
    803         /*Set input*/
    804         TriaInput2* 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]);
    805805        input->SetInput(interpolation,numindices,indices,values);
    806806}/*}}}*/
    807 void Inputs2::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()!=TriaInput2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    815         }
    816         else{
    817                 this->inputs[id] = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
    818         }
    819 
    820         /*Set input*/
    821         TriaInput2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);
     807void 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]);
    822822        input->SetInput(interpolation,row,numindices,values);
    823823}/*}}}*/
    824 void Inputs2::SetPentaControlInput(int enum_in,int layout,int interpolation,int control_id,int numindices,int* indices,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/
     824void Inputs::SetPentaControlInput(int enum_in,int layout,int interpolation,int control_id,int numindices,int* indices,IssmDouble* values,IssmDouble* values_min,IssmDouble* values_max){/*{{{*/
    825825
    826826        bool recreate = false;
     
    830830        /*Create it if necessary*/
    831831        if(this->inputs[id]){
    832                 if(this->inputs[id]->ObjectEnum()!=ControlInput2Enum){
     832                if(this->inputs[id]->ObjectEnum()!=ControlInputEnum){
    833833                        delete this->inputs[id];
    834834                        recreate = true;
     
    840840
    841841        if(recreate){
    842                 this->inputs[id] = new ControlInput2(this->numberofelements_local,this->numberofvertices_local,layout,interpolation,control_id);
    843         }
    844 
    845         /*Set input*/
    846         ControlInput2* 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]);
    847847        input->SetControl(interpolation,numindices,indices,values,values_min,values_max);
    848848}/*}}}*/
    849 void Inputs2::SetPentaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/
     849void Inputs::SetPentaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/
    850850
    851851        /*Get input id*/
     
    854854        /*Create it if necessary*/
    855855        if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in));
    856         if( this->inputs[id]->ObjectEnum()!=ControlInput2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");
    857 
    858         /*Set input*/
    859         ControlInput2* 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]);
    860860        input->SetGradient(interpolation,numindices,indices,values);
    861861}/*}}}*/
    862 void Inputs2::SetPentaDatasetInput(int enum_in,int id_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/
     862void Inputs::SetPentaDatasetInput(int enum_in,int id_in,int interpolation,int numindices,int* indices,IssmDouble* values){/*{{{*/
    863863
    864864        bool recreate = false;
     
    868868        /*Create it if necessary*/
    869869        if(this->inputs[id]){
    870                 if(this->inputs[id]->ObjectEnum()!=DatasetInput2Enum){
     870                if(this->inputs[id]->ObjectEnum()!=DatasetInputEnum){
    871871                        delete this->inputs[id];
    872872                        recreate = true;
     
    878878
    879879        if(recreate){
    880                 this->inputs[id] = new DatasetInput2(this->numberofelements_local,this->numberofvertices_local);
    881         }
    882 
    883         /*Set input*/
    884         DatasetInput2* 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]);
    885885        input->SetPentaInput(id_in,P1Enum,numindices,indices,values);
    886886}/*}}}*/
    887 void Inputs2::SetPentaInput(int enum_in,int interpolation,int row,IssmDouble value){/*{{{*/
     887void Inputs::SetPentaInput(int enum_in,int interpolation,int row,IssmDouble value){/*{{{*/
    888888
    889889        /*This one only supports P0 and P1 because it assumes col=0*/
     
    895895        /*Create it if necessary*/
    896896        if(this->inputs[id]){
    897                 if(this->inputs[id]->ObjectEnum()!=PentaInput2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    898         }
    899         else{
    900                 this->inputs[id] = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
    901         }
    902 
    903         /*Set input*/
    904         PentaInput2* 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]);
    905905        input->SetInput(interpolation,row,value);
    906906}/*}}}*/
    907 void Inputs2::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()!=PentaInput2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    915         }
    916         else{
    917                 this->inputs[id] = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
    918         }
    919 
    920         /*Set input*/
    921         PentaInput2* input = xDynamicCast<PentaInput2*>(this->inputs[id]);
     907void 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]);
    922922        input->SetInput(interpolation,numindices,indices,values);
    923923}/*}}}*/
    924 void Inputs2::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()!=PentaInput2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
    932         }
    933         else{
    934                 this->inputs[id] = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
    935         }
    936 
    937         /*Set input*/
    938         PentaInput2* input = xDynamicCast<PentaInput2*>(this->inputs[id]);
     924void 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]);
    939939        input->SetInput(interpolation,row,numindices,values);
    940940}/*}}}*/
  • issm/trunk-jpl/src/c/classes/Inputs/Inputs.h

    r25378 r25379  
    33
    44/*forward declarations */
    5 class Input2;
    6 class SegInput2;
    7 class TriaInput2;
    8 class PentaInput2;
    9 class TransientInput2;
    10 class ElementInput2;
    11 class DatasetInput2;
    12 class ArrayInput2;
    13 class ControlInput2;
     5class Input;
     6class SegInput;
     7class TriaInput;
     8class PentaInput;
     9class TransientInput;
     10class ElementInput;
     11class DatasetInput;
     12class ArrayInput;
     13class ControlInput;
    1414class Parameters;
    1515#include "../../shared/shared.h"
     
    2121 * Declaration of Inputs class.  Inputs are a static array of Input objects.
    2222 */
    23 class Inputs2{
     23class Inputs{
    2424
    2525        private:
    2626                /*Private fields*/
    27                 Input2* inputs[NUMINPUTS];
     27                Input* inputs[NUMINPUTS];
    2828                int     numberofelements_local;
    2929                int     numberofvertices_local;
     
    3535
    3636                /*constructors, destructors*/
    37                 Inputs2();
    38                 Inputs2(int nbe,int nbv);
    39                 ~Inputs2();
     37                Inputs();
     38                Inputs(int nbe,int nbv);
     39                ~Inputs();
    4040
    4141                /*numerics*/
    42                 void     AddInput(Input2* in_input);
     42                void     AddInput(Input* in_input);
    4343                void     ChangeEnum(int enumtype,int new_enumtype);
    4444                void     Configure(Parameters* parameters);
    45                 Inputs2* Copy(void);
     45                Inputs* Copy(void);
    4646                int      DeleteInput(int enum_type);
    4747                void     DuplicateInput(int original_enum,int new_enum);
     
    5252                void             GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN);
    5353                void             GetArrayPtr(int enum_in,int row,IssmDouble** pvalues,int* pN);
    54                 SegInput2*       GetSegInput(int enum_type);
    55                 TriaInput2*      GetTriaInput(int enum_type);
    56                 TriaInput2*      GetTriaInput(int enum_type,IssmDouble time);
    57                 TriaInput2*      GetTriaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method);
    58                 PentaInput2*     GetPentaInput(int enum_type);
    59                 PentaInput2*     GetPentaInput(int enum_type,IssmDouble time);
    60                 PentaInput2*     GetPentaInput(int enum_in,IssmDouble start_time,IssmDouble end_time,int averaging_method);
    61                 TransientInput2* GetTransientInput(int enum_type);
    62                 ElementInput2*   GetControlInput2Data(int enum_type,const char* data);
    63                 DatasetInput2*   GetDatasetInput2(int enum_type);
    64                 ControlInput2*   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);
    6565                void  Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction);
    6666                int   GetInputObjectEnum(int enum_type);
     
    7373                void  SetDoubleInput(int enum_in,int index,IssmDouble value);
    7474                void  SetTransientInput(int enum_in,IssmDouble* times,int numtimes);
    75                 TransientInput2* SetDatasetTransientInput(int enum_in,int id,IssmDouble* times,int numtimes);
     75                TransientInput* SetDatasetTransientInput(int enum_in,int id,IssmDouble* times,int numtimes);
    7676                void  SetArrayInput(int enum_in,int row,IssmDouble* layers,int numlayers);
    7777                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 IntInput2.c
    2  * \brief: implementation of the IntInput2 object
     1/*!\file IntInput.c
     2 * \brief: implementation of the IntInput object
    33 */
    44
     
    1111#include "../classes.h"
    1212#include "../../shared/shared.h"
    13 #include "./IntInput2.h"
     13#include "./IntInput.h"
    1414
    15 /*IntInput2 constructors and destructor*/
    16 IntInput2::IntInput2(){/*{{{*/
     15/*IntInput constructors and destructor*/
     16IntInput::IntInput(){/*{{{*/
    1717        this->size   = -1;
    1818        this->values = NULL;
    1919}
    2020/*}}}*/
    21 IntInput2::IntInput2(int size_in){/*{{{*/
     21IntInput::IntInput(int size_in){/*{{{*/
    2222        _assert_(size_in>0);
    2323        _assert_(size_in<1e11);
     
    2626}
    2727/*}}}*/
    28 IntInput2::~IntInput2(){/*{{{*/
     28IntInput::~IntInput(){/*{{{*/
    2929        xDelete<int>(this->values);
    3030}
     
    3232
    3333/*Object virtual functions definitions:*/
    34 Input2* IntInput2::copy() {/*{{{*/
     34Input* IntInput::copy() {/*{{{*/
    3535
    36         IntInput2* output = new IntInput2(this->size);
     36        IntInput* output = new IntInput(this->size);
    3737        xMemCpy<int>(output->values,this->values,this->size);
    3838
     
    4040}
    4141/*}}}*/
    42 void IntInput2::DeepEcho(void){/*{{{*/
     42void IntInput::DeepEcho(void){/*{{{*/
    4343
    44         _printf_("IntInput2 Echo:\n");
     44        _printf_("IntInput Echo:\n");
    4545        _printf_("   Size:          "<<size<<"\n");
    4646        printarray(this->values,this->size);
    47         //_printf_(setw(15)<<"   IntInput2 "<<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");
    4848}
    4949/*}}}*/
    50 void IntInput2::Echo(void){/*{{{*/
     50void IntInput::Echo(void){/*{{{*/
    5151        this->DeepEcho();
    5252}
    5353/*}}}*/
    54 int  IntInput2::Id(void){ return -1; }/*{{{*/
     54int  IntInput::Id(void){ return -1; }/*{{{*/
    5555/*}}}*/
    56 void IntInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     56void IntInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    5757
    58         MARSHALLING_ENUM(IntInput2Enum);
     58        MARSHALLING_ENUM(IntInputEnum);
    5959
    6060        MARSHALLING(this->size);
     
    6666}
    6767/*}}}*/
    68 int  IntInput2::ObjectEnum(void){/*{{{*/
     68int  IntInput::ObjectEnum(void){/*{{{*/
    6969
    70         return IntInput2Enum;
     70        return IntInputEnum;
    7171
    7272}
    7373/*}}}*/
    7474
    75 /*IntInput2 management*/
    76 void IntInput2::GetInput(int* pvalue,int index){/*{{{*/
     75/*IntInput management*/
     76void IntInput::GetInput(int* pvalue,int index){/*{{{*/
    7777
    7878        _assert_(index>=0);
     
    8282}
    8383/*}}}*/
    84 void IntInput2::SetInput(int index,int value){/*{{{*/
     84void IntInput::SetInput(int index,int value){/*{{{*/
    8585
    8686        _assert_(index>=0);
  • issm/trunk-jpl/src/c/classes/Inputs/IntInput.h

    r25378 r25379  
    33
    44/*Headers:*/
    5 #include "./Input2.h"
     5#include "./Input.h"
    66
    7 class IntInput2: public Input2{
     7class IntInput: public Input{
    88
    99        private:
     
    1212
    1313        public:
    14                 /*IntInput2 constructors, destructors: {{{*/
    15                 IntInput2();
    16                 IntInput2(int size_in);
    17                 ~IntInput2();
     14                /*IntInput constructors, destructors: {{{*/
     15                IntInput();
     16                IntInput(int size_in);
     17                ~IntInput();
    1818                /*}}}*/
    1919                /*Object virtual functions definitions:{{{ */
    20                 Input2 *copy();
     20                Input *copy();
    2121                void    DeepEcho();
    2222                void    Echo();
     
    2525                int     ObjectEnum();
    2626                /*}}}*/
    27                 /*IntInput2 management: {{{*/
     27                /*IntInput management: {{{*/
    2828                void GetInput(int* pvalue,int index);
    2929                void SetInput(int index,int value);
  • issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp

    r25378 r25379  
    1 /*!\file PentaInput2.c
    2  * \brief: implementation of the PentaInput2 object
     1/*!\file PentaInput.c
     2 * \brief: implementation of the PentaInput object
    33 */
    44
     
    1111#include "../classes.h"
    1212#include "../../shared/shared.h"
    13 #include "./PentaInput2.h"
    14 
    15 /*PentaInput2 constructors and destructor*/
    16 PentaInput2::PentaInput2(void){/*{{{*/
     13#include "./PentaInput.h"
     14
     15/*PentaInput constructors and destructor*/
     16PentaInput::PentaInput(void){/*{{{*/
    1717
    1818        this->numberofelements_local = -1;
     
    2626
    2727}/*}}}*/
    28 PentaInput2::PentaInput2(int nbe_in,int nbv_in,int interp_in){/*{{{*/
     28PentaInput::PentaInput(int nbe_in,int nbv_in,int interp_in){/*{{{*/
    2929
    3030        _assert_(nbe_in>0);
     
    4141
    4242}/*}}}*/
    43 PentaInput2::~PentaInput2(){/*{{{*/
     43PentaInput::~PentaInput(){/*{{{*/
    4444        if(this->element_values) xDelete<IssmDouble>(this->element_values);
    4545        if(this->values)         xDelete<IssmDouble>(this->values);
    4646}
    4747/*}}}*/
    48 void PentaInput2::Reset(int interp_in){/*{{{*/
     48void PentaInput::Reset(int interp_in){/*{{{*/
    4949
    5050        /*Clean up*/
     
    7171
    7272/*Object virtual functions definitions:*/
    73 Input2* PentaInput2::copy() {/*{{{*/
     73Input* PentaInput::copy() {/*{{{*/
    7474
    7575        /*Create output*/
    76         PentaInput2* output = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,this->interpolation);
     76        PentaInput* output = new PentaInput(this->numberofelements_local,this->numberofvertices_local,this->interpolation);
    7777
    7878        /*Copy values*/
     
    8484}
    8585/*}}}*/
    86 void PentaInput2::DeepEcho(void){/*{{{*/
    87         _printf_("PentaInput2 Echo:\n");
     86void PentaInput::DeepEcho(void){/*{{{*/
     87        _printf_("PentaInput Echo:\n");
    8888        _printf_("   interpolation:      "<<EnumToStringx(this->interpolation)<<"\n");
    8989        _printf_("   nbe_local:          "<<this->numberofvertices_local<<"\n");
     
    107107}
    108108/*}}}*/
    109 void PentaInput2::Echo(void){/*{{{*/
     109void PentaInput::Echo(void){/*{{{*/
    110110        _printf_(setw(15)<<"   PentaInput "<<setw(25)<<left<<EnumToStringx(-1));
    111111        if(isserved){
     
    123123}
    124124/*}}}*/
    125 int  PentaInput2::Id(void){/*{{{*/
     125int  PentaInput::Id(void){/*{{{*/
    126126        return -1;
    127127}/*}}}*/
    128 void PentaInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    129 
    130         MARSHALLING_ENUM(PentaInput2Enum);
     128void PentaInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     129
     130        MARSHALLING_ENUM(PentaInputEnum);
    131131        MARSHALLING(this->numberofelements_local);
    132132        MARSHALLING(this->numberofvertices_local);
     
    146146}
    147147/*}}}*/
    148 int  PentaInput2::ObjectEnum(void){/*{{{*/
    149         return PentaInput2Enum;
    150 }
    151 /*}}}*/
    152 
    153 /*PentaInput2 management*/
    154 void PentaInput2::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/
     148int  PentaInput::ObjectEnum(void){/*{{{*/
     149        return PentaInputEnum;
     150}
     151/*}}}*/
     152
     153/*PentaInput management*/
     154void PentaInput::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/
    155155
    156156        _assert_(this);
     
    163163}
    164164/*}}}*/
    165 void PentaInput2::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/
     165void PentaInput::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/
    166166
    167167        _assert_(this);
     
    191191}
    192192/*}}}*/
    193 void PentaInput2::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/
     193void PentaInput::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/
    194194
    195195        _assert_(this);
     
    206206}
    207207/*}}}*/
    208 void PentaInput2::Serve(int numindices,int* indices){/*{{{*/
     208void PentaInput::Serve(int numindices,int* indices){/*{{{*/
    209209
    210210        _assert_(this);
     
    223223}
    224224/*}}}*/
    225 void PentaInput2::Serve(int row,int numindices){/*{{{*/
     225void PentaInput::Serve(int row,int numindices){/*{{{*/
    226226
    227227        _assert_(this);
     
    238238        this->isserved_collapsed = 0;
    239239}/*}}}*/
    240 void PentaInput2::ServeCollapsed(int row,int state){/*{{{*/
     240void PentaInput::ServeCollapsed(int row,int state){/*{{{*/
    241241
    242242        _assert_(this);
     
    261261        this->isserved_collapsed = state;
    262262}/*}}}*/
    263 void PentaInput2::SetServeCollapsed(int state){/*{{{*/
     263void PentaInput::SetServeCollapsed(int state){/*{{{*/
    264264        this->isserved_collapsed = state;
    265265}/*}}}*/
    266 int  PentaInput2::GetInterpolation(){/*{{{*/
     266int  PentaInput::GetInterpolation(){/*{{{*/
    267267        return this->interpolation;
    268268}/*}}}*/
    269 void PentaInput2::GetInputAverage(IssmDouble* pvalue){/*{{{*/
     269void PentaInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
    270270        _assert_(this);
    271271        _assert_(this->isserved);
     
    293293        *pvalue=value;
    294294}/*}}}*/
    295 IssmDouble PentaInput2::GetInputMin(void){/*{{{*/
     295IssmDouble PentaInput::GetInputMin(void){/*{{{*/
    296296        _assert_(this);
    297297        _assert_(this->isserved);
     
    306306        return min;
    307307}/*}}}*/
    308 IssmDouble PentaInput2::GetInputMax(void){/*{{{*/
     308IssmDouble PentaInput::GetInputMax(void){/*{{{*/
    309309        _assert_(this);
    310310        _assert_(this->isserved);
     
    319319        return max;
    320320}/*}}}*/
    321 IssmDouble PentaInput2::GetInputMaxAbs(void){/*{{{*/
     321IssmDouble PentaInput::GetInputMaxAbs(void){/*{{{*/
    322322        _assert_(this);
    323323        _assert_(this->isserved);
     
    332332        return maxabs;
    333333}/*}}}*/
    334 void PentaInput2::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
     334void PentaInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
    335335        _assert_(this);
    336336        _assert_(this->isserved);
     
    351351        }
    352352}/*}}}*/
    353 void PentaInput2::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
     353void PentaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
    354354        _assert_(this);
    355355        _assert_(this->isserved);
     
    369369        }
    370370}/*}}}*/
    371 int  PentaInput2::GetResultArraySize(void){/*{{{*/
     371int  PentaInput::GetResultArraySize(void){/*{{{*/
    372372        return 1;
    373373}
    374374/*}}}*/
    375 int  PentaInput2::GetResultInterpolation(void){/*{{{*/
     375int  PentaInput::GetResultInterpolation(void){/*{{{*/
    376376        if(this->interpolation==P0Enum || this->interpolation==P0DGEnum){
    377377                return P0Enum;
     
    379379        return P1Enum;
    380380}/*}}}*/
    381 int  PentaInput2::GetResultNumberOfNodes(void){/*{{{*/
     381int  PentaInput::GetResultNumberOfNodes(void){/*{{{*/
    382382        return PentaRef::NumberofNodes(this->interpolation);
    383383}
    384384/*}}}*/
    385 void PentaInput2::Scale(IssmDouble alpha){/*{{{*/
     385void PentaInput::Scale(IssmDouble alpha){/*{{{*/
    386386
    387387        for(int i=0;i<this->M*this->N;i++) this->values[i] = alpha*this->values[i];
     
    389389}
    390390/*}}}*/
    391 void PentaInput2::Pow(IssmDouble alpha){/*{{{*/
     391void PentaInput::Pow(IssmDouble alpha){/*{{{*/
    392392
    393393        for(int i=0;i<this->M*this->N;i++) this->values[i] = pow(this->values[i],alpha);
     
    395395}
    396396/*}}}*/
    397 void PentaInput2::AXPY(Input2* xinput,IssmDouble alpha){/*{{{*/
     397void PentaInput::AXPY(Input* xinput,IssmDouble alpha){/*{{{*/
    398398
    399399        /*xinput is of the same type, so cast it: */
    400         if(xinput->ObjectEnum()!=PentaInput2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    401         PentaInput2* 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);
    402402        if(xpentainput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    403403
     
    407407}
    408408/*}}}*/
    409 void PentaInput2::PointWiseMult(Input2* xinput){/*{{{*/
     409void PentaInput::PointWiseMult(Input* xinput){/*{{{*/
    410410
    411411        /*xinput is of the same type, so cast it: */
    412         if(xinput->ObjectEnum()!=PentaInput2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    413         PentaInput2* 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);
    414414        if(xpentainput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    415415
  • issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h

    r25378 r25379  
    33
    44/*Headers:*/
    5 #include "./ElementInput2.h"
     5#include "./ElementInput.h"
    66#include "../Elements/PentaRef.h"
    77
    8 class PentaInput2: public ElementInput2, public PentaRef{
     8class PentaInput: public ElementInput, public PentaRef{
    99
    1010        private:
    1111                int isserved_collapsed;
    1212        public:
    13                 /*PentaInput2 constructors, destructors: {{{*/
    14                 PentaInput2();
    15                 PentaInput2(int nbe_in,int nbv_in,int interp_in);
    16                 ~PentaInput2();
     13                /*PentaInput constructors, destructors: {{{*/
     14                PentaInput();
     15                PentaInput(int nbe_in,int nbv_in,int interp_in);
     16                ~PentaInput();
    1717                /*}}}*/
    1818                /*Object virtual functions definitions:{{{ */
    19                 Input2 *copy();
     19                Input *copy();
    2020                void    DeepEcho();
    2121                void    Echo();
     
    2424                int     ObjectEnum();
    2525                /*}}}*/
    26                 /*PentaInput2 management: {{{*/
     26                /*PentaInput management: {{{*/
    2727                void SetInput(int interp_in,int row,IssmDouble value_in);
    2828                void SetInput(int interp_in,int numinds,int* rows,IssmDouble* values_in);
     
    3434                IssmDouble GetInputMax();
    3535                IssmDouble GetInputMaxAbs();
    36                 PentaInput2* GetPentaInput(){return this;};
     36                PentaInput* GetPentaInput(){return this;};
    3737                void GetInputValue(IssmDouble* pvalue,Gauss* gauss);
    3838                void Scale(IssmDouble scalar);
    3939                void Pow(IssmDouble scalar);
    40                 void AXPY(Input2* xinput,IssmDouble scalar);
    41                 void PointWiseMult(Input2* xinput);
     40                void AXPY(Input* xinput,IssmDouble scalar);
     41                void PointWiseMult(Input* xinput);
    4242                void Serve(int numindices,int* indices);
    4343                void Serve(int row,int numindices);
  • issm/trunk-jpl/src/c/classes/Inputs/SegInput.cpp

    r25378 r25379  
    1 /*!\file SegInput2.c
    2  * \brief: implementation of the SegInput2 object
     1/*!\file SegInput.c
     2 * \brief: implementation of the SegInput object
    33 */
    44
     
    1111#include "../classes.h"
    1212#include "../../shared/shared.h"
    13 #include "./SegInput2.h"
    14 
    15 /*SegInput2 constructors and destructor*/
    16 SegInput2::SegInput2(void){/*{{{*/
     13#include "./SegInput.h"
     14
     15/*SegInput constructors and destructor*/
     16SegInput::SegInput(void){/*{{{*/
    1717
    1818        this->numberofelements_local = -1;
     
    2525
    2626}/*}}}*/
    27 SegInput2::SegInput2(int nbe_in,int nbv_in,int interp_in){/*{{{*/
     27SegInput::SegInput(int nbe_in,int nbv_in,int interp_in){/*{{{*/
    2828
    2929        _assert_(nbe_in>0);
     
    3838        this->Reset(interp_in);
    3939}/*}}}*/
    40 SegInput2::~SegInput2(){/*{{{*/
     40SegInput::~SegInput(){/*{{{*/
    4141        if(this->element_values) xDelete<IssmDouble>(this->element_values);
    4242        if(this->values)         xDelete<IssmDouble>(this->values);
    4343}
    4444/*}}}*/
    45 void SegInput2::Reset(int interp_in){/*{{{*/
     45void SegInput::Reset(int interp_in){/*{{{*/
    4646
    4747        /*Clean up*/
     
    6868
    6969/*Object virtual functions definitions:*/
    70 Input2* SegInput2::copy() {/*{{{*/
    71 
    72         SegInput2* output = new SegInput2(this->numberofelements_local,this->numberofvertices_local,this->interpolation);
     70Input* SegInput::copy() {/*{{{*/
     71
     72        SegInput* output = new SegInput(this->numberofelements_local,this->numberofvertices_local,this->interpolation);
    7373
    7474        xMemCpy<IssmDouble>(output->values,this->values,this->M*this->N);
     
    7878}
    7979/*}}}*/
    80 void SegInput2::DeepEcho(void){/*{{{*/
    81         _printf_("SegInput2 Echo:\n");
     80void SegInput::DeepEcho(void){/*{{{*/
     81        _printf_("SegInput Echo:\n");
    8282        _printf_("   interpolation: "<<EnumToStringx(this->interpolation)<<"\n");
    8383        _printf_("   Size:          "<<M<<"x"<<N<<"\n");
     
    8989        }
    9090        printarray(this->values,this->M,this->N);
    91         //_printf_(setw(15)<<"   SegInput2 "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");
    92 }
    93 /*}}}*/
    94 void SegInput2::Echo(void){/*{{{*/
    95         _printf_("SegInput2 Echo:\n");
     91        //_printf_(setw(15)<<"   SegInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");
     92}
     93/*}}}*/
     94void SegInput::Echo(void){/*{{{*/
     95        _printf_("SegInput Echo:\n");
    9696        _printf_("   interpolation: "<<EnumToStringx(this->interpolation)<<"\n");
    9797        _printf_("   Size:          "<<M<<"x"<<N<<"\n");
     
    105105}
    106106/*}}}*/
    107 int  SegInput2::Id(void){/*{{{*/
     107int  SegInput::Id(void){/*{{{*/
    108108        return -1;
    109109}/*}}}*/
    110 void SegInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    111 
    112         MARSHALLING_ENUM(SegInput2Enum);
     110void SegInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     111
     112        MARSHALLING_ENUM(SegInputEnum);
    113113        MARSHALLING(this->numberofelements_local);
    114114        MARSHALLING(this->numberofvertices_local);
     
    128128}
    129129/*}}}*/
    130 int  SegInput2::ObjectEnum(void){/*{{{*/
    131         return SegInput2Enum;
    132 }
    133 /*}}}*/
    134 
    135 /*SegInput2 management*/
    136 void SegInput2::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/
     130int  SegInput::ObjectEnum(void){/*{{{*/
     131        return SegInputEnum;
     132}
     133/*}}}*/
     134
     135/*SegInput management*/
     136void SegInput::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/
    137137
    138138        _assert_(this);
     
    145145}
    146146/*}}}*/
    147 void SegInput2::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/
     147void SegInput::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/
    148148
    149149        _assert_(this);
     
    181181}
    182182/*}}}*/
    183 void SegInput2::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/
     183void SegInput::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/
    184184
    185185        _assert_(this);
     
    195195}
    196196/*}}}*/
    197 void SegInput2::Serve(int numindices,int* indices){/*{{{*/
     197void SegInput::Serve(int numindices,int* indices){/*{{{*/
    198198
    199199        _assert_(this);
     
    211211}
    212212/*}}}*/
    213 void SegInput2::Serve(int row,int numindices){/*{{{*/
     213void SegInput::Serve(int row,int numindices){/*{{{*/
    214214
    215215        _assert_(this);
     
    225225        this->isserved = true;
    226226} /*}}}*/
    227 int  SegInput2::GetInterpolation(){/*{{{*/
     227int  SegInput::GetInterpolation(){/*{{{*/
    228228        return this->interpolation;
    229229}/*}}}*/
    230 void SegInput2::GetInputAverage(IssmDouble* pvalue){/*{{{*/
     230void SegInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
    231231        _assert_(this);
    232232        _assert_(this->isserved);
     
    241241        *pvalue=value;
    242242}/*}}}*/
    243 IssmDouble SegInput2::GetInputMin(void){/*{{{*/
     243IssmDouble SegInput::GetInputMin(void){/*{{{*/
    244244        _assert_(this);
    245245        _assert_(this->isserved);
     
    253253        return min;
    254254}/*}}}*/
    255 IssmDouble SegInput2::GetInputMax(void){/*{{{*/
     255IssmDouble SegInput::GetInputMax(void){/*{{{*/
    256256        _assert_(this);
    257257        _assert_(this->isserved);
     
    265265        return max;
    266266}/*}}}*/
    267 IssmDouble SegInput2::GetInputMaxAbs(void){/*{{{*/
     267IssmDouble SegInput::GetInputMaxAbs(void){/*{{{*/
    268268        _assert_(this);
    269269        _assert_(this->isserved);
     
    277277        return maxabs;
    278278}/*}}}*/
    279 void SegInput2::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
     279void SegInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
    280280        _assert_(this);
    281281        _assert_(this->isserved);
     
    283283        SegRef::GetInputDerivativeValue(derivativevalues,this->element_values,xyz_list,(GaussSeg*)gauss,this->interpolation);
    284284}/*}}}*/
    285 void SegInput2::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
     285void SegInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
    286286        _assert_(this);
    287287        _assert_(this->isserved);
     
    289289        SegRef::GetInputValue(pvalue,this->element_values,(GaussSeg*)gauss,this->interpolation);
    290290}/*}}}*/
    291 int  SegInput2::GetResultArraySize(void){/*{{{*/
     291int  SegInput::GetResultArraySize(void){/*{{{*/
    292292        return 1;
    293293}
    294294/*}}}*/
    295 int  SegInput2::GetResultInterpolation(void){/*{{{*/
     295int  SegInput::GetResultInterpolation(void){/*{{{*/
    296296        if(this->interpolation==P0Enum || this->interpolation==P0DGEnum){
    297297                return P0Enum;
     
    299299        return P1Enum;
    300300}/*}}}*/
    301 int  SegInput2::GetResultNumberOfNodes(void){/*{{{*/
     301int  SegInput::GetResultNumberOfNodes(void){/*{{{*/
    302302        return SegRef::NumberofNodes(this->interpolation);
    303303}
    304304/*}}}*/
    305 void SegInput2::Scale(IssmDouble alpha){/*{{{*/
     305void SegInput::Scale(IssmDouble alpha){/*{{{*/
    306306
    307307        for(int i=0;i<this->M*this->N;i++) this->values[i] = alpha*this->values[i];
     
    309309}
    310310/*}}}*/
    311 void SegInput2::Pow(IssmDouble alpha){/*{{{*/
     311void SegInput::Pow(IssmDouble alpha){/*{{{*/
    312312
    313313        for(int i=0;i<this->M*this->N;i++) this->values[i] = pow(this->values[i],alpha);
     
    315315}
    316316/*}}}*/
    317 void SegInput2::AXPY(Input2* xinput,IssmDouble alpha){/*{{{*/
     317void SegInput::AXPY(Input* xinput,IssmDouble alpha){/*{{{*/
    318318
    319319        /*xinput is of the same type, so cast it: */
    320         if(xinput->ObjectEnum()!=SegInput2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    321         SegInput2* 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);
    322322        if(xseginput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    323323
     
    327327}
    328328/*}}}*/
    329 void SegInput2::PointWiseMult(Input2* xinput){/*{{{*/
     329void SegInput::PointWiseMult(Input* xinput){/*{{{*/
    330330
    331331        /*xinput is of the same type, so cast it: */
    332         if(xinput->ObjectEnum()!=SegInput2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    333         SegInput2* 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);
    334334        if(xseginput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    335335
  • issm/trunk-jpl/src/c/classes/Inputs/SegInput.h

    r25378 r25379  
    33
    44/*Headers:*/
    5 #include "./ElementInput2.h"
     5#include "./ElementInput.h"
    66#include "../Elements/SegRef.h"
    77
    8 class SegInput2: public ElementInput2, public SegRef{
     8class SegInput: public ElementInput, public SegRef{
    99
    1010        public:
    11                 /*SegInput2 constructors, destructors: {{{*/
    12                 SegInput2();
    13                 SegInput2(int nbe_in,int nbv_in,int interp_in);
    14                 ~SegInput2();
     11                /*SegInput constructors, destructors: {{{*/
     12                SegInput();
     13                SegInput(int nbe_in,int nbv_in,int interp_in);
     14                ~SegInput();
    1515                /*}}}*/
    1616                /*Object virtual functions definitions:{{{ */
    17                 Input2 *copy();
     17                Input *copy();
    1818                void    DeepEcho();
    1919                void    Echo();
     
    2222                int     ObjectEnum();
    2323                /*}}}*/
    24                 /*SegInput2 management: {{{*/
     24                /*SegInput management: {{{*/
    2525                void SetInput(int interp_in,int row,IssmDouble value_in);
    2626                void SetInput(int interp_in,int numinds,int* rows,IssmDouble* values_in);
     
    3232                IssmDouble GetInputMax();
    3333                IssmDouble GetInputMaxAbs();
    34                 SegInput2* GetSegInput(){return this;};
     34                SegInput* GetSegInput(){return this;};
    3535                void GetInputValue(IssmDouble* pvalue,Gauss* gauss);
    3636                void Scale(IssmDouble scalar);
    3737                void Pow(IssmDouble scalar);
    38                 void AXPY(Input2* xinput,IssmDouble scalar);
    39                 void PointWiseMult(Input2* xinput);
     38                void AXPY(Input* xinput,IssmDouble scalar);
     39                void PointWiseMult(Input* xinput);
    4040                void Serve(int numindices,int* indices);
    4141                void Serve(int row,int numindices);
  • issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp

    r25378 r25379  
    1 /*!\file TransientInput2.c
    2  * \brief: implementation of the TransientInput2 object
     1/*!\file TransientInput.c
     2 * \brief: implementation of the TransientInput object
    33 */
    44/*Headers*/
     
    99#endif
    1010
    11 #include "./TransientInput2.h"
    12 #include "./TriaInput2.h"
    13 #include "./PentaInput2.h"
     11#include "./TransientInput.h"
     12#include "./TriaInput.h"
     13#include "./PentaInput.h"
    1414#include "../../shared/shared.h"
    1515#include "../Params/Parameters.h"
    1616
    17 /*TransientInput2 constructors and destructor*/
    18 TransientInput2::TransientInput2(){/*{{{*/
     17/*TransientInput constructors and destructor*/
     18TransientInput::TransientInput(){/*{{{*/
    1919
    2020        enum_type=UNDEF;
     
    2929}
    3030/*}}}*/
    31 TransientInput2::TransientInput2(int in_enum_type,int nbe,int nbv,IssmDouble* timesin,int N){/*{{{*/
     31TransientInput::TransientInput(int in_enum_type,int nbe,int nbv,IssmDouble* timesin,int N){/*{{{*/
    3232
    3333        /*Set Enum*/
     
    4343                xMemCpy(this->timesteps,timesin,N);
    4444
    45                 this->inputs     = xNew<Input2*>(N);
     45                this->inputs     = xNew<Input*>(N);
    4646                for(int i=0;i<N;i++) this->inputs[i] = NULL;
    4747        }
     
    5555}
    5656/*}}}*/
    57 TransientInput2::~TransientInput2(){/*{{{*/
     57TransientInput::~TransientInput(){/*{{{*/
    5858
    5959        for(int i=0;i<this->numtimesteps;i++){
    6060                delete this->inputs[i];
    6161        }
    62         xDelete<Input2*>(this->inputs);
     62        xDelete<Input*>(this->inputs);
    6363        xDelete<IssmDouble>(this->timesteps);
    6464
     
    6868
    6969/*Object virtual functions definitions:*/
    70 Input2* TransientInput2::copy() {/*{{{*/
    71 
    72         TransientInput2* output=NULL;
    73 
    74         output = new TransientInput2();
     70Input* TransientInput::copy() {/*{{{*/
     71
     72        TransientInput* output=NULL;
     73
     74        output = new TransientInput();
    7575        output->enum_type=this->enum_type;
    7676        output->numtimesteps=this->numtimesteps;
     
    7878                output->timesteps=xNew<IssmDouble>(this->numtimesteps);
    7979                xMemCpy(output->timesteps,this->timesteps,this->numtimesteps);
    80                 output->inputs = xNew<Input2*>(this->numtimesteps);
     80                output->inputs = xNew<Input*>(this->numtimesteps);
    8181                for(int i=0;i<this->numtimesteps;i++){
    8282                        output->inputs[i] = this->inputs[i]->copy();
     
    8787        return output;
    8888}/*}}}*/
    89 void TransientInput2::DeepEcho(void){/*{{{*/
     89void TransientInput::DeepEcho(void){/*{{{*/
    9090
    9191        int i;
    9292
    93         _printf_("TransientInput2:\n");
     93        _printf_("TransientInput:\n");
    9494        _printf_("   enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")\n");
    9595        _printf_("   numtimesteps: " << this->numtimesteps << "\n");
     
    102102}
    103103/*}}}*/
    104 void TransientInput2::Configure(Parameters* params){/*{{{*/
     104void TransientInput::Configure(Parameters* params){/*{{{*/
    105105        this->parameters=params;
    106106}
    107107/*}}}*/
    108 void TransientInput2::Echo(void){/*{{{*/
     108void TransientInput::Echo(void){/*{{{*/
    109109        this->DeepEcho();
    110110}
    111111/*}}}*/
    112 int  TransientInput2::Id(void){ return -1; }/*{{{*/
    113 /*}}}*/
    114 void TransientInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     112int  TransientInput::Id(void){ return -1; }/*{{{*/
     113/*}}}*/
     114void TransientInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    115115
    116116        if (marshall_direction == MARSHALLING_BACKWARD){
     
    119119        }
    120120
    121         MARSHALLING_ENUM(TransientInput2Enum);
     121        MARSHALLING_ENUM(TransientInputEnum);
    122122
    123123        MARSHALLING(enum_type);
     
    128128}
    129129/*}}}*/
    130 int  TransientInput2::ObjectEnum(void){/*{{{*/
    131 
    132         return TransientInput2Enum;
     130int  TransientInput::ObjectEnum(void){/*{{{*/
     131
     132        return TransientInputEnum;
    133133
    134134}
     
    136136
    137137/*Intermediary*/
    138 void TransientInput2::AddTriaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/
     138void TransientInput::AddTriaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/
    139139
    140140        /*Check whether this is the last time step that we have*/
     
    150150
    151151        IssmDouble *old_timesteps = NULL;
    152         Input2    **old_inputs    = NULL;
     152        Input    **old_inputs    = NULL;
    153153        if (this->numtimesteps > 0){
    154154                old_timesteps=xNew<IssmDouble>(this->numtimesteps);
    155155                xMemCpy(old_timesteps,this->timesteps,this->numtimesteps);
    156156                xDelete<IssmDouble>(this->timesteps);
    157                 old_inputs=xNew<Input2*>(this->numtimesteps);
     157                old_inputs=xNew<Input*>(this->numtimesteps);
    158158                xMemCpy(old_inputs,this->inputs,this->numtimesteps);
    159                 xDelete<Input2*>(this->inputs);
     159                xDelete<Input*>(this->inputs);
    160160        }
    161161
    162162        this->numtimesteps=this->numtimesteps+1;
    163163        this->timesteps=xNew<IssmDouble>(this->numtimesteps);
    164         this->inputs   = xNew<Input2*>(this->numtimesteps);
     164        this->inputs   = xNew<Input*>(this->numtimesteps);
    165165
    166166        if (this->numtimesteps > 1){
     
    168168                xMemCpy(this->timesteps,old_timesteps,this->numtimesteps-1);
    169169                xDelete(old_timesteps);
    170                 xDelete<Input2*>(old_inputs);
     170                xDelete<Input*>(old_inputs);
    171171        }
    172172
     
    178178}
    179179/*}}}*/
    180 void TransientInput2::AddPentaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/
     180void TransientInput::AddPentaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/
    181181
    182182        /*Check whether this is the last time step that we have*/
     
    192192
    193193        IssmDouble *old_timesteps = NULL;
    194         Input2    **old_inputs    = NULL;
     194        Input    **old_inputs    = NULL;
    195195        if (this->numtimesteps > 0){
    196196                old_timesteps=xNew<IssmDouble>(this->numtimesteps);
    197197                xMemCpy(old_timesteps,this->timesteps,this->numtimesteps);
    198198                xDelete<IssmDouble>(this->timesteps);
    199                 old_inputs=xNew<Input2*>(this->numtimesteps);
     199                old_inputs=xNew<Input*>(this->numtimesteps);
    200200                xMemCpy(old_inputs,this->inputs,this->numtimesteps);
    201                 xDelete<Input2*>(this->inputs);
     201                xDelete<Input*>(this->inputs);
    202202        }
    203203
    204204        this->numtimesteps=this->numtimesteps+1;
    205205        this->timesteps=xNew<IssmDouble>(this->numtimesteps);
    206         this->inputs   = xNew<Input2*>(this->numtimesteps);
     206        this->inputs   = xNew<Input*>(this->numtimesteps);
    207207
    208208        if (this->numtimesteps > 1){
     
    210210                xMemCpy(this->timesteps,old_timesteps,this->numtimesteps-1);
    211211                xDelete(old_timesteps);
    212                 xDelete<Input2*>(old_inputs);
     212                xDelete<Input*>(old_inputs);
    213213        }
    214214
     
    220220}
    221221/*}}}*/
    222 void TransientInput2::AddTriaTimeInput(int step,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/
     222void TransientInput::AddTriaTimeInput(int step,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/
    223223
    224224        _assert_(step>=0 && step<this->numtimesteps);
     
    226226        /*Create it if necessary*/
    227227        if(this->inputs[step]){
    228                 if(this->inputs[step]->ObjectEnum()!=TriaInput2Enum) _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()));
    229229        }
    230230        else{
    231                 this->inputs[step] = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,interp_in);
     231                this->inputs[step] = new TriaInput(this->numberofelements_local,this->numberofvertices_local,interp_in);
    232232        }
    233233
    234234        /*Set input*/
    235         TriaInput2* input = xDynamicCast<TriaInput2*>(this->inputs[step]);
     235        TriaInput* input = xDynamicCast<TriaInput*>(this->inputs[step]);
    236236        input->SetInput(interp_in,numindices,indices,values_in);
    237237
    238238}
    239239/*}}}*/
    240 void TransientInput2::AddPentaTimeInput(int step,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/
     240void TransientInput::AddPentaTimeInput(int step,int numindices,int* indices,IssmDouble* values_in,int interp_in){/*{{{*/
    241241
    242242        _assert_(step>=0 && step<this->numtimesteps);
     
    244244        /*Create it if necessary*/
    245245        if(this->inputs[step]){
    246                 if(this->inputs[step]->ObjectEnum()!=PentaInput2Enum) _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()));
    247247        }
    248248        else{
    249                 this->inputs[step] = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,interp_in);
     249                this->inputs[step] = new PentaInput(this->numberofelements_local,this->numberofvertices_local,interp_in);
    250250        }
    251251
    252252        /*Set input*/
    253         PentaInput2* input = xDynamicCast<PentaInput2*>(this->inputs[step]);
     253        PentaInput* input = xDynamicCast<PentaInput*>(this->inputs[step]);
    254254        input->SetInput(interp_in,numindices,indices,values_in);
    255255
    256256}
    257257/*}}}*/
    258 void TransientInput2::GetAllTimes(IssmDouble** ptimesteps,int* pnumtimesteps){/*{{{*/
     258void TransientInput::GetAllTimes(IssmDouble** ptimesteps,int* pnumtimesteps){/*{{{*/
    259259
    260260        if(ptimesteps){
     
    268268}
    269269/*}}}*/
    270 TriaInput2* TransientInput2::GetTriaInput(){/*{{{*/
     270TriaInput* TransientInput::GetTriaInput(){/*{{{*/
    271271
    272272        IssmDouble time;
     
    276276}
    277277/*}}}*/
    278 TriaInput2* TransientInput2::GetTriaInput(IssmDouble time){/*{{{*/
     278TriaInput* TransientInput::GetTriaInput(IssmDouble time){/*{{{*/
    279279
    280280        /*Set current time input*/
     
    283283
    284284        /*Cast and return*/
    285         if(this->current_input->ObjectEnum()!=TriaInput2Enum){
    286                 _error_("Cannot return a TriaInput2");
    287         }
    288         return xDynamicCast<TriaInput2*>(this->current_input);
    289 
    290 }
    291 /*}}}*/
    292 TriaInput2* 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/*}}}*/
     292TriaInput* TransientInput::GetTriaInput(IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/
    293293
    294294        /*Set current time input*/
     
    297297
    298298        /*Cast and return*/
    299         if(this->current_input->ObjectEnum()!=TriaInput2Enum){
    300                 _error_("Cannot return a TriaInput2");
    301         }
    302         return xDynamicCast<TriaInput2*>(this->current_input);
    303 
    304 }
    305 /*}}}*/
    306 TriaInput2* 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/*}}}*/
     306TriaInput* TransientInput::GetTriaInput(int offset){/*{{{*/
    307307
    308308        /*Check offset*/
     
    310310                _error_("Cannot return input for offset "<<offset);
    311311        }
    312         Input2* input = this->inputs[offset];
     312        Input* input = this->inputs[offset];
    313313
    314314        /*Cast and return*/
    315315        _assert_(input);
    316         if(input->ObjectEnum()!=TriaInput2Enum) _error_("Cannot return a TriaInput2");
    317         return xDynamicCast<TriaInput2*>(input);
    318 
    319 }
    320 /*}}}*/
    321 PentaInput2* TransientInput2::GetPentaInput(){/*{{{*/
     316        if(input->ObjectEnum()!=TriaInputEnum) _error_("Cannot return a TriaInput");
     317        return xDynamicCast<TriaInput*>(input);
     318
     319}
     320/*}}}*/
     321PentaInput* TransientInput::GetPentaInput(){/*{{{*/
    322322
    323323        IssmDouble time;
     
    326326}
    327327/*}}}*/
    328 PentaInput2* TransientInput2::GetPentaInput(IssmDouble time){/*{{{*/
     328PentaInput* TransientInput::GetPentaInput(IssmDouble time){/*{{{*/
    329329
    330330        /*Set current time input*/
     
    333333
    334334        /*Cast and return*/
    335         if(this->current_input->ObjectEnum()!=PentaInput2Enum){
    336                 _error_("Cannot return a PentaInput2");
    337         }
    338         return xDynamicCast<PentaInput2*>(this->current_input);
    339 
    340 }
    341 /*}}}*/
    342 PentaInput2* 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/*}}}*/
     342PentaInput* TransientInput::GetPentaInput(int offset){/*{{{*/
    343343
    344344
     
    347347                _error_("Cannot return input for offset "<<offset);
    348348        }
    349         Input2* input = this->inputs[offset];
     349        Input* input = this->inputs[offset];
    350350
    351351        /*Cast and return*/
    352         if(input->ObjectEnum()!=PentaInput2Enum) _error_("Cannot return a PentaInput2");
    353         return xDynamicCast<PentaInput2*>(input);
    354 
    355 }
    356 /*}}}*/
    357 PentaInput2* 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/*}}}*/
     357PentaInput* TransientInput::GetPentaInput(IssmDouble start_time, IssmDouble end_time, int averaging_method){/*{{{*/
    358358
    359359        /*Set current time input*/
     
    362362
    363363        /*Cast and return*/
    364         if(this->current_input->ObjectEnum()!=PentaInput2Enum){
    365                 _error_("Cannot return a PentaInput2");
    366         }
    367         return xDynamicCast<PentaInput2*>(this->current_input);
    368 
    369 }
    370 /*}}}*/
    371 
    372 void TransientInput2::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
     372void TransientInput::SetCurrentTimeInput(IssmDouble time){/*{{{*/
    373373
    374374        /*First, recover current time from parameters: */
     
    427427                IssmDouble alpha1=(1.0-alpha2);
    428428
    429                 Input2* input1=this->inputs[offset];
    430                 Input2* input2=this->inputs[offset+1];
     429                Input* input1=this->inputs[offset];
     430                Input* input2=this->inputs[offset+1];
    431431
    432432                this->current_input = input1->copy();
     
    436436
    437437}/*}}}*/
    438 void TransientInput2::SetAverageAsCurrentTimeInput(IssmDouble start_time,IssmDouble end_time, int averaging_method){/*{{{*/
     438void TransientInput::SetAverageAsCurrentTimeInput(IssmDouble start_time,IssmDouble end_time, int averaging_method){/*{{{*/
    439439
    440440        IssmDouble  dt,durinv;
     
    480480                        _assert_(dt>0.);
    481481                }
    482                 Input2* stepinput=this->inputs[offset+1];
     482                Input* stepinput=this->inputs[offset+1];
    483483
    484484                switch(averaging_method){
     
    535535        }
    536536}/*}}}*/
    537 IssmDouble  TransientInput2::GetTimeByOffset(int offset){/*{{{*/
     537IssmDouble  TransientInput::GetTimeByOffset(int offset){/*{{{*/
    538538        if(offset<0) offset=0;
    539539        _assert_(offset<this->numtimesteps);
     
    541541}
    542542/*}}}*/
    543 int  TransientInput2::GetTimeInputOffset(IssmDouble time){/*{{{*/
     543int  TransientInput::GetTimeInputOffset(IssmDouble time){/*{{{*/
    544544
    545545        int offset;
  • issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h

    r25378 r25379  
    1 /*! \file TransientInput2.h
     1/*! \file TransientInput.h
    22 *  \brief: header file for transientinput object
    33 */
     
    77
    88/*Headers:*/
    9 #include "./Input2.h"
     9#include "./Input.h"
    1010class Gauss;
    1111class Parameters;
    1212
    13 class TransientInput2: public Input2{
     13class TransientInput: public Input{
    1414
    1515        private:
     
    2020                int         enum_type;
    2121                int         numtimesteps;
    22                 Input2**    inputs;
     22                Input**    inputs;
    2323                IssmDouble *timesteps;
    2424                Parameters *parameters;     //to find current time.
    2525
    2626                IssmDouble  current_step;
    27                 Input2*     current_input;
     27                Input*     current_input;
    2828
    29                 /*TransientInput2 constructors, destructors: {{{*/
    30                 TransientInput2();
    31                 TransientInput2(int in_enum_type,int nbe,int nbv,IssmDouble* times,int N);
    32                 ~TransientInput2();
    33                 void AddTimeInput(Input2* 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!*/
    3434                void AddTriaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in);
    3535                void AddPentaTimeInput(IssmDouble time,int numindices,int* indices,IssmDouble* values_in,int interp_in);
     
    3838                /*}}}*/
    3939                /*Object virtual functions definitions:{{{*/
    40                 Input2* copy();
     40                Input* copy();
    4141                void    Configure(Parameters* params);
    4242                void    DeepEcho();
     
    4646                int     ObjectEnum();
    4747                /*}}}*/
    48                 /*TransientInput2 management:*/
     48                /*TransientInput management:*/
    4949                void         GetAllTimes(IssmDouble** ptimesteps,int* pnumtimesteps);
    50                 TriaInput2*  GetTriaInput();
    51                 TriaInput2*  GetTriaInput(IssmDouble time);
    52                 TriaInput2*  GetTriaInput(IssmDouble start_time,IssmDouble end_time,int averaging_method);
    53                 TriaInput2*  GetTriaInput(int offset);
    54                 PentaInput2* GetPentaInput();
    55                 PentaInput2* GetPentaInput(IssmDouble time);
    56                 PentaInput2* GetPentaInput(int offset);
    57                 PentaInput2* GetPentaInput(IssmDouble start_time,IssmDouble end_time,int averaging_method);
    58                 Input2*      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!");};
    5959                IssmDouble   GetTimeByOffset(int offset);
    6060                int          GetTimeInputOffset(IssmDouble time);
  • issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp

    r25378 r25379  
    1 /*!\file TriaInput2.c
    2  * \brief: implementation of the TriaInput2 object
     1/*!\file TriaInput.c
     2 * \brief: implementation of the TriaInput object
    33 */
    44
     
    1111#include "../classes.h"
    1212#include "../../shared/shared.h"
    13 #include "./TriaInput2.h"
    14 
    15 /*TriaInput2 constructors and destructor*/
    16 TriaInput2::TriaInput2(void){/*{{{*/
     13#include "./TriaInput.h"
     14
     15/*TriaInput constructors and destructor*/
     16TriaInput::TriaInput(void){/*{{{*/
    1717
    1818        this->numberofelements_local = -1;
     
    2626
    2727}/*}}}*/
    28 TriaInput2::TriaInput2(int nbe_in,int nbv_in,int interp_in){/*{{{*/
     28TriaInput::TriaInput(int nbe_in,int nbv_in,int interp_in){/*{{{*/
    2929
    3030        _assert_(nbe_in>0);
     
    4040        this->Reset(interp_in);
    4141}/*}}}*/
    42 TriaInput2::~TriaInput2(){/*{{{*/
     42TriaInput::~TriaInput(){/*{{{*/
    4343        if(this->element_values) xDelete<IssmDouble>(this->element_values);
    4444        if(this->values)         xDelete<IssmDouble>(this->values);
    4545}
    4646/*}}}*/
    47 void TriaInput2::Reset(int interp_in){/*{{{*/
     47void TriaInput::Reset(int interp_in){/*{{{*/
    4848
    4949        /*Clean up*/
     
    7070
    7171/*Object virtual functions definitions:*/
    72 Input2* TriaInput2::copy() {/*{{{*/
    73 
    74         TriaInput2* output = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,this->interpolation);
     72Input* TriaInput::copy() {/*{{{*/
     73
     74        TriaInput* output = new TriaInput(this->numberofelements_local,this->numberofvertices_local,this->interpolation);
    7575
    7676        xMemCpy<IssmDouble>(output->values,this->values,this->M*this->N);
     
    8080}
    8181/*}}}*/
    82 void TriaInput2::DeepEcho(void){/*{{{*/
    83         _printf_("TriaInput2 Echo:\n");
     82void TriaInput::DeepEcho(void){/*{{{*/
     83        _printf_("TriaInput Echo:\n");
    8484        _printf_("   interpolation: "<<EnumToStringx(this->interpolation)<<"\n");
    8585        _printf_("   Size:          "<<M<<"x"<<N<<"\n");
     
    9292        }
    9393        printarray(this->values,this->M,this->N);
    94         //_printf_(setw(15)<<"   TriaInput2 "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");
    95 }
    96 /*}}}*/
    97 void TriaInput2::Echo(void){/*{{{*/
    98         _printf_("TriaInput2 Echo:\n");
     94        //_printf_(setw(15)<<"   TriaInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");
     95}
     96/*}}}*/
     97void TriaInput::Echo(void){/*{{{*/
     98        _printf_("TriaInput Echo:\n");
    9999        _printf_("   interpolation: "<<EnumToStringx(this->interpolation)<<"\n");
    100100        _printf_("   Size:          "<<M<<"x"<<N<<"\n");
     
    109109}
    110110/*}}}*/
    111 int  TriaInput2::Id(void){/*{{{*/
     111int  TriaInput::Id(void){/*{{{*/
    112112        return -1;
    113113}/*}}}*/
    114 void TriaInput2::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
    115 
    116         MARSHALLING_ENUM(TriaInput2Enum);
     114void TriaInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
     115
     116        MARSHALLING_ENUM(TriaInputEnum);
    117117        MARSHALLING(this->numberofelements_local);
    118118        MARSHALLING(this->numberofvertices_local);
     
    133133}
    134134/*}}}*/
    135 int  TriaInput2::ObjectEnum(void){/*{{{*/
    136         return TriaInput2Enum;
    137 }
    138 /*}}}*/
    139 
    140 /*TriaInput2 management*/
    141 void TriaInput2::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/
     135int  TriaInput::ObjectEnum(void){/*{{{*/
     136        return TriaInputEnum;
     137}
     138/*}}}*/
     139
     140/*TriaInput management*/
     141void TriaInput::SetInput(int interp_in,int row,IssmDouble value_in){/*{{{*/
    142142
    143143        _assert_(this);
     
    150150}
    151151/*}}}*/
    152 void TriaInput2::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/
     152void TriaInput::SetInput(int interp_in,int numindices,int* indices,IssmDouble* values_in){/*{{{*/
    153153
    154154        _assert_(this);
     
    186186}
    187187/*}}}*/
    188 void TriaInput2::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/
     188void TriaInput::SetInput(int interp_in,int row,int numindices,IssmDouble* values_in){/*{{{*/
    189189
    190190        _assert_(this);
     
    200200}
    201201/*}}}*/
    202 void TriaInput2::Serve(int numindices,int* indices){/*{{{*/
     202void TriaInput::Serve(int numindices,int* indices){/*{{{*/
    203203
    204204        _assert_(this);
     
    217217}
    218218/*}}}*/
    219 void TriaInput2::Serve(int row,int numindices){/*{{{*/
     219void TriaInput::Serve(int row,int numindices){/*{{{*/
    220220
    221221        _assert_(this);
     
    232232        this->isserved_collapsed = 0;
    233233} /*}}}*/
    234 void TriaInput2::ServeCollapsed(int row,int id1,int id2){/*{{{*/
     234void TriaInput::ServeCollapsed(int row,int id1,int id2){/*{{{*/
    235235
    236236        _assert_(this);
     
    248248        this->isserved_collapsed = 1;
    249249}/*}}}*/
    250 void TriaInput2::SetServeCollapsed(bool status){/*{{{*/
     250void TriaInput::SetServeCollapsed(bool status){/*{{{*/
    251251        this->isserved_collapsed = 1;
    252252}/*}}}*/
    253 int  TriaInput2::GetInterpolation(){/*{{{*/
     253int  TriaInput::GetInterpolation(){/*{{{*/
    254254        return this->interpolation;
    255255}/*}}}*/
    256 void TriaInput2::GetInputAverage(IssmDouble* pvalue){/*{{{*/
     256void TriaInput::GetInputAverage(IssmDouble* pvalue){/*{{{*/
    257257        _assert_(this);
    258258        _assert_(this->isserved);
     
    268268        *pvalue=value;
    269269}/*}}}*/
    270 IssmDouble TriaInput2::GetInputMin(void){/*{{{*/
     270IssmDouble TriaInput::GetInputMin(void){/*{{{*/
    271271        _assert_(this);
    272272        _assert_(this->isserved);
     
    281281        return min;
    282282}/*}}}*/
    283 IssmDouble TriaInput2::GetInputMax(void){/*{{{*/
     283IssmDouble TriaInput::GetInputMax(void){/*{{{*/
    284284        _assert_(this);
    285285        _assert_(this->isserved);
     
    294294        return max;
    295295}/*}}}*/
    296 IssmDouble TriaInput2::GetInputMaxAbs(void){/*{{{*/
     296IssmDouble TriaInput::GetInputMaxAbs(void){/*{{{*/
    297297        _assert_(this);
    298298        _assert_(this->isserved);
     
    307307        return maxabs;
    308308}/*}}}*/
    309 void TriaInput2::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
     309void TriaInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){/*{{{*/
    310310        _assert_(this);
    311311        _assert_(this->isserved);
     
    326326        }
    327327}/*}}}*/
    328 void TriaInput2::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
     328void TriaInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){/*{{{*/
    329329        _assert_(this);
    330330        _assert_(this->isserved);
     
    344344        }
    345345}/*}}}*/
    346 int  TriaInput2::GetResultArraySize(void){/*{{{*/
     346int  TriaInput::GetResultArraySize(void){/*{{{*/
    347347        return 1;
    348348}
    349349/*}}}*/
    350 int  TriaInput2::GetResultInterpolation(void){/*{{{*/
     350int  TriaInput::GetResultInterpolation(void){/*{{{*/
    351351        if(this->interpolation==P0Enum || this->interpolation==P0DGEnum){
    352352                return P0Enum;
     
    354354        return P1Enum;
    355355}/*}}}*/
    356 int  TriaInput2::GetResultNumberOfNodes(void){/*{{{*/
     356int  TriaInput::GetResultNumberOfNodes(void){/*{{{*/
    357357        return TriaRef::NumberofNodes(this->interpolation);
    358358}
    359359/*}}}*/
    360 void TriaInput2::Scale(IssmDouble alpha){/*{{{*/
     360void TriaInput::Scale(IssmDouble alpha){/*{{{*/
    361361
    362362        for(int i=0;i<this->M*this->N;i++) this->values[i] = alpha*this->values[i];
     
    364364}
    365365/*}}}*/
    366 void TriaInput2::Pow(IssmDouble alpha){/*{{{*/
     366void TriaInput::Pow(IssmDouble alpha){/*{{{*/
    367367
    368368        for(int i=0;i<this->M*this->N;i++) this->values[i] = pow(this->values[i],alpha);
     
    370370}
    371371/*}}}*/
    372 void TriaInput2::AXPY(Input2* xinput,IssmDouble alpha){/*{{{*/
     372void TriaInput::AXPY(Input* xinput,IssmDouble alpha){/*{{{*/
    373373
    374374        /*xinput is of the same type, so cast it: */
    375         if(xinput->ObjectEnum()!=TriaInput2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    376         TriaInput2* 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);
    377377        if(xtriainput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    378378
     
    382382}
    383383/*}}}*/
    384 void TriaInput2::PointWiseMult(Input2* xinput){/*{{{*/
     384void TriaInput::PointWiseMult(Input* xinput){/*{{{*/
    385385
    386386        /*xinput is of the same type, so cast it: */
    387         if(xinput->ObjectEnum()!=TriaInput2Enum) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    388         TriaInput2* 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);
    389389        if(xtriainput->GetInterpolation()!=this->interpolation) _error_("Operation not permitted because xinput is of type " << EnumToStringx(xinput->ObjectEnum()));
    390390
  • issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h

    r25378 r25379  
    33
    44/*Headers:*/
    5 #include "./ElementInput2.h"
     5#include "./ElementInput.h"
    66#include "../Elements/TriaRef.h"
    77
    8 class TriaInput2: public ElementInput2, public TriaRef{
     8class TriaInput: public ElementInput, public TriaRef{
    99
    1010        private:
     
    1212                int collapsed_ids[2];
    1313        public:
    14                 /*TriaInput2 constructors, destructors: {{{*/
    15                 TriaInput2();
    16                 TriaInput2(int nbe_in,int nbv_in,int interp_in);
    17                 ~TriaInput2();
     14                /*TriaInput constructors, destructors: {{{*/
     15                TriaInput();
     16                TriaInput(int nbe_in,int nbv_in,int interp_in);
     17                ~TriaInput();
    1818                /*}}}*/
    1919                /*Object virtual functions definitions:{{{ */
    20                 Input2 *copy();
     20                Input *copy();
    2121                void    DeepEcho();
    2222                void    Echo();
     
    2525                int     ObjectEnum();
    2626                /*}}}*/
    27                 /*TriaInput2 management: {{{*/
     27                /*TriaInput management: {{{*/
    2828                void SetInput(int interp_in,int row,IssmDouble value_in);
    2929                void SetInput(int interp_in,int numinds,int* rows,IssmDouble* values_in);
     
    3535                IssmDouble GetInputMax();
    3636                IssmDouble GetInputMaxAbs();
    37                 TriaInput2* GetTriaInput(){return this;};
     37                TriaInput* GetTriaInput(){return this;};
    3838                void GetInputValue(IssmDouble* pvalue,Gauss* gauss);
    3939                void Scale(IssmDouble scalar);
    4040                void Pow(IssmDouble scalar);
    41                 void AXPY(Input2* xinput,IssmDouble scalar);
    42                 void PointWiseMult(Input2* xinput);
     41                void AXPY(Input* xinput,IssmDouble scalar);
     42                void PointWiseMult(Input* xinput);
    4343                void Serve(int numindices,int* indices);
    4444                void Serve(int row,int numindices);
  • issm/trunk-jpl/src/c/classes/IoModel.cpp

    r25213 r25379  
    2727#include "../shared/io/io.h"
    2828#include "../shared/shared.h"
    29 #include "../classes/Inputs2/TransientInput2.h"
     29#include "../classes/Inputs/TransientInput.h"
    3030
    3131#ifdef _HAVE_CODIPACK_
     
    16071607}
    16081608/*}}}*/
    1609 void  IoModel::FetchDataToInput(Inputs2* inputs2,Elements* elements,const char* vector_name,int input_enum,IssmDouble default_value){/*{{{*/
     1609void  IoModel::FetchDataToInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum,IssmDouble default_value){/*{{{*/
    16101610
    16111611        /*First, look whether it is not already loaded in this->data*/
     
    16171617                        for(int i=0;i<elements->Size();i++){
    16181618                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1619                                 element->InputCreate(iodata->data,inputs2,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.
    16201620                        }
    16211621                        return;
     
    16391639                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    16401640                if(!doublearray){
    1641                         element->SetElementInput(inputs2,input_enum,default_value);
     1641                        element->SetElementInput(inputs,input_enum,default_value);
    16421642                }
    16431643                else{
    1644                         element->InputCreate(doublearray,inputs2,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.
    16451645                }
    16461646        }
     
    16501650}
    16511651/*}}}*/
    1652 void  IoModel::FetchDataToInput(Inputs2* inputs2,Elements* elements,const char* vector_name,int input_enum){/*{{{*/
     1652void  IoModel::FetchDataToInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum){/*{{{*/
    16531653
    16541654        /*First, look whether it is not already loaded in this->data*/
     
    16591659                        for(int i=0;i<elements->Size();i++){
    16601660                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1661                                 element->InputCreate(iodata->data,inputs2,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.
    16621662                        }
    16631663                        return;
     
    16841684                        for(i=0;i<elements->Size();i++){
    16851685                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1686                                 element->SetBoolInput(inputs2,input_enum,boolean);
     1686                                element->SetBoolInput(inputs,input_enum,boolean);
    16871687                        }
    16881688                        break;
     
    16911691                        for(i=0;i<elements->Size();i++){
    16921692                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1693                                 element->SetIntInput(inputs2,input_enum,integer);
     1693                                element->SetIntInput(inputs,input_enum,integer);
    16941694                        }
    16951695                        break;
     
    16981698                        for(i=0;i<elements->Size();i++){
    16991699                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1700                                 element->SetElementInput(inputs2,input_enum,scalar);
     1700                                element->SetElementInput(inputs,input_enum,scalar);
    17011701                        }
    17021702                        break;
     
    17061706                        for(i=0;i<elements->Size();i++){
    17071707                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1708                                 element->InputCreate(doublearray,inputs2,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.
    17091709                        }
    17101710                        break;
     
    17141714                        for(i=0;i<elements->Size();i++){
    17151715                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1716                                 element->InputCreate(doublearray,inputs2,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.
    17171717                        }
    17181718                        break;
     
    17421742
    17431743                                //initialize transient input dataset:
    1744                                 TransientInput2* transientinput=inputs2->SetDatasetTransientInput(input_enum,i, times,N);
     1744                                TransientInput* transientinput=inputs->SetDatasetTransientInput(input_enum,i, times,N);
    17451745                                for(int j=0;j<elements->Size();j++){
    17461746
     
    18161816                        for(i=0;i<elements->Size();i++){
    18171817                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1818                                 element->InputCreate(doublearray,inputs2,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.
    18191819                        }
    18201820                        break;
     
    18271827}
    18281828/*}}}*/
    1829 void  IoModel::FetchDataToDatasetInput(Inputs2* inputs2,Elements* elements,const char* vector_name,int input_enum){/*{{{*/
     1829void  IoModel::FetchDataToDatasetInput(Inputs* inputs,Elements* elements,const char* vector_name,int input_enum){/*{{{*/
    18301830
    18311831        /*First, look whether it is not already loaded in this->data*/
     
    18371837                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    18381838                                _error_("to be implemented...");
    1839                                 //element->InputCreate(iodata->data,inputs2,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.
    18401840                        }
    18411841                        return;
     
    18771877                        for(int i=0;i<elements->Size();i++){
    18781878                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1879                                 element->DatasetInputCreate(doublearray,M,N,ids,N,inputs2,this,input_enum);
     1879                                element->DatasetInputCreate(doublearray,M,N,ids,N,inputs,this,input_enum);
    18801880                        }
    18811881                        xDelete<int>(ids);
     
    18921892                        for(int i=0;i<elements->Size();i++){
    18931893                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    1894                                 element->DatasetInputCreate(doublearray,M,N,ids,N,inputs2,this,input_enum);
     1894                                element->DatasetInputCreate(doublearray,M,N,ids,N,inputs,this,input_enum);
    18951895                        }
    18961896                        xDelete<int>(ids);
  • issm/trunk-jpl/src/c/classes/IoModel.h

    r24579 r25379  
    1313class Parameters;
    1414class Elements;
    15 class Inputs2;
     15class Inputs;
    1616class Param;
    1717class Options;
     
    139139                void        FetchData(Options *options,const char* data_name);
    140140                void        FetchData(int num,...);
    141                 void        FetchDataToInput(Inputs2* inputs2,Elements* elements,const char* vector_name,int input_enum);
    142                 void        FetchDataToInput(Inputs2* inputs2,Elements* elements,const char* vector_name,int input_enum,IssmDouble default_value);
    143                 void        FetchDataToDatasetInput(Inputs2* 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);
    144144                void        FetchIndependent(const char* dependent_name);
    145145                void        FetchMultipleData(char***   pstringarray,int* pnumstrings,const char* data_name);
  • issm/trunk-jpl/src/c/classes/Loads/Channel.cpp

    r24335 r25379  
    387387        IssmDouble c_t       = element->FindParam(HydrologyPressureMeltCoefficientEnum);
    388388
    389         Input2* h_input      = element->GetInput2(HydrologySheetThicknessEnum);_assert_(h_input);
    390         Input2* H_input      = element->GetInput2(ThicknessEnum); _assert_(H_input);
    391         Input2* b_input      = element->GetInput2(BedEnum); _assert_(b_input);
    392         Input2* B_input      = element->GetInput2(MaterialsRheologyBEnum);         _assert_(B_input);
    393         Input2* n_input      = element->GetInput2(MaterialsRheologyNEnum);         _assert_(n_input);
    394         Input2* ks_input     = element->GetInput2(HydrologySheetConductivityEnum); _assert_(ks_input);
    395         Input2* 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);
    396396
    397397        /*Get tangent vector*/
     
    518518        IssmDouble c_t       = element->FindParam(HydrologyPressureMeltCoefficientEnum);
    519519
    520         Input2* h_input      = element->GetInput2(HydrologySheetThicknessEnum);_assert_(h_input);
    521         Input2* H_input      = element->GetInput2(ThicknessEnum); _assert_(H_input);
    522         Input2* b_input      = element->GetInput2(BedEnum); _assert_(b_input);
    523         Input2* B_input      = element->GetInput2(MaterialsRheologyBEnum);         _assert_(B_input);
    524         Input2* n_input      = element->GetInput2(MaterialsRheologyNEnum);         _assert_(n_input);
    525         Input2* ks_input     = element->GetInput2(HydrologySheetConductivityEnum); _assert_(ks_input);
    526         Input2* 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);
    527527
    528528        /*Get tangent vector*/
     
    630630        IssmDouble dt        = element->FindParam(TimesteppingTimeStepEnum);
    631631
    632         Input2* h_input      = element->GetInput2(HydrologySheetThicknessEnum);_assert_(h_input);
    633         Input2* H_input      = element->GetInput2(ThicknessEnum); _assert_(H_input);
    634         Input2* b_input      = element->GetInput2(BedEnum); _assert_(b_input);
    635         Input2* B_input      = element->GetInput2(MaterialsRheologyBEnum);         _assert_(B_input);
    636         Input2* n_input      = element->GetInput2(MaterialsRheologyNEnum);         _assert_(n_input);
    637         Input2* ks_input     = element->GetInput2(HydrologySheetConductivityEnum); _assert_(ks_input);
    638         Input2* 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);
    639639
    640640        /*Get tangent vector*/
  • issm/trunk-jpl/src/c/classes/Loads/Neumannflux.cpp

    r24335 r25379  
    361361        /*Retrieve all inputs and parameters*/
    362362        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    363         Input2* flux_input = tria->GetInput2(HydrologyNeumannfluxEnum);  _assert_(flux_input);
     363        Input* flux_input = tria->GetInput(HydrologyNeumannfluxEnum);  _assert_(flux_input);
    364364
    365365        /*Check wether it is an inflow or outflow BC (0 is the middle of the segment)*/
     
    405405        /*Retrieve all inputs and parameters*/
    406406        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    407         Input2* flux_input = tria->GetInput2(HydrologyNeumannfluxEnum);  _assert_(flux_input);
     407        Input* flux_input = tria->GetInput(HydrologyNeumannfluxEnum);  _assert_(flux_input);
    408408
    409409        /*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  
    516516        /*Retrieve all inputs and parameters*/
    517517        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    518         Input2* vxaverage_input=tria->GetInput2(VxEnum); _assert_(vxaverage_input);
    519         Input2* 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);
    520520        GetNormal(&normal[0],xyz_list);
    521521
     
    591591        /*Retrieve all inputs and parameters*/
    592592        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    593         Input2* vxaverage_input=tria->GetInput2(VxEnum); _assert_(vxaverage_input);
    594         Input2* 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);
    595595        GetNormal(&normal[0],xyz_list);
    596596
     
    688688        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    689689        IssmDouble dt = parameters->FindParam(TimesteppingTimeStepEnum);
    690         Input2* vxaverage_input=tria->GetInput2(VxEnum); _assert_(vxaverage_input);
    691         Input2* 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);
    692692        GetNormal(&normal[0],xyz_list);
    693693
     
    764764        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    765765        IssmDouble dt = parameters->FindParam(TimesteppingTimeStepEnum);
    766         Input2* vxaverage_input=tria->GetInput2(VxEnum); _assert_(vxaverage_input);
    767         Input2* 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);
    768768        GetNormal(&normal[0],xyz_list);
    769769
     
    866866        /*Retrieve all inputs and parameters*/
    867867        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    868         Input2* vxaverage_input = tria->GetInput2(VxEnum);        _assert_(vxaverage_input);
    869         Input2* vyaverage_input = tria->GetInput2(VyEnum);        _assert_(vyaverage_input);
    870         Input2* 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);
    871871        GetNormal(&normal[0],xyz_list);
    872872
     
    947947        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    948948        IssmDouble dt = parameters->FindParam(TimesteppingTimeStepEnum);
    949         Input2* vxaverage_input    = tria->GetInput2(VxEnum);                        _assert_(vxaverage_input);
    950         Input2* vyaverage_input    = tria->GetInput2(VyEnum);                        _assert_(vyaverage_input);
    951         Input2* 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);
    952952        GetNormal(&normal[0],xyz_list);
    953953
  • issm/trunk-jpl/src/c/classes/Materials/Material.h

    r24377 r25379  
    1616class Gauss;
    1717class Input;
    18 class Input2;
     18class Input;
    1919/*}}}*/
    2020
     
    4949                virtual void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
    5050                virtual void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
    51                 virtual void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input)=0;
    52                 virtual void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input)=0;
    53                 virtual void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surf)=0;
    54                 virtual void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input)=0;
    55                 virtual void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble epseff)=0;
    56                 virtual void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble epseff)=0;
    57                 virtual void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* 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;
    5858
    5959};
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp

    r24379 r25379  
    155155        IssmDouble B;
    156156
    157         Input2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);
     157        Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input);
    158158        B_input->GetInputValue(&B,gauss);
    159159        return B;
     
    165165        IssmDouble Bbar;
    166166
    167         Input2* B_input = element->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);
     167        Input* B_input = element->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input);
    168168        B_input->GetInputValue(&Bbar,gauss);
    169169        return Bbar;
     
    184184        IssmDouble Ec;
    185185
    186         Input2* Ec_input = element->GetInput2(MaterialsRheologyEcEnum); _assert_(Ec_input);
     186        Input* Ec_input = element->GetInput(MaterialsRheologyEcEnum); _assert_(Ec_input);
    187187        Ec_input->GetInputValue(&Ec,gauss);
    188188        return Ec;
     
    194194        IssmDouble Ecbar;
    195195
    196         Input2* Ecbar_input = element->GetInput2(MaterialsRheologyEcbarEnum); _assert_(Ecbar_input);
     196        Input* Ecbar_input = element->GetInput(MaterialsRheologyEcbarEnum); _assert_(Ecbar_input);
    197197        Ecbar_input->GetInputValue(&Ecbar,gauss);
    198198        return Ecbar;
     
    204204        IssmDouble Es;
    205205
    206         Input2* Es_input = element->GetInput2(MaterialsRheologyEsEnum); _assert_(Es_input);
     206        Input* Es_input = element->GetInput(MaterialsRheologyEsEnum); _assert_(Es_input);
    207207        Es_input->GetInputValue(&Es,gauss);
    208208        return Es;
     
    214214        IssmDouble Esbar;
    215215
    216         Input2* Esbar_input = element->GetInput2(MaterialsRheologyEsbarEnum); _assert_(Esbar_input);
     216        Input* Esbar_input = element->GetInput(MaterialsRheologyEsbarEnum); _assert_(Esbar_input);
    217217        Esbar_input->GetInputValue(&Esbar,gauss);
    218218        return Esbar;
     
    393393}/*}}}*/
    394394
    395 void  Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff){/*{{{*/
     395void  Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){/*{{{*/
    396396
    397397        /*Intermediaries*/
     
    422422}
    423423/*}}}*/
    424 void  Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/
     424void  Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/
    425425
    426426        /*Intermediaries*/
     
    450450        *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
    451451}/*}}}*/
    452 void  Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/
     452void  Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/
    453453        /*Intermediaries*/
    454454        IssmDouble vx,vy,vz;
     
    480480        *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
    481481}/*}}}*/
    482 void  Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
     482void  Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
    483483
    484484        /*Intermediaries*/
     
    523523}
    524524/*}}}*/
    525 void  Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     525void  Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    526526
    527527        /*Intermediaries*/
     
    565565        *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
    566566}/*}}}*/
    567 void  Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* 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,Input2* vx_input,Input2* vy_input){/*{{{*/
     567void  Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/
     568        _error_("not implemented yet");
     569}/*}}}*/
     570void  Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    571571
    572572        /*Intermediaries*/
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.h

    r24377 r25379  
    7575                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
    7676
    77                 void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
    78                 void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    79                 void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surf);
    80                 void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    81                 void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff);
    82                 void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff);
    83                 void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* 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);
    8484                /*}}}*/
    8585                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  
    216216        /*Output*/
    217217        IssmDouble B;
    218         Input2* B_input = element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input);
     218        Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input);
    219219        B_input->GetInputValue(&B,gauss);
    220220        return B;
     
    228228        IssmDouble Bbar;
    229229
    230         Input2* B_input = element->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input);
     230        Input* B_input = element->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input);
    231231        B_input->GetInputValue(&Bbar,gauss);
    232232        return Bbar;
     
    239239        IssmDouble D;
    240240        if(this->isdamaged){
    241                 Input2* D_input = element->GetInput2(DamageDEnum); _assert_(D_input);
     241                Input* D_input = element->GetInput(DamageDEnum); _assert_(D_input);
    242242                D_input->GetInputValue(&D,gauss);
    243243        }
     
    254254        IssmDouble Dbar;
    255255        if(this->isdamaged){
    256                 Input2* D_input = element->GetInput2(DamageDbarEnum); _assert_(D_input);
     256                Input* D_input = element->GetInput(DamageDbarEnum); _assert_(D_input);
    257257                D_input->GetInputValue(&Dbar,gauss);
    258258        }
     
    268268        /*Output*/
    269269        IssmDouble E;
    270         Input2* E_input = element->GetInput2(MaterialsRheologyEEnum); _assert_(E_input);
     270        Input* E_input = element->GetInput(MaterialsRheologyEEnum); _assert_(E_input);
    271271        E_input->GetInputValue(&E,gauss);
    272272        return E;
     
    278278        /*Output*/
    279279        IssmDouble Ebar;
    280         Input2* E_input = element->GetInput2(MaterialsRheologyEbarEnum); _assert_(E_input);
     280        Input* E_input = element->GetInput(MaterialsRheologyEbarEnum); _assert_(E_input);
    281281        E_input->GetInputValue(&Ebar,gauss);
    282282        return Ebar;
     
    287287        /*Output*/
    288288        IssmDouble n;
    289         Input2* n_input = element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input);
     289        Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input);
    290290        n_input->GetInputAverage(&n);
    291291        return n;
     
    671671}/*}}}*/
    672672
    673 void  Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/
     673void  Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
    674674        /*The effective strain rate is defined in Paterson 3d Ed p 91 eq 9,
    675675         * and Cuffey p 303 eq 8.18:
     
    710710}
    711711/*}}}*/
    712 void  Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     712void  Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    713713
    714714        /*Intermediaries*/
     
    736736        *pviscosity=viscosity;
    737737}/*}}}*/
    738 void  Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/
     738void  Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/
    739739        /*Compute the L1L2 viscosity
    740740         *
     
    795795        *pviscosity = viscosity;
    796796}/*}}}*/
    797 void  Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/
     797void  Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
    798798
    799799        /*Intermediaries*/
  • issm/trunk-jpl/src/c/classes/Materials/Matice.h

    r24377 r25379  
    7777                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
    7878
    79                 void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input);
    80                 void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    81                 void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surf);
    82                 void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input);
    83                 void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* 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,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){_error_("not supported");};
    85                 void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* 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");};
    8686                /*}}}*/
    8787};
  • issm/trunk-jpl/src/c/classes/Materials/Matlitho.h

    r24377 r25379  
    6666                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
    6767
    68                 void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){_error_("not supported");};
    69                 void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){_error_("not supported");};
    70                 void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surf){_error_("not supported");};
    71                 void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){_error_("not supported");};
    72                 void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* 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,Input2* vx_input,Input2* vy_input,IssmDouble epseff){_error_("not supported");};
    74                 void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* 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");};
    7575
    7676                /*}}}*/
  • issm/trunk-jpl/src/c/classes/Misfit.cpp

    r24379 r25379  
    235235                 /*Now, the observation is buried inside the elements, go fish it in the first element (cludgy, needs fixing): */
    236236                 Element* element = (Element*)femmodel->elements->GetObjectByOffset(0); _assert_(element);
    237                  Input2*  input   = element->GetInput2(observation_enum); _assert_(input);
     237                 Input*  input   = element->GetInput(observation_enum); _assert_(input);
    238238                 input->GetInputAverage(&observation);
    239239
  • issm/trunk-jpl/src/c/classes/Radar.cpp

    r24379 r25379  
    128128
    129129        /*Retrieve all inputs we will be needing: */
    130         Input2* temp_input=element->GetInput2(TemperatureEnum); _assert_(temp_input);
    131         Input2* 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);
    132132
    133133        /* Start looping on the number of vertices: */
     
    187187
    188188                /*Add Attenuation rate results into inputs*/
    189            element->AddInput2(RadarAttenuationMacGregorEnum,&attenuation_rate_macgregor[0],P1Enum);
    190                 element->AddInput2(RadarAttenuationWolffEnum,&attenuation_rate_wolff[0],P1Enum);
     189           element->AddInput(RadarAttenuationMacGregorEnum,&attenuation_rate_macgregor[0],P1Enum);
     190                element->AddInput(RadarAttenuationWolffEnum,&attenuation_rate_wolff[0],P1Enum);
    191191
    192192                /*Clean up*/
     
    212212        /* Get node coordinates*/
    213213        element->GetVerticesCoordinates(&xyz_list);
    214         Input2 *atten_input_M07 = element->GetInput2(RadarAttenuationMacGregorEnum); _assert_(atten_input_M07);
    215         Input2 *atten_input_W97 = element->GetInput2(RadarAttenuationWolffEnum);     _assert_(atten_input_W97);
    216         Input2 *surf_input      = element->GetInput2(SurfaceEnum);                   _assert_(surf_input);
    217         Input2 *thick_input     = element->GetInput2(ThicknessEnum);                 _assert_(thick_input);
    218         Input2 *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);
    219219
    220220        /* Start looping on the number of vertices: */
     
    269269
    270270            /*Add power results into inputs*/
    271                         element->AddInput2(RadarPowerMacGregorEnum,&power_M07[0],P1Enum);
    272                         element->AddInput2(RadarPowerWolffEnum,&power_W97[0],P1Enum);
     271                        element->AddInput(RadarPowerMacGregorEnum,&power_M07[0],P1Enum);
     272                        element->AddInput(RadarPowerWolffEnum,&power_W97[0],P1Enum);
    273273
    274274                /*Clean up and return*/
  • issm/trunk-jpl/src/c/classes/classes.h

    r24938 r25379  
    6767#include "./Options/OptionUtilities.h"
    6868
    69 /*Inputs2*/
    70 #include "./Inputs2/Inputs2.h"
    71 #include "./Inputs2/Input2.h"
     69/*Inputs*/
     70#include "./Inputs/Inputs.h"
     71#include "./Inputs/Input.h"
    7272
    7373/*ExternalResults: */
  • issm/trunk-jpl/src/c/cores/gia_core.cpp

    r25080 r25379  
    66#include "../toolkits/toolkits.h"
    77#include "../classes/classes.h"
    8 #include "../classes/Inputs2/TriaInput2.h"
    9 #include "../classes/Inputs2/DatasetInput2.h"
     8#include "../classes/Inputs/TriaInput.h"
     9#include "../classes/Inputs/DatasetInput.h"
    1010#include "../shared/shared.h"
    1111#include "../modules/modules.h"
     
    7676
    7777                /*find the Ngia and Ugia dataset:*/
    78                 DatasetInput2* dataset_input_ngia=femmodel->inputs2->GetDatasetInput2(GiaMmeNgiaEnum);
    79                 DatasetInput2* 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);
    8080                /*Go find the modelid'th input:*/
    81                 TriaInput2* tria_input_ngia=dataset_input_ngia->GetTriaInputByOffset(modelid);
    82                 TriaInput2* tria_input_ugia=dataset_input_ugia->GetTriaInputByOffset(modelid);
     81                TriaInput* tria_input_ngia=dataset_input_ngia->GetTriaInputByOffset(modelid);
     82                TriaInput* tria_input_ugia=dataset_input_ugia->GetTriaInputByOffset(modelid);
    8383
    8484                /*Plug into SealevelUGiaRate and SealevelNGiaRate inputs:*/
    85                 Input2* tria_input_copy_ngia=tria_input_ngia->copy();
    86                 Input2* tria_input_copy_ugia=tria_input_ugia->copy();
     85                Input* tria_input_copy_ngia=tria_input_ngia->copy();
     86                Input* tria_input_copy_ugia=tria_input_ugia->copy();
    8787                tria_input_copy_ngia->ChangeEnum(NGiaRateEnum);
    8888                tria_input_copy_ugia->ChangeEnum(UGiaRateEnum);
    89                 femmodel->inputs2->AddInput(tria_input_copy_ngia);
    90                 femmodel->inputs2->AddInput(tria_input_copy_ugia);
     89                femmodel->inputs->AddInput(tria_input_copy_ngia);
     90                femmodel->inputs->AddInput(tria_input_copy_ugia);
    9191        }
    9292       
  • issm/trunk-jpl/src/c/cores/sealevelchange_core.cpp

    r25332 r25379  
    66#include "../toolkits/toolkits.h"
    77#include "../classes/classes.h"
    8 #include "../classes/Inputs2/TriaInput2.h"
    9 #include "../classes/Inputs2/TransientInput2.h"
    10 #include "../classes/Inputs2/DatasetInput2.h"
     8#include "../classes/Inputs/TriaInput.h"
     9#include "../classes/Inputs/TransientInput.h"
     10#include "../classes/Inputs/DatasetInput.h"
    1111#include "../shared/shared.h"
    1212#include "../modules/modules.h"
     
    7171                if(VerboseSolution()) _printf0_("   saving results\n");
    7272                femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SealevelriseRequestedOutputsEnum);
    73                 femmodel->inputs2->Echo();
     73                femmodel->inputs->Echo();
    7474                femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
    7575                if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
     
    226226
    227227                //reset cumdeltathickness  to 0:
    228                 InputUpdateFromConstantx(femmodel->inputs2,femmodel->elements,0.,SealevelriseCumDeltathicknessEnum);
     228                InputUpdateFromConstantx(femmodel->inputs,femmodel->elements,0.,SealevelriseCumDeltathicknessEnum);
    229229        }
    230230
     
    668668        femmodel->parameters->FindParam(&time,TimeEnum);
    669669        if(dslmodel==1){
    670                 TransientInput2* transient_input  = femmodel->inputs2->GetTransientInput(DslSeaSurfaceHeightChangeAboveGeoidEnum);
    671                 TriaInput2* tria_input=transient_input->GetTriaInput(time);
    672                 Input2* 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();
    673673                tria_input_copy->ChangeEnum(DslDynamicRateEnum);
    674                 femmodel->inputs2->AddInput(tria_input_copy);
     674                femmodel->inputs->AddInput(tria_input_copy);
    675675        }
    676676        else if(dslmodel==2){
     
    683683               
    684684                /*find the DslSeaSurfaceHeightChangeAboveGeoidEnum dataset of transient inputs:*/
    685                 DatasetInput2* dataset_input=femmodel->inputs2->GetDatasetInput2(DslSeaSurfaceHeightChangeAboveGeoidEnum);
     685                DatasetInput* dataset_input=femmodel->inputs->GetDatasetInput(DslSeaSurfaceHeightChangeAboveGeoidEnum);
    686686               
    687687                /*Go find the modelid'th transient input:*/
    688                 TriaInput2* tria_input=dataset_input->GetTriaInputByOffset(reCast<int, IssmDouble>(modelid));
     688                TriaInput* tria_input=dataset_input->GetTriaInputByOffset(reCast<int, IssmDouble>(modelid));
    689689               
    690690                /*Plug into DslDynamicRate input: */
    691                 Input2* tria_input_copy=tria_input->copy();
     691                Input* tria_input_copy=tria_input->copy();
    692692                tria_input_copy->ChangeEnum(DslDynamicRateEnum);
    693                 femmodel->inputs2->AddInput(tria_input_copy);
     693                femmodel->inputs->AddInput(tria_input_copy);
    694694        }
    695695        else _error_("not implemented yet");
     
    711711        femmodel->parameters->FindParam(&time,TimeEnum);
    712712        if(dslmodel==1){
    713                 TransientInput2* transient_input  = femmodel->inputs2->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum);
    714                 TriaInput2* tria_input=transient_input->GetTriaInput(time);
    715                 Input2* 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();
    716716                tria_input_copy->ChangeEnum(DslStericRateEnum);
    717                 femmodel->inputs2->AddInput(tria_input_copy);
     717                femmodel->inputs->AddInput(tria_input_copy);
    718718        }
    719719        else if (dslmodel==2){
     
    726726               
    727727                /*find the DslGlobalAverageThermostericSeaLevelChangeEnum dataset of transient inputs:*/
    728                 DatasetInput2* dataset_input=femmodel->inputs2->GetDatasetInput2(DslGlobalAverageThermostericSeaLevelChangeEnum);
     728                DatasetInput* dataset_input=femmodel->inputs->GetDatasetInput(DslGlobalAverageThermostericSeaLevelChangeEnum);
    729729               
    730730                /*Go find the modelid'th transient input:*/
    731                 TriaInput2* tria_input=dataset_input->GetTriaInputByOffset(reCast<int, IssmDouble>(modelid));
     731                TriaInput* tria_input=dataset_input->GetTriaInputByOffset(reCast<int, IssmDouble>(modelid));
    732732               
    733733                /*Plug into DslStericRate input: */
    734                 Input2* tria_input_copy=tria_input->copy();
     734                Input* tria_input_copy=tria_input->copy();
    735735                tria_input_copy->ChangeEnum(DslStericRateEnum);
    736                 femmodel->inputs2->AddInput(tria_input_copy);
     736                femmodel->inputs->AddInput(tria_input_copy);
    737737        }
    738738        else _error_("not implemented yet");
     
    753753                IssmDouble modelid;
    754754                /*figure out the type of DslSeaWaterPressureChangeAtSeaFloor input:*/
    755                 type=femmodel->inputs2->GetInputObjectEnum(DslSeaWaterPressureChangeAtSeaFloorEnum);
    756 
    757                 if(type==DatasetInput2Enum){
     755                type=femmodel->inputs->GetInputObjectEnum(DslSeaWaterPressureChangeAtSeaFloorEnum);
     756
     757                if(type==DatasetInputEnum){
    758758               
    759759                        /*find the DslSeaWaterPressureChangeAtSeaFloor dataset of transient inputs:*/
    760                         DatasetInput2* dataset_input=femmodel->inputs2->GetDatasetInput2(DslSeaWaterPressureChangeAtSeaFloorEnum);
     760                        DatasetInput* dataset_input=femmodel->inputs->GetDatasetInput(DslSeaWaterPressureChangeAtSeaFloorEnum);
    761761               
    762762                        /*Recover modelid:*/
     
    765765               
    766766                        /*Go find the modelid'th transient input:*/
    767                         TransientInput2* transient_input=dataset_input->GetTransientInputByOffset(reCast<int, IssmDouble>(modelid));
     767                        TransientInput* transient_input=dataset_input->GetTransientInputByOffset(reCast<int, IssmDouble>(modelid));
    768768
    769769                        /*Plug into DslSeaWaterPressureChangeAtSeaFloor input: */
    770                         Input2* transient_input_copy=transient_input->copy();
     770                        Input* transient_input_copy=transient_input->copy();
    771771                        transient_input_copy->ChangeEnum(DslSeaWaterPressureChangeAtSeaFloorEnum);
    772                         femmodel->inputs2->AddInput(transient_input_copy);
     772                        femmodel->inputs->AddInput(transient_input_copy);
    773773                }
    774774        }
  • issm/trunk-jpl/src/c/main/esmfbinders.cpp

    r24335 r25379  
    114114
    115115                                                /*Recover surface from the ISSM element: */
    116                                                 Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input);
     116                                                Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);
    117117                                                surface_input->GetInputAverage(&surface);
    118118
  • issm/trunk-jpl/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp

    r24335 r25379  
    99#include "../../classes/classes.h"
    1010
    11 int     ConfigureObjectsx( Elements* elements, Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs2* inputs2){
     11int     ConfigureObjectsx( Elements* elements, Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters,Inputs* inputs){
    1212
    1313        /*Get analysis type: */
     
    1818        for(int i=0;i<elements->Size();i++){
    1919                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    20                 element->Configure(elements,loads,nodes,vertices,materials,parameters,inputs2);
     20                element->Configure(elements,loads,nodes,vertices,materials,parameters,inputs);
    2121        }
    2222        if(VerboseMProcessor()) _printf0_("      Configuring loads...\n");
     
    3131        }
    3232        if(VerboseMProcessor()) _printf0_("      Configuring inputs...\n");
    33         inputs2->Configure(parameters);
     33        inputs->Configure(parameters);
    3434
    3535        return 1;
  • issm/trunk-jpl/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.h

    r24335 r25379  
    99
    1010/* local prototypes: */
    11 int ConfigureObjectsx( Elements* elements, Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials, Parameters* parameters,Inputs2* inputs2);
     11int ConfigureObjectsx( Elements* elements, Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials, Parameters* parameters,Inputs* inputs);
    1212
    1313#endif  /* _CONFIGUREOBJECTSX_H */
  • issm/trunk-jpl/src/c/modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.cpp

    r25366 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void DragCoefficientAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    6161
    6262        /*Retrieve all inputs we will be needing: */
    63         DatasetInput2* weights_input=basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
     63        DatasetInput* weights_input=basalelement->GetDatasetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
    6464
    6565        /* get the friction law: if 11-Schoof, which has a different name of C */
    6666        element->FindParam(&frictionlaw, FrictionLawEnum);
    67         Input2* drag_input;
     67        Input* drag_input;
    6868        switch(frictionlaw) {
    6969                case 2:
    7070                case 11:
    71                         drag_input = basalelement->GetInput2(FrictionCEnum); _assert_(drag_input);
     71                        drag_input = basalelement->GetInput(FrictionCEnum); _assert_(drag_input);
    7272                        break;
    7373                default:
    74                         drag_input = basalelement->GetInput2(FrictionCoefficientEnum); _assert_(drag_input);
     74                        drag_input = basalelement->GetInput(FrictionCoefficientEnum); _assert_(drag_input);
    7575        }
    7676
  • issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatePicox/FloatingiceMeltingRatePicox.cpp

    r24861 r25379  
    1818                int numvertices = element->GetNumberOfVertices();
    1919                IssmDouble* values = xNewZeroInit<IssmDouble>(numvertices);
    20                 element->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
     20                element->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
    2121                xDelete<IssmDouble>(values);
    2222        }
     
    169169                if(el_boxid!=boxid) continue;
    170170
    171                 Input2* tocs_input=basalelement->GetInput2(BasalforcingsPicoSubShelfOceanTempEnum); _assert_(tocs_input);
    172                 Input2* 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);
    173173
    174174                basalelement->GetInputValue(&basinid,BasalforcingsPicoBasinIdEnum);
     
    210210                        if(el_boxid!=boxid) continue;
    211211
    212                 Input2* overturnings_input=basalelement->GetInput2(BasalforcingsPicoSubShelfOceanOverturningEnum); _assert_(overturnings_input);
     212                Input* overturnings_input=basalelement->GetInput(BasalforcingsPicoSubShelfOceanOverturningEnum); _assert_(overturnings_input);
    213213
    214214                        basalelement->GetInputValue(&basinid,BasalforcingsPicoBasinIdEnum);
  • issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp

    r24335 r25379  
    66#include "../../shared/shared.h"
    77#include "../../toolkits/toolkits.h"
    8 #include "./../../classes/Inputs2/DatasetInput2.h"
     8#include "./../../classes/Inputs/DatasetInput.h"
    99
    1010void FloatingiceMeltingRatex(FemModel* femmodel){/*{{{*/
     
    103103                if(!element->IsIceInElement() || !element->IsFloating() || !element->IsOnBase()){
    104104                        IssmDouble* values = xNewZeroInit<IssmDouble>(numvertices);
    105                         element->AddInput2(BasalforcingsFloatingiceMeltingRateEnum,values,P1DGEnum);
    106                         element->AddInput2(BasalforcingsIsmip6TfShelfEnum,values,P1DGEnum);
     105                        element->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1DGEnum);
     106                        element->AddInput(BasalforcingsIsmip6TfShelfEnum,values,P1DGEnum);
    107107                        xDelete<IssmDouble>(values);
    108108                        continue;
     
    112112                IssmDouble*    tf_test        = xNew<IssmDouble>(numvertices);
    113113                IssmDouble*    depth_vertices = xNew<IssmDouble>(numvertices);
    114                 DatasetInput2* tf_input = element->GetDatasetInput2(BasalforcingsIsmip6TfEnum); _assert_(tf_input);
     114                DatasetInput* tf_input = element->GetDatasetInput(BasalforcingsIsmip6TfEnum); _assert_(tf_input);
    115115
    116116                element->GetInputListOnVertices(&depth_vertices[0],BaseEnum);
     
    149149                }
    150150
    151                 element->AddInput2(BasalforcingsIsmip6TfShelfEnum,tf_test,P1DGEnum);
     151                element->AddInput(BasalforcingsIsmip6TfShelfEnum,tf_test,P1DGEnum);
    152152                xDelete<IssmDouble>(tf_test);
    153153                xDelete<IssmDouble>(depth_vertices);
     
    162162                        /*Spawn basal element if on base to compute element area*/
    163163                        Element* basalelement = element->SpawnBasalElement();
    164                         Input2* tf_input=basalelement->GetInput2(BasalforcingsIsmip6TfShelfEnum); _assert_(tf_input);
     164                        Input* tf_input=basalelement->GetInput(BasalforcingsIsmip6TfShelfEnum); _assert_(tf_input);
    165165                        basalelement->GetInputValue(&basinid,BasalforcingsIsmip6BasinIdEnum);
    166166                        Gauss* gauss=basalelement->NewGauss(1); gauss->GaussPoint(0);
  • issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp

    r24335 r25379  
    8787        /*We go find the input of the first element, and query its interpolation type: */
    8888        Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(0));
    89         Input2* input=element->GetInput2(name);
     89        Input* input=element->GetInput(name);
    9090        if (!input) _error_("could not find input: " << name);
    9191
  • issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp

    r24335 r25379  
    99
    1010void InputDuplicatex(FemModel* femmodel,int original_enum, int new_enum){
    11         femmodel->inputs2->DuplicateInput(original_enum,new_enum);
     11        femmodel->inputs->DuplicateInput(original_enum,new_enum);
    1212}
  • issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.cpp

    r24374 r25379  
    66#include "../../shared/shared.h"
    77#include "../../toolkits/toolkits.h"
    8 #include "../../classes/Inputs2/Inputs2.h"
     8#include "../../classes/Inputs/Inputs.h"
    99
    1010void InputUpdateFromConstantx(FemModel* femmodel,bool constant, int name){
     
    5050        }
    5151}
    52 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,IssmDouble constant, int name){
     52void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,IssmDouble constant, int name){
    5353
    5454        if(VerboseModule()) _printf0_("   Input updates from constant\n");
     
    5757        for(int i=0;i<elements->Size();i++){
    5858                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    59                 element->SetElementInput(inputs2,name,constant);
     59                element->SetElementInput(inputs,name,constant);
    6060        }
    6161}
    62 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,bool constant, int name){
     62void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,bool constant, int name){
    6363
    6464        if(VerboseModule()) _printf0_("   Input updates from constant\n");
     
    6767        for(int i=0;i<elements->Size();i++){
    6868                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    69                 element->SetBoolInput(inputs2,name,constant);
     69                element->SetBoolInput(inputs,name,constant);
    7070        }
    7171}
    7272#ifdef _HAVE_AD_
    73 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,IssmPDouble constant, int name){
     73void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,IssmPDouble constant, int name){
    7474
    7575        if(VerboseModule()) _printf0_("   Input updates from constant\n");
     
    8181        for(int i=0;i<elements->Size();i++){
    8282                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    83                 element->SetElementInput(inputs2,name,constant2);
     83                element->SetElementInput(inputs,name,constant2);
    8484        }
    8585}
  • issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.h

    r24374 r25379  
    77
    88#include "../../classes/classes.h"
    9 class Inputs2;
     9class Inputs;
    1010
    1111/* local prototypes: */
     
    1414void InputUpdateFromConstantx(FemModel* femmodel,IssmDouble constant,int name);
    1515#ifdef _HAVE_AD_
    16 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,IssmPDouble constant,int name);
     16void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,IssmPDouble constant,int name);
    1717#endif
    18 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,IssmDouble constant,int name);
    19 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,bool       constant,int name);
     18void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,IssmDouble constant,int name);
     19void InputUpdateFromConstantx(Inputs* inputs,Elements* elements,bool       constant,int name);
    2020
    2121#endif  /* _UPDATEINPUTSFROMCONSTANTXX_H */
  • issm/trunk-jpl/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp

    r25305 r25379  
    66#include "../../shared/shared.h"
    77#include "../../toolkits/toolkits.h"
    8 #include "../../classes/Inputs2/TransientInput2.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
    10 #include "../../classes/Inputs2/TriaInput2.h"
     8#include "../../classes/Inputs/TransientInput.h"
     9#include "../../classes/Inputs/DatasetInput.h"
     10#include "../../classes/Inputs/TriaInput.h"
    1111#include "../InputUpdateFromMatrixDakotax/InputUpdateFromMatrixDakotax.h"
    1212#include "../InputUpdateFromConstantx/InputUpdateFromConstantx.h"
     
    169169
    170170
    171                 if (femmodel->inputs2->GetInputObjectEnum(SurfaceloadIceThicknessChangeEnum)==DatasetInput2Enum)
     171                if (femmodel->inputs->GetInputObjectEnum(SurfaceloadIceThicknessChangeEnum)==DatasetInputEnum)
    172172                        MmeToInput(femmodel,distributed_values,variable_partition,npart,SurfaceloadIceThicknessChangeEnum, P0Enum);
    173173
    174                 if (femmodel->inputs2->GetInputObjectEnum(MaskIceLevelsetEnum)==DatasetInput2Enum)
     174                if (femmodel->inputs->GetInputObjectEnum(MaskIceLevelsetEnum)==DatasetInputEnum)
    175175                        MmeToInput(femmodel,distributed_values,variable_partition,npart,MaskIceLevelsetEnum, P1Enum);
    176176
    177                 if (femmodel->inputs2->GetInputObjectEnum(MaskOceanLevelsetEnum)==DatasetInput2Enum)
     177                if (femmodel->inputs->GetInputObjectEnum(MaskOceanLevelsetEnum)==DatasetInputEnum)
    178178                        MmeToInput(femmodel,distributed_values,variable_partition,npart,MaskOceanLevelsetEnum, P1Enum);
    179179
     
    184184void  MmeToInput(FemModel* femmodel,IssmDouble* distributed_values,IssmDouble* variable_partition,int npart,int rootenum, int interpolationenum){ /*{{{*/
    185185
    186         TransientInput2* transientinput  = NULL;
    187         TransientInput2* transientinput2 = NULL;
     186        TransientInput* transientinput  = NULL;
     187        TransientInput* transientinput2 = NULL;
    188188        Tria* element                    = NULL;
    189189        IssmDouble value;
     
    194194
    195195        /*find thickness dataset: */
    196         DatasetInput2* datasetinput = femmodel->inputs2->GetDatasetInput2(rootenum);
     196        DatasetInput* datasetinput = femmodel->inputs->GetDatasetInput(rootenum);
    197197
    198198        /*Initialize new transient input: */
    199199        transientinput = datasetinput->GetTransientInputByOffset(0); _assert_(transientinput);
    200200        transientinput->GetAllTimes(&times,&N);
    201         femmodel->inputs2->SetTransientInput(DummyEnum,times,N);
    202         transientinput2 = femmodel->inputs2->GetTransientInput(DummyEnum);
     201        femmodel->inputs->SetTransientInput(DummyEnum,times,N);
     202        transientinput2 = femmodel->inputs->GetTransientInput(DummyEnum);
    203203               
    204204        for (int i=0;i<femmodel->elements->Size();i++){
     
    214214                /*copy values from the transientinput to the final transientinput2: */
    215215                for (int j=0;j<N;j++){
    216                         TriaInput2* tria_input=transientinput->GetTriaInput(j);
     216                        TriaInput* tria_input=transientinput->GetTriaInput(j);
    217217                        element->InputServe(tria_input);
    218218                        if(interpolationenum==P0Enum){
     
    237237
    238238        /*wipe out existing SurfaceloadIceThicknessChangeEnum dataset:*/
    239         femmodel->inputs2->ChangeEnum(DummyEnum,rootenum);
     239        femmodel->inputs->ChangeEnum(DummyEnum,rootenum);
    240240
    241241        //reconfigure:
     
    245245
    246246        /*Copy input:*/
    247         femmodel->inputs2->DuplicateInput(name,DummyEnum);
     247        femmodel->inputs->DuplicateInput(name,DummyEnum);
    248248
    249249        /*Go through elements, copy input name to dummy, and scale it using the distributed_values and the partition vector:*/
     
    255255        /*We created a dummy input, which was a scaled copy of the name input. Now wipe
    256256         * out the name input with the new input:*/
    257         femmodel->inputs2->ChangeEnum(DummyEnum,name);
     257        femmodel->inputs->ChangeEnum(DummyEnum,name);
    258258
    259259        /*Some specialty code:*/
    260260        switch(name){
    261261                case MaterialsRheologyBEnum:
    262                         femmodel->inputs2->DuplicateInput(name,MaterialsRheologyBbarEnum);
     262                        femmodel->inputs->DuplicateInput(name,MaterialsRheologyBbarEnum);
    263263                        break;
    264264        }
  • issm/trunk-jpl/src/c/modules/KillIcebergsx/KillIcebergsx.cpp

    r24376 r25379  
    114114                                IssmDouble* values = xNew<IssmDouble>(numvertices);
    115115                                for(int j=0;j<numvertices;j++) values[j] = 1.; /*Anything >0 = no ice*/
    116                                 element->AddInput2(MaskIceLevelsetEnum,values,P1Enum);
     116                                element->AddInput(MaskIceLevelsetEnum,values,P1Enum);
    117117                                xDelete<IssmDouble>(values);
    118118                        }
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp

    r25337 r25379  
    99#include "../ModelProcessorx.h"
    1010
    11 void    UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs2* inputs2,Materials* materials, IoModel* iomodel){
     11void    UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel){
    1212        /*Intermediary*/
    1313        bool       control_analysis;
     
    3434        iomodel->FindConstant(&isautodiff,"md.autodiff.isautodiff");
    3535        if(isautodiff){
    36                 UpdateElementsAndMaterialsControlAD(elements,parameters,inputs2,materials,iomodel);
     36                UpdateElementsAndMaterialsControlAD(elements,parameters,inputs,materials,iomodel);
    3737                return;
    3838        }
     
    7272        for(int i=0;i<num_cost_functions;i++){
    7373                cost_function=cost_function_enums[i];
    74                 if(     cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(inputs2,elements,"md.inversion.thickness_obs",InversionThicknessObsEnum);
    75                 else if(cost_function==SurfaceAbsMisfitEnum)   iomodel->FetchDataToInput(inputs2,elements,"md.inversion.surface_obs",InversionSurfaceObsEnum);
    76                 else if(cost_function==RheologyBInitialguessMisfitEnum) iomodel->FetchDataToInput(inputs2,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);
    7777                else if(cost_function==SurfaceAbsVelMisfitEnum
    7878                          || cost_function==SurfaceRelVelMisfitEnum
     
    8080                          || cost_function==SurfaceLogVxVyMisfitEnum
    8181                          || cost_function==SurfaceAverageVelMisfitEnum){
    82                         iomodel->FetchDataToInput(inputs2,elements,"md.inversion.vx_obs",InversionVxObsEnum);
    83                         if(domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(inputs2,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);
    8484                }
    8585                for(int j=0;j<elements->Size();j++){
    8686                        Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    87                         element->DatasetInputAdd(InversionCostFunctionsCoefficientsEnum,&weights[i*iomodel->numberofvertices],inputs2,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);
    8888                }
    8989        }
     
    162162                for(int j=0;j<elements->Size();j++){
    163163                        Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    164                         element->ControlInputCreate(independent,&independents_min[offset],&independents_max[offset],inputs2,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);
    165165                }
    166166                xDelete<IssmDouble>(independent);
     
    207207        xDelete<char*>(controls);
    208208}
    209 void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs2* inputs2,Materials* materials, IoModel* iomodel){
     209void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel){
    210210
    211211        #if defined(_HAVE_AD_)
     
    292292                        for(int j=0;j<elements->Size();j++){
    293293                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    294                                 element->ControlInputCreate(independent,independents_min,independents_max,inputs2,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);
    295295                        }
    296296                        xDelete<IssmDouble>(independent);
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r25229 r25379  
    8585
    8686}/*}}}*/
    87 void CreateMaterials(Elements* elements,Inputs2* inputs2,Materials* materials,IoModel* iomodel,const int nummodels){/*{{{*/
     87void CreateMaterials(Elements* elements,Inputs* inputs,Materials* materials,IoModel* iomodel,const int nummodels){/*{{{*/
    8888
    8989        /*Intermediary*/
     
    102102        switch(materials_type){
    103103                case MaticeEnum:
    104                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    105                         iomodel->FetchDataToInput(inputs2,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);
    106106                        for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel));
    107107                        switch(iomodel->domaindim){
    108108                                case 2:
    109                                         inputs2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     109                                        inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    110110                                        break;
    111111                                case 3:
     
    116116                        break;
    117117                case MatenhancediceEnum:
    118                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    119                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    120                         iomodel->FetchDataToInput(inputs2,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);
    121121                        for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel));
    122122                        switch(iomodel->domaindim){
    123123                                case 2:
    124                                         inputs2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    125                                         inputs2->DuplicateInput(MaterialsRheologyEEnum,MaterialsRheologyEbarEnum);
     124                                        inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     125                                        inputs->DuplicateInput(MaterialsRheologyEEnum,MaterialsRheologyEbarEnum);
    126126                                        break;
    127127                                case 3:
     
    132132                        break;
    133133                case MatdamageiceEnum:
    134                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    135                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    136                         iomodel->FetchDataToInput(inputs2,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);
    137137                        for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel));
    138138                        switch(iomodel->domaindim){
    139139                                case 2:
    140                                         inputs2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    141                                         inputs2->DuplicateInput(DamageDEnum,DamageDbarEnum);
     140                                        inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     141                                        inputs->DuplicateInput(DamageDEnum,DamageDbarEnum);
    142142                                        break;
    143143                                case 3:
     
    148148                        break;
    149149                case MatestarEnum:
    150                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    151                         iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum);
    152                         iomodel->FetchDataToInput(inputs2,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);
    153153                        for(i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matestar(i+1,i,iomodel));
    154154                        switch(iomodel->domaindim){
    155155                                case 2:
    156                                         inputs2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    157                                         inputs2->DuplicateInput(MaterialsRheologyEcEnum,MaterialsRheologyEcbarEnum);
    158                                         inputs2->DuplicateInput(MaterialsRheologyEsEnum,MaterialsRheologyEsbarEnum);
     156                                        inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     157                                        inputs->DuplicateInput(MaterialsRheologyEcEnum,MaterialsRheologyEcbarEnum);
     158                                        inputs->DuplicateInput(MaterialsRheologyEsEnum,MaterialsRheologyEsbarEnum);
    159159                                        break;
    160160                                case 3:
     
    182182                                switch(IoCodeToEnumNature(nature[i])){ //{{{
    183183                                        case MaticeEnum:
    184                                                 iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    185                                                 iomodel->FetchDataToInput(inputs2,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);
    186186                                                for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel));
    187187                                                switch(iomodel->domaindim){
    188188                                                        case 2:
    189                                                                 inputs2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     189                                                                inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    190190                                                                break;
    191191                                                        case 3:
     
    234234
    235235                                        case MatenhancediceEnum:
    236                                                 iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    237                                                 iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    238                                                 iomodel->FetchDataToInput(inputs2,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);
    239239                                                for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel));
    240240                                                switch(iomodel->domaindim){
    241241                                                        case 2:
    242                                                                 inputs2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    243                                                                 inputs2->DuplicateInput(MaterialsRheologyEEnum,MaterialsRheologyEbarEnum);
     242                                                                inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     243                                                                inputs->DuplicateInput(MaterialsRheologyEEnum,MaterialsRheologyEbarEnum);
    244244                                                                break;
    245245                                                        case 3:
     
    250250                                                break;
    251251                                        case MatdamageiceEnum:
    252                                                 iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    253                                                 iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_n",MaterialsRheologyNEnum);
    254                                                 iomodel->FetchDataToInput(inputs2,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);
    255255                                                for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel));
    256256                                                switch(iomodel->domaindim){
    257257                                                        case 2:
    258                                                                 inputs2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    259                                                                 inputs2->DuplicateInput(DamageDEnum,DamageDbarEnum);
     258                                                                inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     259                                                                inputs->DuplicateInput(DamageDEnum,DamageDbarEnum);
    260260                                                                break;
    261261                                                        case 3:
     
    266266                                                break;
    267267                                        case MatestarEnum:
    268                                                 iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_B",MaterialsRheologyBEnum);
    269                                                 iomodel->FetchDataToInput(inputs2,elements,"md.materials.rheology_Ec",MaterialsRheologyEcEnum);
    270                                                 iomodel->FetchDataToInput(inputs2,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);
    271271                                                for(i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matestar(i+1,i,iomodel));
    272272                                                switch(iomodel->domaindim){
    273273                                                        case 2:
    274                                                                 inputs2->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    275                                                                 inputs2->DuplicateInput(MaterialsRheologyEcEnum,MaterialsRheologyEcbarEnum);
    276                                                                 inputs2->DuplicateInput(MaterialsRheologyEsEnum,MaterialsRheologyEsbarEnum);
     274                                                                inputs->DuplicateInput(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     275                                                                inputs->DuplicateInput(MaterialsRheologyEcEnum,MaterialsRheologyEcbarEnum);
     276                                                                inputs->DuplicateInput(MaterialsRheologyEsEnum,MaterialsRheologyEsbarEnum);
    277277                                                                break;
    278278                                                        case 3:
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp

    r24335 r25379  
    88#include "./ModelProcessorx.h"
    99
    10 void CreateOutputDefinitions(Elements* elements,Parameters* parameters,Inputs2* inputs2,IoModel* iomodel){
     10void CreateOutputDefinitions(Elements* elements,Parameters* parameters,Inputs* inputs,IoModel* iomodel){
    1111
    1212        int i,j;
     
    120120                                        for(int k=0;k<elements->Size();k++){
    121121                                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k));
    122                                                 element->InputCreate(misfit_observation_s[j],inputs2,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],inputs2,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);
    124124                                        }
    125125
     
    210210                                        for(int k=0;k<elements->Size();k++){
    211211                                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k));
    212                                                 element->DatasetInputAdd(StringToEnumx(cfsurfacesquare_definitionstring_s[j]),cfsurfacesquare_observation_s[j],inputs2,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],inputs2,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);
    214214
    215215                                        }
     
    282282                                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k));
    283283
    284                                                 element->DatasetInputAdd(StringToEnumx(cfdragcoeffabsgrad_definitionstring_s[j]),cfdragcoeffabsgrad_weights_s[j],inputs2,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);
    285285
    286286                                        }
     
    365365                                                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k));
    366366
    367                                                 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vxobs[j],inputs2,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],inputs2,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],inputs2,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);
    370370
    371371                                        }
     
    591591                                for(int i=0;i<num_cost_functions;i++){
    592592                                        cost_function=cost_function_enums[i];
    593                                         if(     cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(inputs2,elements,"md.numberedcostfunction.thickness_obs",InversionThicknessObsEnum);
    594                                         else if(cost_function==SurfaceAbsMisfitEnum)   iomodel->FetchDataToInput(inputs2,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);
    595595                                        else if(cost_function==SurfaceAbsVelMisfitEnum
    596596                                                        || cost_function==SurfaceRelVelMisfitEnum
     
    598598                                                        || cost_function==SurfaceLogVxVyMisfitEnum
    599599                                                        || cost_function==SurfaceAverageVelMisfitEnum){
    600                                                 iomodel->FetchDataToInput(inputs2,elements,"md.numberedcostfunction.vx_obs",InversionVxObsEnum);
    601                                                 if(domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(inputs2,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);
    602602                                        }
    603603                                }
     
    608608                                        for(int k=0;k<elements->Size();k++){
    609609                                                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,inputs2,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);
    611611                                        }
    612612                                        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  
    99#include "../ModelProcessorx.h"
    1010
    11 void    UpdateElementsAndMaterialsDakota(Elements* elements,Inputs2* inputs2,Materials* materials, IoModel* iomodel){
     11void    UpdateElementsAndMaterialsDakota(Elements* elements,Inputs* inputs,Materials* materials, IoModel* iomodel){
    1212
    1313        /*recover parameters: */
     
    1515        iomodel->FindConstant(&dakota_analysis,"md.qmu.isdakota");
    1616
    17         if(dakota_analysis) iomodel->FetchDataToInput(inputs2,elements,"md.geometry.hydrostatic_ratio",GeometryHydrostaticRatioEnum,0.);
     17        if(dakota_analysis) iomodel->FetchDataToInput(inputs,elements,"md.geometry.hydrostatic_ratio",GeometryHydrostaticRatioEnum,0.);
    1818}
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp

    r24630 r25379  
    1313#include "./ModelProcessorx.h"
    1414
    15 void ModelProcessorx(Elements** pelements, Nodes*** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints*** pconstraints, Loads*** ploads, Parameters** pparameters,Inputs2** pinputs2,IoModel* iomodel,FILE* toolkitfile, char* rootpath,const int solution_enum,const int nummodels,const int* analysis_enum_list){
     15void 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){
    1616        _assert_(nummodels>0);
    1717
     
    4343        CreateParameters(parameters,iomodel,rootpath,toolkitfile,solution_enum);
    4444
    45         /*Should move to CreateInputs2*/
    46         Inputs2 *inputs2 = new Inputs2(elements->Size(),vertices->Size());
    47         if (iomodel->domaintype != Domain3DsurfaceEnum) iomodel->FetchDataToInput(inputs2,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.);
    4848
    4949        /*Can now do Materials since we have created Inputs*/
    50         CreateMaterials(elements,inputs2,materials,iomodel,nummodels);
     50        CreateMaterials(elements,inputs,materials,iomodel,nummodels);
    5151
    5252        /*Update datasets based on each analysis (and add nodes, constrains and loads)*/
     
    6060                analysis->UpdateParameters(parameters,iomodel,solution_enum,analysis_enum);
    6161                analysis->CreateNodes(nodes[i],iomodel);
    62                 analysis->UpdateElements(elements,inputs2,iomodel,i,analysis_enum);
     62                analysis->UpdateElements(elements,inputs,iomodel,i,analysis_enum);
    6363                analysis->CreateConstraints(constraints[i],iomodel);
    6464                analysis->CreateLoads(loads[i],iomodel);
     
    7676        /*Solution specific updates*/
    7777        if(VerboseMProcessor()) _printf0_("   updating elements and materials for control parameters" << "\n");
    78         UpdateElementsAndMaterialsControl(elements,parameters,inputs2,materials,iomodel);
     78        UpdateElementsAndMaterialsControl(elements,parameters,inputs,materials,iomodel);
    7979        #ifdef _HAVE_DAKOTA_
    8080        if(VerboseMProcessor()) _printf0_("   updating elements and materials for uncertainty quantification" << "\n");
    81         UpdateElementsAndMaterialsDakota(elements,inputs2,materials,iomodel);
     81        UpdateElementsAndMaterialsDakota(elements,inputs,materials,iomodel);
    8282        #endif
    83         if(solution_enum==TransientSolutionEnum) UpdateElementsTransient(elements,parameters,inputs2,iomodel);
     83        if(solution_enum==TransientSolutionEnum) UpdateElementsTransient(elements,parameters,inputs,iomodel);
    8484
    8585        /*Output definitions dataset: */
    8686        if(VerboseMProcessor()) _printf0_("   creating output definitions" << "\n");
    87         CreateOutputDefinitions(elements,parameters,inputs2,iomodel);
     87        CreateOutputDefinitions(elements,parameters,inputs,iomodel);
    8888
    8989        /* Sort datasets:
     
    103103        *ploads       = loads;
    104104        *pparameters  = parameters;
    105         *pinputs2     = inputs2;
     105        *pinputs     = inputs;
    106106
    107107        if(VerboseMProcessor()) _printf0_("   done with model processor \n");
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.h

    r24335 r25379  
    99#include "../../analyses/analyses.h"
    1010
    11 void ModelProcessorx(Elements** pelements, Nodes*** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints*** pconstraints, Loads*** ploads, Parameters** pparameters,Inputs2** pinputs2,IoModel* iomodel,FILE* toolkitfile, char* rootpath,const int solution_type,const int nummodels,const int* analysis_type_listh);
     11void 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);
    1212
    1313/*Creation of fem datasets: general drivers*/
    1414void CreateElements(Elements* elements,IoModel* iomodel,int nummodels);
    15 void CreateMaterials(Elements* elements,Inputs2* inputs2,Materials* materials,IoModel* iomodel,int nummodels);
     15void CreateMaterials(Elements* elements,Inputs* inputs,Materials* materials,IoModel* iomodel,int nummodels);
    1616void CreateVertices(Elements* elements,Vertices* vertices,IoModel* iomodel,int solution_type,bool isamr=false);
    1717void CreateParameters(Parameters*parameters,IoModel* iomodel,char* rootpath,FILE* toolkitfile,const int solution_type);
     
    1919void CreateParametersControl(Parameters* parameters,IoModel* iomodel,int solution_type);
    2020void CreateParametersDakota(Parameters* parameters,IoModel* iomodel,char* rootpath);
    21 void CreateOutputDefinitions(Elements* elements, Parameters* parameters,Inputs2* inputs2,IoModel* iomodel);
    22 void UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs2* inputs2,Materials* materials, IoModel* iomodel);
    23 void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs2* inputs2,Materials* materials, IoModel* iomodel);
    24 void UpdateElementsAndMaterialsDakota(Elements* elements,Inputs2* inputs2,Materials* materials, IoModel* iomodel);
    25 void UpdateElementsTransient(Elements* elements,Parameters* parameters,Inputs2* inputs2,IoModel* iomodel);
     21void CreateOutputDefinitions(Elements* elements, Parameters* parameters,Inputs* inputs,IoModel* iomodel);
     22void UpdateElementsAndMaterialsControl(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel);
     23void UpdateElementsAndMaterialsControlAD(Elements* elements,Parameters* parameters,Inputs* inputs,Materials* materials, IoModel* iomodel);
     24void UpdateElementsAndMaterialsDakota(Elements* elements,Inputs* inputs,Materials* materials, IoModel* iomodel);
     25void UpdateElementsTransient(Elements* elements,Parameters* parameters,Inputs* inputs,IoModel* iomodel);
    2626void CreateNodes(Nodes*nodes, IoModel* iomodel,int analysis,int finite_element,bool isamr=false,int approximation=NoneApproximationEnum,int* approximations=NULL);
    2727
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/Transient/UpdateElementsTransient.cpp

    r24335 r25379  
    99#include "../ModelProcessorx.h"
    1010
    11 void    UpdateElementsTransient(Elements* elements, Parameters* parameters,Inputs2* inputs2,IoModel* iomodel){
     11void    UpdateElementsTransient(Elements* elements, Parameters* parameters,Inputs* inputs,IoModel* iomodel){
    1212
    1313        /*FIXME: this should go into parameterization update*/
     
    1717
    1818        if(isgroundingline){
    19                 iomodel->FetchDataToInput(inputs2,elements,"md.geometry.bed",BedEnum);
     19                iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
    2020        }
    2121}
  • issm/trunk-jpl/src/c/modules/RheologyBAbsGradientx/RheologyBAbsGradientx.cpp

    r24335 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void RheologyBAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    5454
    5555        /*Retrieve all inputs we will be needing: */
    56         DatasetInput2* weights_input=element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    57         Input2* 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);
    5858
    5959        /* Start  looping on the number of gaussian points: */
     
    125125
    126126        /*Retrieve all inputs we will be needing: */
    127         DatasetInput2* weights_input=element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    128         Input2* rheologyb_input=element->GetInput2(MaterialsRheologyBbarEnum);            _assert_(rheologyb_input);
    129         Input2* 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);
    130130
    131131        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.cpp

    r24335 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void RheologyBbarAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    6060
    6161        /*Retrieve all inputs we will be needing: */
    62         DatasetInput2* weights_input=basalelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    63         Input2* 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);
    6464
    6565        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp

    r25338 r25379  
    2727                        case TaylorHoodEnum:case XTaylorHoodEnum:case LATaylorHoodEnum:
    2828                        case CrouzeixRaviartEnum:case LACrouzeixRaviartEnum:case OneLayerP4zEnum:{
    29                                 Input2* input=element->GetInput2(IceMaskNodeActivationEnum);
     29                                Input* input=element->GetInput(IceMaskNodeActivationEnum);
    3030                                if(!input) _error_("Input " << EnumToStringx(IceMaskNodeActivationEnum) << " not found in element");
    3131
  • issm/trunk-jpl/src/c/modules/SurfaceAbsVelMisfitx/SurfaceAbsVelMisfitx.cpp

    r24335 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void SurfaceAbsVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    6060
    6161        /*Retrieve all inputs we will be needing: */
    62         DatasetInput2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    63         Input2* vx_input     =topelement->GetInput2(VxEnum);                                 _assert_(vx_input);
    64         Input2* vxobs_input  =topelement->GetInput2(InversionVxObsEnum);                     _assert_(vxobs_input);
    65         Input2* vy_input     = NULL;
    66         Input2* 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;
    6767        if(numcomponents==2){
    68                 vy_input    =topelement->GetInput2(VyEnum);              _assert_(vy_input);
    69                 vyobs_input =topelement->GetInput2(InversionVyObsEnum);  _assert_(vyobs_input);
     68                vy_input    =topelement->GetInput(VyEnum);              _assert_(vy_input);
     69                vyobs_input =topelement->GetInput(InversionVyObsEnum);  _assert_(vyobs_input);
    7070        }
    7171
  • issm/trunk-jpl/src/c/modules/SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.cpp

    r24716 r25379  
    88#include "../../toolkits/toolkits.h"
    99#include "../SurfaceAreax/SurfaceAreax.h"
    10 #include "../../classes/Inputs2/DatasetInput2.h"
     10#include "../../classes/Inputs/DatasetInput.h"
    1111
    1212void SurfaceAverageVelMisfitx(IssmDouble* pJ,FemModel* femmodel){
     
    6767
    6868        /*Retrieve all inputs we will be needing: */
    69         DatasetInput2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    70         Input2* S_input      = topelement->GetInput2(SurfaceAreaEnum);     _assert_(S_input);
    71         Input2* vx_input     = topelement->GetInput2(VxEnum);              _assert_(vx_input);
    72         Input2* vxobs_input  = topelement->GetInput2(InversionVxObsEnum);  _assert_(vxobs_input);
    73         Input2* vy_input     = NULL;
    74         Input2* 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;
    7575        if(numcomponents==2){
    76                 vy_input    =topelement->GetInput2(VyEnum);              _assert_(vy_input);
    77                 vyobs_input =topelement->GetInput2(InversionVyObsEnum);  _assert_(vyobs_input);
     76                vy_input    =topelement->GetInput(VyEnum);              _assert_(vy_input);
     77                vyobs_input =topelement->GetInput(InversionVyObsEnum);  _assert_(vyobs_input);
    7878        }
    7979
  • issm/trunk-jpl/src/c/modules/SurfaceLogVelMisfitx/SurfaceLogVelMisfitx.cpp

    r24335 r25379  
    66#include "../../shared/shared.h"
    77#include "../../toolkits/toolkits.h"
    8 #include "../../classes/Inputs2/DatasetInput2.h"
     8#include "../../classes/Inputs/DatasetInput.h"
    99
    1010void SurfaceLogVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    6262
    6363        /*Retrieve all inputs we will be needing: */
    64         DatasetInput2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    65         Input2* vx_input     =topelement->GetInput2(VxEnum);                                 _assert_(vx_input);
    66         Input2* vxobs_input  =topelement->GetInput2(InversionVxObsEnum);                     _assert_(vxobs_input);
    67         Input2* vy_input     = NULL;
    68         Input2* 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;
    6969        if(numcomponents==2){
    70                 vy_input    =topelement->GetInput2(VyEnum);              _assert_(vy_input);
    71                 vyobs_input =topelement->GetInput2(InversionVyObsEnum);  _assert_(vyobs_input);
     70                vy_input    =topelement->GetInput(VyEnum);              _assert_(vy_input);
     71                vyobs_input =topelement->GetInput(InversionVyObsEnum);  _assert_(vyobs_input);
    7272        }
    7373
  • issm/trunk-jpl/src/c/modules/SurfaceLogVxVyMisfitx/SurfaceLogVxVyMisfitx.cpp

    r24335 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void SurfaceLogVxVyMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    6262
    6363        /*Retrieve all inputs we will be needing: */
    64         DatasetInput2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    65         Input2* vx_input     =topelement->GetInput2(VxEnum);                                 _assert_(vx_input);
    66         Input2* vxobs_input  =topelement->GetInput2(InversionVxObsEnum);                     _assert_(vxobs_input);
    67         Input2* vy_input     = NULL;
    68         Input2* 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;
    6969        if(numcomponents==2){
    70                 vy_input    =topelement->GetInput2(VyEnum);              _assert_(vy_input);
    71                 vyobs_input =topelement->GetInput2(InversionVyObsEnum);  _assert_(vyobs_input);
     70                vy_input    =topelement->GetInput(VyEnum);              _assert_(vy_input);
     71                vyobs_input =topelement->GetInput(InversionVyObsEnum);  _assert_(vyobs_input);
    7272        }
    7373
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp

    r24760 r25379  
    77#include "../../toolkits/toolkits.h"
    88#include "../modules.h"
    9 #include "../../classes/Inputs2/TransientInput2.h"
     9#include "../../classes/Inputs/TransientInput.h"
    1010
    1111const double Pi = 3.141592653589793;
     
    6565                        if (isclimatology){
    6666                                //If this is a climatology, we need to repeat the forcing after the final time
    67                                 TransientInput2* Ta_input_tr  = element->inputs2->GetTransientInput(SmbTaEnum);    _assert_(Ta_input_tr);
     67                                TransientInput* Ta_input_tr  = element->inputs->GetTransientInput(SmbTaEnum);    _assert_(Ta_input_tr);
    6868
    6969                                /*Get temperature climatology value*/
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp

    r24335 r25379  
    77#include "../../toolkits/toolkits.h"
    88#include "../modules.h"
    9 #include "../../classes/Inputs2/TransientInput2.h"
     9#include "../../classes/Inputs/TransientInput.h"
    1010
    1111void SmbForcingx(FemModel* femmodel){/*{{{*/
     
    2929                        /*FIXME: this is wrong, should be done at the ElementUpdate step of analysis, not here!*/
    3030                        InputDuplicatex(femmodel,SmbMassBalanceEnum,SmbMassBalanceClimateEnum);
    31                         femmodel->inputs2->DeleteInput(SmbMassBalanceEnum);
     31                        femmodel->inputs->DeleteInput(SmbMassBalanceEnum);
    3232                }
    3333
    3434                /*If this is a climatology, we need to repeat the forcing after the final time*/
    35                 TransientInput2* smb_input=femmodel->inputs2->GetTransientInput(SmbMassBalanceClimateEnum); _assert_(smb_input);
     35                TransientInput* smb_input=femmodel->inputs->GetTransientInput(SmbMassBalanceClimateEnum); _assert_(smb_input);
    3636
    3737                /*Get accumulation climatology value*/
     
    6262
    6363                        /*Add input to element and Free memory*/
    64                         element->AddInput2(SmbMassBalanceEnum,smb,P1Enum);
     64                        element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
    6565                        xDelete<IssmDouble>(smb);
    6666                }
     
    121121
    122122                /*Add input to element and Free memory*/
    123                 element->AddInput2(SmbMassBalanceEnum,smb,P1Enum);
     123                element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
    124124                xDelete<IssmDouble>(Href);
    125125                xDelete<IssmDouble>(Smbref);
     
    185185
    186186                /*Add input to element and Free memory*/
    187                 element->AddInput2(SmbMassBalanceEnum,smb,P1Enum);
     187                element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
    188188                xDelete<IssmDouble>(ela);
    189189                xDelete<IssmDouble>(b_pos);
     
    395395
    396396                /*Add input to element and Free memory*/
    397                 element->AddInput2(SmbMassBalanceEnum,smblist,P1Enum);
     397                element->AddInput(SmbMassBalanceEnum,smblist,P1Enum);
    398398                xDelete<IssmDouble>(surfacelist);
    399399                xDelete<IssmDouble>(smblistref);
     
    437437
    438438                        //If this is a climatology, we need to repeat the forcing after the final time
    439                         TransientInput2* acc_input    = element->inputs2->GetTransientInput(SmbAccumulationEnum); _assert_(acc_input);
    440                         TransientInput2* evap_input   = element->inputs2->GetTransientInput(SmbEvaporationEnum);  _assert_(evap_input);
    441                         TransientInput2* 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);
    442442
    443443                        //Get accumulation climatology value
     
    493493
    494494                /*Add input to element and Free memory*/
    495                 element->AddInput2(SmbMassBalanceEnum,smb,P1Enum);
     495                element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
    496496                xDelete<IssmDouble>(acc);
    497497                xDelete<IssmDouble>(evap);
     
    537537
    538538                        //If this is a climatology, we need to repeat the forcing after the final time
    539                         TransientInput2* acc_input      = element->inputs2->GetTransientInput(SmbAccumulationEnum); _assert_(acc_input);
    540                         TransientInput2* evap_input     = element->inputs2->GetTransientInput(SmbEvaporationEnum);  _assert_(evap_input);
    541                         TransientInput2* melt_input     = element->inputs2->GetTransientInput(SmbMeltEnum);         _assert_(melt_input);
    542                         TransientInput2* 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);
    543543
    544544                        //Get accumulation climatology value
     
    609609
    610610                /*Add input to element and Free memory*/
    611                 element->AddInput2(SmbMassBalanceEnum,smb,P1Enum);
     611                element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
    612612                xDelete<IssmDouble>(acc);
    613613                xDelete<IssmDouble>(evap);
  • issm/trunk-jpl/src/c/modules/SurfaceRelVelMisfitx/SurfaceRelVelMisfitx.cpp

    r24335 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void SurfaceRelVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    6262
    6363        /*Retrieve all inputs we will be needing: */
    64         DatasetInput2* weights_input=topelement->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    65         Input2* vx_input     =topelement->GetInput2(VxEnum);                                 _assert_(vx_input);
    66         Input2* vxobs_input  =topelement->GetInput2(InversionVxObsEnum);                     _assert_(vxobs_input);
    67         Input2* vy_input     = NULL;
    68         Input2* 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;
    6969        if(numcomponents==2){
    70                 vy_input    =topelement->GetInput2(VyEnum);              _assert_(vy_input);
    71                 vyobs_input =topelement->GetInput2(InversionVyObsEnum);  _assert_(vyobs_input);
     70                vy_input    =topelement->GetInput(VyEnum);              _assert_(vy_input);
     71                vyobs_input =topelement->GetInput(InversionVyObsEnum);  _assert_(vyobs_input);
    7272        }
    7373
  • issm/trunk-jpl/src/c/modules/ThicknessAbsMisfitx/ThicknessAbsMisfitx.cpp

    r24335 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    4444
    4545        /*Retrieve all inputs we will be needing: */
    46         DatasetInput2* weights_input     =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    47         Input2* thickness_input   =element->GetInput2(ThicknessEnum);                          _assert_(thickness_input);
    48         Input2* 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);
    4949
    5050        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/modules/ThicknessAcrossGradientx/ThicknessAcrossGradientx.cpp

    r24335 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void ThicknessAcrossGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    4646
    4747        /*Retrieve all inputs we will be needing: */
    48         DatasetInput2* weights_input   =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    49         Input2* thickness_input =element->GetInput2(ThicknessEnum);                          _assert_(thickness_input);
    50         Input2* vx_input        =element->GetInput2(VxEnum);                                 _assert_(vx_input);
    51         Input2* 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);
    5252
    5353        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/modules/ThicknessAlongGradientx/ThicknessAlongGradientx.cpp

    r24335 r25379  
    77#include "../../shared/shared.h"
    88#include "../../toolkits/toolkits.h"
    9 #include "../../classes/Inputs2/DatasetInput2.h"
     9#include "../../classes/Inputs/DatasetInput.h"
    1010
    1111void ThicknessAlongGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){
     
    4646
    4747        /*Retrieve all inputs we will be needing: */
    48         DatasetInput2* weights_input   =element->GetDatasetInput2(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
    49         Input2* thickness_input =element->GetInput2(ThicknessEnum);                          _assert_(thickness_input);
    50         Input2* vx_input        =element->GetInput2(VxEnum);                                 _assert_(vx_input);
    51         Input2* 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);
    5252
    5353        /* Start  looping on the number of gaussian points: */
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r25323 r25379  
    996996syn keyword cConstant BoolExternalResultEnum
    997997syn keyword cConstant BoolInputEnum
    998 syn keyword cConstant BoolInput2Enum
    999 syn keyword cConstant IntInput2Enum
    1000 syn keyword cConstant DoubleInput2Enum
     998syn keyword cConstant IntInputEnum
     999syn keyword cConstant DoubleInputEnum
    10011000syn keyword cConstant BoolParamEnum
    10021001syn keyword cConstant BoundaryEnum
     
    10191018syn keyword cConstant ContoursEnum
    10201019syn keyword cConstant ControlInputEnum
    1021 syn keyword cConstant ControlInput2Enum
    10221020syn keyword cConstant ControlInputGradEnum
    10231021syn keyword cConstant ControlInputMaxsEnum
     
    10321030syn keyword cConstant DataSetParamEnum
    10331031syn keyword cConstant DatasetInputEnum
    1034 syn keyword cConstant DatasetInput2Enum
    10351032syn keyword cConstant DefaultAnalysisEnum
    10361033syn keyword cConstant DefaultCalvingEnum
     
    10421039syn keyword cConstant Domain3DsurfaceEnum
    10431040syn keyword cConstant DoubleArrayInputEnum
    1044 syn keyword cConstant ArrayInput2Enum
     1041syn keyword cConstant ArrayInputEnum
    10451042syn keyword cConstant DoubleExternalResultEnum
    1046 syn keyword cConstant DoubleInputEnum
    10471043syn keyword cConstant DoubleMatArrayParamEnum
    10481044syn keyword cConstant DoubleMatExternalResultEnum
     
    11221118syn keyword cConstant IndexedEnum
    11231119syn 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
     1120syn keyword cConstant ElementInputEnum
    11291121syn keyword cConstant IntMatExternalResultEnum
    11301122syn keyword cConstant IntMatParamEnum
    11311123syn keyword cConstant IntParamEnum
    11321124syn keyword cConstant IntVecParamEnum
    1133 syn keyword cConstant Inputs2Enum
     1125syn keyword cConstant InputsEnum
    11341126syn keyword cConstant InternalEnum
    11351127syn keyword cConstant IntersectEnum
     
    13161308syn keyword cConstant TransientArrayParamEnum
    13171309syn keyword cConstant TransientInputEnum
    1318 syn keyword cConstant TransientInput2Enum
    13191310syn keyword cConstant TransientParamEnum
    13201311syn keyword cConstant TransientSolutionEnum
     
    13561347syn keyword cType AdaptiveMeshRefinement
    13571348syn keyword cType AmrBamg
    1358 syn keyword cType ArrayInput2
    1359 syn keyword cType BoolInput2
     1349syn keyword cType ArrayInput
     1350syn keyword cType BoolInput
    13601351syn keyword cType BoolParam
    13611352syn keyword cType Cfdragcoeffabsgrad
     
    13681359syn keyword cType Contour
    13691360syn keyword cType Contours
    1370 syn keyword cType ControlInput2
     1361syn keyword cType ControlInput
    13711362syn keyword cType Covertree
    1372 syn keyword cType DatasetInput2
     1363syn keyword cType DatasetInput
    13731364syn keyword cType DataSetParam
    13741365syn keyword cType Definition
    13751366syn keyword cType DependentObject
    1376 syn keyword cType DoubleInput2
     1367syn keyword cType DoubleInput
    13771368syn keyword cType DoubleMatArrayParam
    13781369syn keyword cType DoubleMatParam
     
    13821373syn keyword cType Element
    13831374syn keyword cType ElementHook
    1384 syn keyword cType ElementInput2
     1375syn keyword cType ElementInput
    13851376syn keyword cType ElementMatrix
    13861377syn keyword cType Elements
     
    14031394syn keyword cType GiaDeflectionCoreArgs
    14041395syn keyword cType Hook
    1405 syn keyword cType Input2
    1406 syn keyword cType Inputs2
    1407 syn keyword cType IntInput2
     1396syn keyword cType Input
     1397syn keyword cType Inputs
     1398syn keyword cType IntInput
    14081399syn keyword cType IntMatParam
    14091400syn keyword cType IntParam
     
    14431434syn keyword cType Penpair
    14441435syn keyword cType Penta
    1445 syn keyword cType PentaInput2
     1436syn keyword cType PentaInput
    14461437syn keyword cType PentaRef
    14471438syn keyword cType PowerVariogram
     
    14551446syn keyword cType SealevelMasks
    14561447syn keyword cType Seg
    1457 syn keyword cType SegInput2
     1448syn keyword cType SegInput
    14581449syn keyword cType Segment
    14591450syn keyword cType SegRef
     
    14671458syn keyword cType TetraRef
    14681459syn keyword cType TransientArrayParam
    1469 syn keyword cType TransientInput2
     1460syn keyword cType TransientInput
    14701461syn keyword cType TransientParam
    14711462syn keyword cType Tria
    1472 syn keyword cType TriaInput2
     1463syn keyword cType TriaInput
    14731464syn keyword cType TriaRef
    14741465syn keyword cType Variogram
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r25323 r25379  
    995995        BoolExternalResultEnum,
    996996        BoolInputEnum,
    997         BoolInput2Enum,
    998         IntInput2Enum,
    999         DoubleInput2Enum,
     997        IntInputEnum,
     998        DoubleInputEnum,
    1000999        BoolParamEnum,
    10011000        BoundaryEnum,
     
    10181017        ContoursEnum,
    10191018        ControlInputEnum,
    1020         ControlInput2Enum,
    10211019        ControlInputGradEnum,
    10221020        ControlInputMaxsEnum,
     
    10311029        DataSetParamEnum,
    10321030        DatasetInputEnum,
    1033         DatasetInput2Enum,
    10341031        DefaultAnalysisEnum,
    10351032        DefaultCalvingEnum,
     
    10411038        Domain3DsurfaceEnum,
    10421039        DoubleArrayInputEnum,
    1043         ArrayInput2Enum,
     1040        ArrayInputEnum,
    10441041        DoubleExternalResultEnum,
    1045         DoubleInputEnum,
    10461042        DoubleMatArrayParamEnum,
    10471043        DoubleMatExternalResultEnum,
     
    11211117        IndexedEnum,
    11221118        IntExternalResultEnum,
    1123         IntInputEnum,
    1124         ElementInput2Enum,
    1125         SegInput2Enum,
    1126         TriaInput2Enum,
    1127         PentaInput2Enum,
     1119        ElementInputEnum,
    11281120        IntMatExternalResultEnum,
    11291121        IntMatParamEnum,
    11301122        IntParamEnum,
    11311123        IntVecParamEnum,
    1132         Inputs2Enum,
     1124        InputsEnum,
    11331125        InternalEnum,
    11341126        IntersectEnum,
     
    13151307        TransientArrayParamEnum,
    13161308        TransientInputEnum,
    1317         TransientInput2Enum,
    13181309        TransientParamEnum,
    13191310        TransientSolutionEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r25323 r25379  
    998998                case BoolExternalResultEnum : return "BoolExternalResult";
    999999                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";
    10031002                case BoolParamEnum : return "BoolParam";
    10041003                case BoundaryEnum : return "Boundary";
     
    10211020                case ContoursEnum : return "Contours";
    10221021                case ControlInputEnum : return "ControlInput";
    1023                 case ControlInput2Enum : return "ControlInput2";
    10241022                case ControlInputGradEnum : return "ControlInputGrad";
    10251023                case ControlInputMaxsEnum : return "ControlInputMaxs";
     
    10341032                case DataSetParamEnum : return "DataSetParam";
    10351033                case DatasetInputEnum : return "DatasetInput";
    1036                 case DatasetInput2Enum : return "DatasetInput2";
    10371034                case DefaultAnalysisEnum : return "DefaultAnalysis";
    10381035                case DefaultCalvingEnum : return "DefaultCalving";
     
    10441041                case Domain3DsurfaceEnum : return "Domain3Dsurface";
    10451042                case DoubleArrayInputEnum : return "DoubleArrayInput";
    1046                 case ArrayInput2Enum : return "ArrayInput2";
     1043                case ArrayInputEnum : return "ArrayInput";
    10471044                case DoubleExternalResultEnum : return "DoubleExternalResult";
    1048                 case DoubleInputEnum : return "DoubleInput";
    10491045                case DoubleMatArrayParamEnum : return "DoubleMatArrayParam";
    10501046                case DoubleMatExternalResultEnum : return "DoubleMatExternalResult";
     
    11241120                case IndexedEnum : return "Indexed";
    11251121                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";
    11311123                case IntMatExternalResultEnum : return "IntMatExternalResult";
    11321124                case IntMatParamEnum : return "IntMatParam";
    11331125                case IntParamEnum : return "IntParam";
    11341126                case IntVecParamEnum : return "IntVecParam";
    1135                 case Inputs2Enum : return "Inputs2";
     1127                case InputsEnum : return "Inputs";
    11361128                case InternalEnum : return "Internal";
    11371129                case IntersectEnum : return "Intersect";
     
    13181310                case TransientArrayParamEnum : return "TransientArrayParam";
    13191311                case TransientInputEnum : return "TransientInput";
    1320                 case TransientInput2Enum : return "TransientInput2";
    13211312                case TransientParamEnum : return "TransientParam";
    13221313                case TransientSolutionEnum : return "TransientSolution";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r25323 r25379  
    629629              else if (strcmp(name,"HydrologydcMaskThawedNode")==0) return HydrologydcMaskThawedNodeEnum;
    630630              else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
    631               else if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum;
    632631         else stage=6;
    633632   }
    634633   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;
    636636              else if (strcmp(name,"HydrologyGapHeight")==0) return HydrologyGapHeightEnum;
    637637              else if (strcmp(name,"HydrologyHead")==0) return HydrologyHeadEnum;
     
    752752              else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum;
    753753              else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;
    754               else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;
    755754         else stage=7;
    756755   }
    757756   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;
    759759              else if (strcmp(name,"SmbEC")==0) return SmbECEnum;
    760760              else if (strcmp(name,"SmbECDt")==0) return SmbECDtEnum;
     
    875875              else if (strcmp(name,"Vy")==0) return VyEnum;
    876876              else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
    877               else if (strcmp(name,"VyObs")==0) return VyObsEnum;
    878877         else stage=8;
    879878   }
    880879   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;
    882882              else if (strcmp(name,"VzFS")==0) return VzFSEnum;
    883883              else if (strcmp(name,"VzHO")==0) return VzHOEnum;
     
    998998              else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;
    999999              else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
    1000               else if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum;
    10011000         else stage=9;
    10021001   }
    10031002   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;
    10051005              else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
    10061006              else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
     
    10221022              else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
    10231023              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;
    10271026              else if (strcmp(name,"BoolParam")==0) return BoolParamEnum;
    10281027              else if (strcmp(name,"Boundary")==0) return BoundaryEnum;
     
    10451044              else if (strcmp(name,"Contours")==0) return ContoursEnum;
    10461045              else if (strcmp(name,"ControlInput")==0) return ControlInputEnum;
    1047               else if (strcmp(name,"ControlInput2")==0) return ControlInput2Enum;
    10481046              else if (strcmp(name,"ControlInputGrad")==0) return ControlInputGradEnum;
    10491047              else if (strcmp(name,"ControlInputMaxs")==0) return ControlInputMaxsEnum;
     
    10581056              else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
    10591057              else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
    1060               else if (strcmp(name,"DatasetInput2")==0) return DatasetInput2Enum;
    10611058              else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
    10621059              else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
     
    10681065              else if (strcmp(name,"Domain3Dsurface")==0) return Domain3DsurfaceEnum;
    10691066              else if (strcmp(name,"DoubleArrayInput")==0) return DoubleArrayInputEnum;
    1070               else if (strcmp(name,"ArrayInput2")==0) return ArrayInput2Enum;
     1067              else if (strcmp(name,"ArrayInput")==0) return ArrayInputEnum;
    10711068              else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
    1072               else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum;
    10731069              else if (strcmp(name,"DoubleMatArrayParam")==0) return DoubleMatArrayParamEnum;
    10741070              else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
     
    11221118              else if (strcmp(name,"Gset")==0) return GsetEnum;
    11231119              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;
    11241123         else stage=10;
    11251124   }
    11261125   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;
    11311127              else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
    11321128              else if (strcmp(name,"HydrologyGlaDSAnalysis")==0) return HydrologyGlaDSAnalysisEnum;
     
    11511147              else if (strcmp(name,"Indexed")==0) return IndexedEnum;
    11521148              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;
    11581150              else if (strcmp(name,"IntMatExternalResult")==0) return IntMatExternalResultEnum;
    11591151              else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum;
    11601152              else if (strcmp(name,"IntParam")==0) return IntParamEnum;
    11611153              else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
    1162               else if (strcmp(name,"Inputs2")==0) return Inputs2Enum;
     1154              else if (strcmp(name,"Inputs")==0) return InputsEnum;
    11631155              else if (strcmp(name,"Internal")==0) return InternalEnum;
    11641156              else if (strcmp(name,"Intersect")==0) return IntersectEnum;
     
    12451237              else if (strcmp(name,"P0Array")==0) return P0ArrayEnum;
    12461238              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;
    12511240              else if (strcmp(name,"P1P1")==0) return P1P1Enum;
    12521241              else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
     
    12551244              else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
    12561245              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;
    12581250              else if (strcmp(name,"P2")==0) return P2Enum;
    12591251              else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum;
     
    13481340              else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum;
    13491341              else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
    1350               else if (strcmp(name,"TransientInput2")==0) return TransientInput2Enum;
    13511342              else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
    13521343              else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
     
    13681359              else if (strcmp(name,"BalancethicknessDiffusionCoefficient")==0) return BalancethicknessDiffusionCoefficientEnum;
    13691360              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;
    13741362              else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
    13751363              else if (strcmp(name,"EtaAbsGradient")==0) return EtaAbsGradientEnum;
     
    13791367              else if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum;
    13801368              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;
    13821373              else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
    13831374              else if (strcmp(name,"StressbalanceViscosityOvershoot")==0) return StressbalanceViscosityOvershootEnum;
Note: See TracChangeset for help on using the changeset viewer.