Changeset 16219


Ignore:
Timestamp:
09/20/13 16:10:05 (12 years ago)
Author:
Mathieu Morlighem
Message:

CHG: simplifying InputDuplicatex prototype

Location:
issm/trunk-jpl/src/c
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/analyses/enthalpy_core.cpp

    r15849 r16219  
    2323
    2424        /*transfer enthalpy to enthalpy picard for the next step: */
    25         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EnthalpyEnum,EnthalpyPicardEnum);
     25        InputDuplicatex(femmodel,EnthalpyEnum,EnthalpyPicardEnum);
    2626
    2727        if(save_results){
  • TabularUnified issm/trunk-jpl/src/c/analyses/hydrology_core.cpp

    r15849 r16219  
    6464                        /*transfer water column thickness to old water column thickness: */
    6565
    66                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WatercolumnEnum,WaterColumnOldEnum);
     66                        InputDuplicatex(femmodel,WatercolumnEnum,WaterColumnOldEnum);
    6767
    6868                        if(save_results && ((i+1)%output_frequency==0 || (i+1)==nsteps)){
     
    7979
    8080                else if (hydrology_model==HydrologydcEnum){
    81                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SedimentHeadEnum,SedimentHeadOldEnum);
     81                        InputDuplicatex(femmodel,SedimentHeadEnum,SedimentHeadOldEnum);
    8282                        femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
    8383                        if (isefficientlayer){
    84                                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EplHeadEnum,EplHeadOldEnum);
     84                                InputDuplicatex(femmodel,EplHeadEnum,EplHeadOldEnum);
    8585                        }
    8686
  • TabularUnified issm/trunk-jpl/src/c/analyses/masstransport_core.cpp

    r16215 r16219  
    3636        /*for qmu analysis, reinitialize velocity so that fake sensitivities do not show up as a result of a different restart of the convergence at each trial.*/
    3737        if(dakota_analysis && solution_type==MasstransportSolutionEnum){
    38                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuSurfaceEnum,SurfaceEnum);
    39                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuThicknessEnum,ThicknessEnum);
    40                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuBedEnum,BedEnum);
     38                InputDuplicatex(femmodel,QmuSurfaceEnum,SurfaceEnum);
     39                InputDuplicatex(femmodel,QmuThicknessEnum,ThicknessEnum);
     40                InputDuplicatex(femmodel,QmuBedEnum,BedEnum);
    4141        }
    4242
  • TabularUnified issm/trunk-jpl/src/c/analyses/stressbalance_core.cpp

    r16218 r16219  
    3939        /*for qmu analysis, reinitialize velocity so that fake sensitivities do not show up as a result of a different restart of the convergence at each trial.*/
    4040        if(dakota_analysis && solution_type==StressbalanceSolutionEnum){
    41                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxEnum,VxEnum);
    42                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyEnum,VyEnum);
    43                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVzEnum,VzEnum);
    44                 if(isFS) InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuPressureEnum,PressureEnum);
     41                InputDuplicatex(femmodel,QmuVxEnum,VxEnum);
     42                InputDuplicatex(femmodel,QmuVyEnum,VyEnum);
     43                InputDuplicatex(femmodel,QmuVzEnum,VzEnum);
     44                if(isFS) InputDuplicatex(femmodel,QmuPressureEnum,PressureEnum);
    4545        }
    4646
  • TabularUnified issm/trunk-jpl/src/c/analyses/thermal_core.cpp

    r16215 r16219  
    2323
    2424        if(dakota_analysis && solution_type!=TransientSolutionEnum){
    25                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxMeshEnum,VxMeshEnum);
    26                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyMeshEnum,VyMeshEnum);
    27                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVzMeshEnum,VzMeshEnum);
    28                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuTemperatureEnum,TemperatureEnum);
    29                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMeltingEnum,BasalforcingsMeltingRateEnum);
    30                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaterialsRheologyBEnum,MaterialsRheologyBEnum);
     25                InputDuplicatex(femmodel,QmuVxMeshEnum,VxMeshEnum);
     26                InputDuplicatex(femmodel,QmuVyMeshEnum,VyMeshEnum);
     27                InputDuplicatex(femmodel,QmuVzMeshEnum,VzMeshEnum);
     28                InputDuplicatex(femmodel,QmuTemperatureEnum,TemperatureEnum);
     29                InputDuplicatex(femmodel,QmuMeltingEnum,BasalforcingsMeltingRateEnum);
     30                InputDuplicatex(femmodel,QmuMaterialsRheologyBEnum,MaterialsRheologyBEnum);
    3131                femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);
    3232                ResetConstraintsx(femmodel);
  • TabularUnified issm/trunk-jpl/src/c/analyses/transient_core.cpp

    r16218 r16219  
    6161        if(dakota_analysis){
    6262                if(isstressbalance){
    63                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxEnum,VxEnum);
    64                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyEnum,VyEnum);
     63                        InputDuplicatex(femmodel,QmuVxEnum,VxEnum);
     64                        InputDuplicatex(femmodel,QmuVyEnum,VyEnum);
    6565                        if(dim==3){
    66                                 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVzEnum,VzEnum);
    67                                 if(isFS)InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuPressureEnum,PressureEnum);
     66                                InputDuplicatex(femmodel,QmuVzEnum,VzEnum);
     67                                if(isFS)InputDuplicatex(femmodel,QmuPressureEnum,PressureEnum);
    6868                        }
    6969                }
    7070                if(ismasstransport || isgroundingline){
    71                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuThicknessEnum,ThicknessEnum);
    72                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuSurfaceEnum,SurfaceEnum);
    73                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuBedEnum,BedEnum);
    74                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaskIceLevelsetEnum,MaskIceLevelsetEnum);
     71                        InputDuplicatex(femmodel,QmuThicknessEnum,ThicknessEnum);
     72                        InputDuplicatex(femmodel,QmuSurfaceEnum,SurfaceEnum);
     73                        InputDuplicatex(femmodel,QmuBedEnum,BedEnum);
     74                        InputDuplicatex(femmodel,QmuMaskIceLevelsetEnum,MaskIceLevelsetEnum);
    7575                }
    76                 if(isgroundingline) InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaskGroundediceLevelsetEnum,MaskGroundediceLevelsetEnum);
    77                 if(dim==2)InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
     76                if(isgroundingline) InputDuplicatex(femmodel,QmuMaskGroundediceLevelsetEnum,MaskGroundediceLevelsetEnum);
     77                if(dim==2)InputDuplicatex(femmodel,QmuMaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    7878                if(isthermal && dim==3){
    7979                        //Update Vertex Position after updating Thickness and Bed
    8080                        femmodel->SetCurrentConfiguration(MasstransportAnalysisEnum);
    8181                        femmodel->UpdateVertexPositionsx();
    82                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxMeshEnum,VxMeshEnum);
    83                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyMeshEnum,VyMeshEnum);
    84                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVzMeshEnum,VzMeshEnum);
    85                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuTemperatureEnum,TemperatureEnum);
    86                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMeltingEnum,BasalforcingsMeltingRateEnum);
    87                         InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuMaterialsRheologyBEnum,MaterialsRheologyBEnum);
     82                        InputDuplicatex(femmodel,QmuVxMeshEnum,VxMeshEnum);
     83                        InputDuplicatex(femmodel,QmuVyMeshEnum,VyMeshEnum);
     84                        InputDuplicatex(femmodel,QmuVzMeshEnum,VzMeshEnum);
     85                        InputDuplicatex(femmodel,QmuTemperatureEnum,TemperatureEnum);
     86                        InputDuplicatex(femmodel,QmuMeltingEnum,BasalforcingsMeltingRateEnum);
     87                        InputDuplicatex(femmodel,QmuMaterialsRheologyBEnum,MaterialsRheologyBEnum);
    8888                        //Reset Thermal Constraints
    8989                        femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16218 r16219  
    24262426
    24272427        /*Intermediaries*/
    2428         int        i;
    2429         IssmDouble nodeinputs[3];
    2430         IssmDouble yts;
    2431         int        progstabilization,balancestabilization;
    2432         int        fe_ssa;
    2433         bool       dakota_analysis;
    2434         int        numnodes;
    2435         int*       tria_node_ids = NULL;
     2428        int  numnodes;
     2429        int* tria_node_ids = NULL;
    24362430
    24372431        /*Checks if debuging*/
    24382432        _assert_(iomodel->elements);
    2439 
    2440         /*Fetch parameters: */
    2441         iomodel->Constant(&yts,ConstantsYtsEnum);
    2442         iomodel->Constant(&progstabilization,MasstransportStabilizationEnum);
    2443         iomodel->Constant(&balancestabilization,BalancethicknessStabilizationEnum);
    2444         iomodel->Constant(&fe_ssa,FlowequationFeSSAEnum);
    2445         iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
    24462433
    24472434        /*Recover element type*/
     
    24922479        /*Fill with IoModel*/
    24932480        this->InputUpdateFromIoModel(index,iomodel);
    2494 
    24952481}
    24962482/*}}}*/
  • TabularUnified issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp

    r15375 r16219  
    88#include "../../toolkits/toolkits.h"
    99
    10 void InputDuplicatex(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters,int original_enum, int new_enum){
     10void InputDuplicatex(FemModel* femmodel,int original_enum, int new_enum){
    1111
    1212        /*Go through elemnets, and ask to reinitialie the input: */
    13         int      i;
    14         for(i=0;i<elements->Size();i++){
    15                 Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
     13        for(int i=0;i<femmodel->elements->Size();i++){
     14                Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));
    1615                element->InputDuplicate(original_enum,new_enum);
    1716        }
    18         for(i=0;i<materials->Size();i++){
    19                 Material* material=(Material*)materials->GetObjectByOffset(i);
     17        for(int i=0;i<femmodel->materials->Size();i++){
     18                Material* material=(Material*)femmodel->materials->GetObjectByOffset(i);
    2019                material->InputDuplicate(original_enum,new_enum);
    2120        }
  • TabularUnified issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.h

    r14996 r16219  
    99
    1010/* local prototypes: */
    11 void InputDuplicatex(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters,int reinitialized_enum, int original_enum);
     11void InputDuplicatex(FemModel* femmodel,int reinitialized_enum, int original_enum);
    1212
    1313#endif  /* _INPUTDUPLICATEX_H */
Note: See TracChangeset for help on using the changeset viewer.