Skip to content

Conversation

@EdwardPalmer99
Copy link
Contributor

@EdwardPalmer99 EdwardPalmer99 commented May 23, 2024

Brief

  • Problem operators have specific solvers associated with them.
  • Easy to subclass existing problem operators and use custom solvers.
  • Enables Update methods to be easily implemented for custom solvers.

Potential Pitfalls
The main pitfalls (i.e. forgetting to apply solver options, etc.) have been addressed however there remain a couple of failure points. The main issue is:

  • Failing to override ApplySolverOptions. If the parent class uses a different solver then this could result in a std::bad_cast.

…. Problem operators now have their own specific preconditioners and solvers.
@EdwardPalmer99 EdwardPalmer99 self-assigned this May 23, 2024
@EdwardPalmer99 EdwardPalmer99 force-pushed the EdwardPalmer99/mesh-update-feature/problem-operators-for-specific-solvers branch from 376f339 to 139973a Compare May 23, 2024 13:17
Edward Palmer added 7 commits May 23, 2024 13:20
… ConstructJacobianSolver method in problem operator classes is now called in the constructor of the base class.
…s ConstructTimestepper to TimeDomainProblemOperator class; called in constructor.
…onstructNonlinearSolver to problem operator classes; called in constructor.
This will allow the virtual method to be overriden in derived classes properly. Virtual methods will not work properly in constructors since derived classes will not yet exist.
@EdwardPalmer99 EdwardPalmer99 force-pushed the EdwardPalmer99/mesh-update-feature/problem-operators-for-specific-solvers branch from 139973a to 9ce6f23 Compare May 23, 2024 13:25
Edward Palmer added 19 commits May 23, 2024 13:27
Replaces clunky InputParameters setup.
…structJacobianSolver in base class for updates.

This is faster and much simpler than having to provide a custom update for each solver.
Edward Palmer added 3 commits May 24, 2024 10:59
Allows ProblemOperatorBase derived classes to set custom default options.
… around ApplySolverOptions; adds ConstructJacobianSolverAndApplyOptions with wraps around ConstructJacobianSolver and ensures that solver options are applied.
@EdwardPalmer99 EdwardPalmer99 marked this pull request as ready for review May 24, 2024 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants