Index: ../trunk-jpl/src/c/shared/Numerics/PetscOptionsFromAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/shared/Numerics/PetscOptionsFromAnalysis.cpp (revision 14631) +++ ../trunk-jpl/src/c/shared/Numerics/PetscOptionsFromAnalysis.cpp (revision 14632) @@ -1,42 +0,0 @@ -/*!\file: PetscOptionsFromAnalysis.cpp - * \brief: change petsc options using analysis type and parameters - */ - -#ifdef HAVE_CONFIG_H - #include -#else -#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!" -#endif - -#include "../../classes/objects/objects.h" -#include "../../Container/Parameters.h" -#include "../../toolkits/toolkits.h" - -void PetscOptionsFromAnalysis(Parameters* parameters,int analysis_type){ - - /*intermediary: */ - char* options=NULL; - - /*Recover first the options string for this analysis: */ - options=OptionsFromAnalysis(parameters,analysis_type); - - /*now, reset the options database with this string. Taken from petsc/install/src/sys/objects/pinit.c. This - *capability is not covered by Petsc!: */ - - #if _PETSC_MAJOR_ == 2 - PetscOptionsDestroy(); - PetscOptionsCreate(); - //PetscOptionsCheckInitial_Private(); - //PetscOptionsCheckInitial_Components(); - PetscOptionsSetFromOptions(); - PetscOptionsInsertMultipleString(options); //our patch - #else - PetscOptionsSetFromOptions(); - PetscOptionsClear(); - //PetscOptionsSetFromOptions(); - PetscOptionsInsertMultipleString(options); //our patch - #endif - - /*Free ressources:*/ - xDelete(options); -} Index: ../trunk-jpl/src/c/shared/Numerics/ToolkitsOptionsFromAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/shared/Numerics/ToolkitsOptionsFromAnalysis.cpp (revision 0) +++ ../trunk-jpl/src/c/shared/Numerics/ToolkitsOptionsFromAnalysis.cpp (revision 14632) @@ -0,0 +1,48 @@ +/*!\file: ToolkitsOptionsFromAnalysis.cpp + * \brief: this is mainly for the case where we run our toolkits using petsc. In this case, we need to + * plug our toolkits options directly into the petsc options database. This is the case for each analysis type + * and parameters + */ + +#ifdef HAVE_CONFIG_H + #include +#else +#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!" +#endif + +#include "../../classes/objects/objects.h" +#include "../../Container/Parameters.h" +#include "../../toolkits/toolkits.h" + +void ToolkitsOptionsFromAnalysis(Parameters* parameters,int analysis_type){ + + /*intermediary: */ + char* options=NULL; + + /*Recover first the options string for this analysis: */ + options=OptionsFromAnalysis(parameters,analysis_type); + + /*now, reset the petsc options database with this string. Taken from petsc/install/src/sys/objects/pinit.c. This + *capability is not covered by Petsc!: */ + + #ifdef _HAVE_PETSC_ + + #if _PETSC_MAJOR_ == 2 + PetscOptionsDestroy(); + PetscOptionsCreate(); + //PetscOptionsCheckInitial_Private(); + //PetscOptionsCheckInitial_Components(); + PetscOptionsSetFromOptions(); + PetscOptionsInsertMultipleString(options); //our patch + #else + PetscOptionsSetFromOptions(); + PetscOptionsClear(); + //PetscOptionsSetFromOptions(); + PetscOptionsInsertMultipleString(options); //our patch + #endif + + #endif + + /*Free ressources:*/ + xDelete(options); +} Index: ../trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp (revision 14631) +++ ../trunk-jpl/src/c/shared/Numerics/OptionsFromAnalysis.cpp (revision 14632) @@ -29,9 +29,9 @@ int i; numanalyses=0; - parameters->FindParam(&strings,&numanalyses,PetscOptionsStringsEnum); + parameters->FindParam(&strings,&numanalyses,ToolkitsOptionsStringsEnum); - parameters->FindParam(&analyses,&dummy,PetscOptionsAnalysesEnum); + parameters->FindParam(&analyses,&dummy,ToolkitsOptionsAnalysesEnum); if(numanalyses==0)return NULL; //we did not find petsc options, don't bother. Index: ../trunk-jpl/src/c/shared/Numerics/numerics.h =================================================================== --- ../trunk-jpl/src/c/shared/Numerics/numerics.h (revision 14631) +++ ../trunk-jpl/src/c/shared/Numerics/numerics.h (revision 14632) @@ -30,8 +30,6 @@ char *OptionsFromAnalysis(Parameters *parameters,int analysis_type); void XZvectorsToCoordinateSystem(IssmDouble *T,IssmDouble*xzvectors); int cubic(IssmDouble a, IssmDouble b, IssmDouble c, IssmDouble d, double X[3], int *num); -#ifdef _HAVE_PETSC_ -void PetscOptionsFromAnalysis(Parameters* parameters,int analysis_type); -#endif +void ToolkitsOptionsFromAnalysis(Parameters* parameters,int analysis_type); #endif //ifndef _NUMERICS_H_ Index: ../trunk-jpl/src/c/modules/modules.h =================================================================== --- ../trunk-jpl/src/c/modules/modules.h (revision 14631) +++ ../trunk-jpl/src/c/modules/modules.h (revision 14632) @@ -68,7 +68,7 @@ #include "./SurfaceLogVxVyMisfitx/SurfaceLogVxVyMisfitx.h" #include "./SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.h" #include "./ModelProcessorx/ModelProcessorx.h" -#include "./ParsePetscOptionsx/ParsePetscOptionsx.h" +#include "./ParseToolkitsOptionsx/ParseToolkitsOptionsx.h" #include "./NodalValuex/NodalValuex.h" #include "./NodeConnectivityx/NodeConnectivityx.h" #include "./NodesDofx/NodesDofx.h" Index: ../trunk-jpl/src/c/Makefile.am =================================================================== --- ../trunk-jpl/src/c/Makefile.am (revision 14631) +++ ../trunk-jpl/src/c/Makefile.am (revision 14632) @@ -197,6 +197,7 @@ ./shared/Numerics/XZvectorsToCoordinateSystem.cpp\ ./shared/Numerics/UnitConversion.cpp\ ./shared/Numerics/OptionsFromAnalysis.cpp\ + ./shared/Numerics/ToolkitsOptionsFromAnalysis.cpp\ ./shared/Exceptions/exceptions.h\ ./shared/Exceptions/Exceptions.cpp\ ./shared/Exceptions/exprintf.cpp\ @@ -727,7 +728,6 @@ ./toolkits/petsc/objects/PetscVec.h\ ./toolkits/petsc/objects/PetscVec.cpp\ ./toolkits/petsc/petscincludes.h\ - ./shared/Numerics/PetscOptionsFromAnalysis.cpp\ ./modules/Solverx/SolverxPetsc.cpp\ ./modules/Solverx/DofTypesToIndexSet.cpp Index: ../trunk-jpl/src/c/classes/FemModel.cpp =================================================================== --- ../trunk-jpl/src/c/classes/FemModel.cpp (revision 14631) +++ ../trunk-jpl/src/c/classes/FemModel.cpp (revision 14632) @@ -269,13 +269,11 @@ this->nodes->SetCurrentConfiguration(elements,loads, nodes,vertices, materials,parameters); this->loads->SetCurrentConfiguration(elements, loads, nodes,vertices, materials,parameters); - #ifdef _HAVE_PETSC_ - /*take care of petsc options, that depend on this analysis type (present only after model processor)*/ - if(this->parameters->Exist(PetscOptionsStringsEnum)){ - PetscOptionsFromAnalysis(this->parameters,analysis_type); - if(VerboseSolver()) _pprintLine_(" petsc Options set for analysis type: " << EnumToStringx(analysis_type)); + /*take care of toolkits options, that depend on this analysis type (present only after model processor)*/ + if(this->parameters->Exist(ToolkitsOptionsStringsEnum)){ + ToolkitsOptionsFromAnalysis(this->parameters,analysis_type); + if(VerboseSolver()) _pprintLine_(" toolkits Options set for analysis type: " << EnumToStringx(analysis_type)); } - #endif } /*}}}*/