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.