-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Labels
team: solverstype: enhancementA new feature or enhancement to be implementedA new feature or enhancement to be implemented
Milestone
Description
Description
This is the first part of work in relation to #300.
As discussed on the meeting, the number of solver classes is excessive and should be reduced. I would start with this part of the NOX related refactoring, since this seems to be the simplest task, should be good to get familiar with the other classes too. I just would like to discuss the preliminary plan and a few consequences of this decision, such that everyone is aware of them.
If no objections, I will start with these modifications. Most probably, something else appears while working on these items.
Possible Solution and Definition of Done
Tell us what needs to happen and outline a possible solution. If possible, provide a step-by-step task list along the lines of:
- Delete the base class
Solid::Nln::SOLVER::Genericsince we agreed to rely solely onNOX(src/structure_new/src/nonlinear_solver/4C_structure_new_nln_solver_generic.hpp) - Delete or refactor class
Solid::Nln::SOLVER::NOX(src/structure_new/src/nonlinear_solver/4C_structure_new_nln_solver_nox.hpp) - Delete classes, which implement a specific solver via setting up certain options in the parameters list, this should be done via the corresponding XML files. These are:
Solid::Nln::SOLVER::FullNewton(src/structure_new/src/nonlinear_solver/4C_structure_new_nln_solver_fullnewton.hpp)
Solid::Nln::SOLVER::PseudoTransient(src/structure_new/src/nonlinear_solver/4C_structure_new_nln_solver_ptc.hpp)
Solid::Nln::SOLVER::SingleStep(src/structure_new/src/nonlinear_solver/4C_structure_new_nln_solver_singlestep.hpp)
Solid::Nln::SOLVER::Uzawa(src/structure_new/src/nonlinear_solver/4C_structure_new_nln_solver_uzawa.hpp) (already obsolete) - Delete factory
Solid::Nln::SOLVER::Factory(src/structure_new/src/nonlinear_solver/4C_structure_new_nln_solver_factory.hpp), since the default factorNOX::buildSolver()could be used. - Similar refactoring to be performed within folder
solver_nonlin_nox. - I am also with the presence of flags
isinit_andissetup_. In general, state-dependency always makes it difficult to maintain the code and here we have even two flags. Maybe I could do something to simplify it, maybe it gets postponed for a later step.
Side-effects
- Outputs are not customized anymore, we stick to the default output provided by
NOX. Frankly speaking, the current customizations are not significant and nearly identical to the default. - The implementation of the Pseudo-transient solver from
solver_nonlin_noxgets removed. Note that the default Pseudo-transient solver fromNOXrequiresThyra.
Interested Parties
@vryy @vovannikov @maxfirmbach @sebproell @mayrmt @georghammerl
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
team: solverstype: enhancementA new feature or enhancement to be implementedA new feature or enhancement to be implemented