Index: ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp (revision 17886) +++ ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp (revision 17887) @@ -347,7 +347,7 @@ if(xIsNan(eplHeads[i])) _error_("NaN found in solution vector"); } /*Add input to the element: */ - element->AddBasalInput(EplHeadEnum,eplHeads,P1Enum); + element->AddInput(EplHeadEnum,eplHeads,P1Enum); /*Free ressources:*/ xDelete(eplHeads); Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp (revision 17886) +++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp (revision 17887) @@ -734,9 +734,9 @@ } /*Add input to the element: */ - element->AddBasalInput(ThicknessEnum,newthickness,P1Enum); - element->AddBasalInput(SurfaceEnum,newsurface,P1Enum); - element->AddBasalInput(BaseEnum,newbed,P1Enum); + element->AddInput(ThicknessEnum,newthickness,P1Enum); + element->AddInput(SurfaceEnum,newsurface,P1Enum); + element->AddInput(BaseEnum,newbed,P1Enum); /*Free ressources:*/ xDelete(newthickness); Index: ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp (revision 17886) +++ ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp (revision 17887) @@ -459,9 +459,9 @@ } /*Add input to the element: */ - element->AddBasalInput(SedimentHeadEnum,values,P1Enum); - element->AddBasalInput(SedimentHeadResidualEnum,residual,P1Enum); - element->AddBasalInput(EffectivePressureEnum,pressure,P1Enum); + element->AddInput(SedimentHeadEnum,values,P1Enum); + element->AddInput(SedimentHeadResidualEnum,residual,P1Enum); + element->AddInput(EffectivePressureEnum,pressure,P1Enum); /*Free ressources:*/ xDelete(values); Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp (revision 17886) +++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp (revision 17887) @@ -419,7 +419,7 @@ basalelement->AddInput(DamageDbarEnum,newdamage,element->GetElementType()); } else{ - basalelement->AddBasalInput(DamageDEnum,newdamage,element->GetElementType()); + basalelement->AddInput(DamageDEnum,newdamage,element->GetElementType()); } /*Free ressources:*/ Index: ../trunk-jpl/src/c/cores/masstransport_core.cpp =================================================================== --- ../trunk-jpl/src/c/cores/masstransport_core.cpp (revision 17886) +++ ../trunk-jpl/src/c/cores/masstransport_core.cpp (revision 17887) @@ -47,28 +47,23 @@ if(VerboseSolution()) _printf0_(" call free surface computational core\n"); femmodel->SetCurrentConfiguration(FreeSurfaceBaseAnalysisEnum); solutionsequence_linear(femmodel); - if(domaintype!=Domain2DhorizontalEnum){ - femmodel->parameters->SetParam(BaseEnum,InputToExtrudeEnum); - extrudefrombase_core(femmodel); - } + femmodel->parameters->SetParam(BaseEnum,InputToExtrudeEnum); + extrudefrombase_core(femmodel); + femmodel->SetCurrentConfiguration(FreeSurfaceTopAnalysisEnum); solutionsequence_linear(femmodel); - if(domaintype!=Domain2DhorizontalEnum){ - femmodel->parameters->SetParam(SurfaceEnum,InputToExtrudeEnum); - extrudefromtop_core(femmodel); - } + femmodel->parameters->SetParam(SurfaceEnum,InputToExtrudeEnum); + extrudefromtop_core(femmodel); } else{ if(VerboseSolution()) _printf0_(" call computational core\n"); solutionsequence_linear(femmodel); - if(domaintype==Domain2DverticalEnum){ - femmodel->parameters->SetParam(ThicknessEnum,InputToExtrudeEnum); - extrudefrombase_core(femmodel); - femmodel->parameters->SetParam(BaseEnum,InputToExtrudeEnum); - extrudefrombase_core(femmodel); - femmodel->parameters->SetParam(SurfaceEnum,InputToExtrudeEnum); - extrudefrombase_core(femmodel); - } + femmodel->parameters->SetParam(ThicknessEnum,InputToExtrudeEnum); + extrudefrombase_core(femmodel); + femmodel->parameters->SetParam(BaseEnum,InputToExtrudeEnum); + extrudefrombase_core(femmodel); + femmodel->parameters->SetParam(SurfaceEnum,InputToExtrudeEnum); + extrudefrombase_core(femmodel); } if(save_results){ Index: ../trunk-jpl/src/c/cores/hydrology_core.cpp =================================================================== --- ../trunk-jpl/src/c/cores/hydrology_core.cpp (revision 17886) +++ ../trunk-jpl/src/c/cores/hydrology_core.cpp (revision 17887) @@ -34,7 +34,6 @@ solutionsequence_nonlinear(femmodel,modify_loads); /*transfer water column thickness to old water column thickness: */ - InputDuplicatex(femmodel,WatercolumnEnum,WaterColumnOldEnum); if(save_results){ @@ -60,6 +59,7 @@ /*Proceed now to heads computations*/ if(VerboseSolution()) _printf0_(" computing water head\n"); solutionsequence_hydro_nonlinear(femmodel); + if(save_results){ if(VerboseSolution()) _printf0_(" saving results \n"); if(isefficientlayer){ Index: ../trunk-jpl/src/c/cores/extrudefrombase_core.cpp =================================================================== --- ../trunk-jpl/src/c/cores/extrudefrombase_core.cpp (revision 17886) +++ ../trunk-jpl/src/c/cores/extrudefrombase_core.cpp (revision 17887) @@ -12,20 +12,26 @@ void extrudefrombase_core(FemModel* femmodel){ /*Intermediaries*/ - int elementtype; + int elementtype,domaintype; if(VerboseSolution()) _printf0_("extruding solution from base...\n"); - femmodel->parameters->FindParam(&elementtype,MeshElementtypeEnum); - if(elementtype==PentaEnum){ - int inputenum; femmodel->parameters->FindParam(&inputenum,InputToExtrudeEnum); - InputExtrudex(femmodel,inputenum); - } - else{ - /*Call on core computations: */ - femmodel->SetCurrentConfiguration(ExtrudeFromBaseAnalysisEnum); - femmodel->UpdateConstraintsExtrudeFromBasex(); - solutionsequence_linear(femmodel); - } + /*Get parameters*/ + femmodel->parameters->FindParam(&domaintype,DomainTypeEnum); + femmodel->parameters->FindParam(&elementtype,MeshElementtypeEnum); + /*If this is a 2D horizontal domain, return (no need to extrude)*/ + if(domaintype==Domain2DhorizontalEnum) return; + + /*Special method for Penta, otherwise call solution sequence*/ + if(elementtype==PentaEnum){ + int inputenum; femmodel->parameters->FindParam(&inputenum,InputToExtrudeEnum); + InputExtrudex(femmodel,inputenum); + } + else{ + /*Call on core computations: */ + femmodel->SetCurrentConfiguration(ExtrudeFromBaseAnalysisEnum); + femmodel->UpdateConstraintsExtrudeFromBasex(); + solutionsequence_linear(femmodel); + } }