19 params.
set<
bool>(
"skip_nl_system_check") =
true;
42 _nl[0] = std::make_shared<NonlinearSystem>(*
this,
"nl0");
45 _aux = std::make_shared<AuxiliarySystem>(*
this,
"aux0");
63 TIME_SECTION(
"solve", 1,
"Solving",
false)
const std::size_t _num_nl_sys
The number of nonlinear systems.
virtual void newAssemblyArray(std::vector< std::shared_ptr< SolverSystem >> &solver_systems)
static InputParameters validParams()
std::vector< std::shared_ptr< SolverSystem > > _solver_systems
Combined container to base pointer of every solver system.
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
std::vector< std::shared_ptr< NonlinearSystemBase > > _nl
The nonlinear systems.
void createTagSolutions()
Create extra tagged solution vectors.
void createTagVectors()
Create extra tagged vectors and matrices.
virtual void syncSolutions(Direction direction)=0
Method to transfer data to/from the external application to the associated transfer mesh...
std::shared_ptr< AuxiliarySystem > _aux
The auxiliary system.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
virtual void solve(unsigned int nl_sys_num=0) override final
Solve is implemented to providing syncing to/from the "transfer" mesh.
static InputParameters validParams()
ExternalProblem(const InputParameters ¶meters)
virtual void externalSolve()=0
New interface for solving an External problem.