https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MultiSystemSolveObject.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "SolveObject.h"
13
14class SolverSystem;
15class Convergence;
16
21{
22public:
24
26
31 const std::vector<SolverSystem *> & systemsToSolve() const { return _systems; }
32
33protected:
35 std::vector<SolverSystem *> _systems;
36
38 unsigned int _num_nl_systems;
39
46 std::vector<Real> _multi_sys_fp_relax_factors;
50 std::set<SystemBase *> _systems_to_copy_back_multi_sys_fp;
51
52private:
55};
Base class for convergence criteria.
Definition Convergence.h:26
Executioners are objects that do the actual work of solving your problem.
Definition Executioner.h:37
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
A solve object for use when wanting to solve multiple systems.
const bool _using_multi_sys_fp_iterations
Whether we are using fixed point iterations for multi-system.
Convergence * _multi_sys_fp_convergence
Convergence object to assess the convergence of the multi-system fixed point iteration.
std::set< SystemBase * > _systems_to_copy_back_multi_sys_fp
Systems that should save their previous multi-system fixed point solutions.
unsigned int _num_nl_systems
Number of nonlinear systems.
std::vector< Real > _multi_sys_fp_relax_factors
Per-system relaxation factors for multi-system fixed point iterations (expanded to match the number/o...
void setupMultiSystemFixedPointRelaxationFactors()
Initializes/expands the multi-system fixed point relaxation factors.
const std::vector< SolverSystem * > & systemsToSolve() const
Returns a reference to the vector of solver systems that this object is supposed to solve.
std::vector< bool > _perform_multi_sys_fp_relaxation
Whether to perform relaxation for each solve system, indexed over solve system.
static InputParameters validParams()
std::vector< SolverSystem * > _systems
Vector of pointers to the systems.