20 #ifndef LIBMESH_IMPLICIT_SYSTEM_H 21 #define LIBMESH_IMPLICIT_SYSTEM_H 33 template <
typename T>
class LinearSolver;
34 template <
typename T>
class SparseMatrix;
65 const std::string &
name,
66 const unsigned int number);
92 virtual void clear ()
override;
98 virtual void reinit ()
override;
117 virtual std::string
system_type ()
const override {
return "Implicit"; }
140 virtual std::pair<unsigned int, Real>
164 { libmesh_not_implemented(); }
185 { libmesh_not_implemented(); }
194 virtual std::pair<unsigned int, Real>
205 virtual std::pair<unsigned int, Real>
218 virtual std::pair<unsigned int, Real>
233 virtual std::pair<unsigned int, Real>
327 bool have_matrix (
const std::string & mat_name)
const;
366 virtual unsigned int n_matrices ()
const override;
406 std::map<std::string, SparseMatrix<Number> *>
_matrices;
428 return cast_int<unsigned int>(
_matrices.size());
433 #endif // LIBMESH_IMPLICIT_SYSTEM_H virtual void init_data() override
Manages multiples systems of equations.
virtual void qoi_parameter_hessian_vector_product(const QoISet &qoi_indices, const ParameterVector ¶meters, const ParameterVector &vector, SensitivityData &product) override
const SparseMatrix< Number > & get_matrix(const std::string &mat_name) const
bool have_matrix(const std::string &mat_name) const
Specifies parameters for parameter sensitivity calculations.
virtual std::pair< unsigned int, Real > get_linear_solve_parameters() const
Used to specify quantities of interest in a simulation.
virtual std::pair< unsigned int, Real > weighted_sensitivity_solve(const ParameterVector ¶meters, const ParameterVector &weights) override
virtual std::string system_type() const override
virtual void clear() override
virtual void reinit() override
SparseMatrix< Number > & add_matrix(const std::string &mat_name)
virtual ~ImplicitSystem()
virtual LinearSolver< Number > * get_linear_solver() const
virtual std::pair< unsigned int, Real > sensitivity_solve(const ParameterVector ¶meters) override
std::map< std::string, SparseMatrix< Number > * > _matrices
bool zero_out_matrix_and_rhs
virtual std::pair< unsigned int, Real > adjoint_solve(const QoISet &qoi_indices=QoISet()) override
virtual void release_linear_solver(LinearSolver< Number > *) const
virtual void forward_qoi_parameter_sensitivity(const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &sensitivities) override
unsigned int number() const
virtual void assembly(bool, bool, bool=false, bool=false)
Holds completed parameter sensitivity calculations.
virtual void adjoint_qoi_parameter_sensitivity(const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &sensitivities) override
virtual void disable_cache() override
const SparseMatrix< Number > * request_matrix(const std::string &mat_name) const
virtual void solve() override
ImplicitSystem(EquationSystems &es, const std::string &name, const unsigned int number)
std::map< std::string, SparseMatrix< Number > * >::const_iterator const_matrices_iterator
virtual unsigned int n_matrices() const override
void remove_matrix(const std::string &mat_name)
SparseMatrix< Number > * matrix
virtual void assemble_residual_derivatives(const ParameterVector ¶meters) override
std::map< std::string, SparseMatrix< Number > * >::iterator matrices_iterator
virtual void assemble() override
const std::string & name() const
virtual void qoi_parameter_hessian(const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &hessian) override
virtual std::pair< unsigned int, Real > weighted_sensitivity_adjoint_solve(const ParameterVector ¶meters, const ParameterVector &weights, const QoISet &qoi_indices=QoISet()) override
virtual void init_matrices()
Manages consistently variables, degrees of freedom, and coefficient vectors for explicit systems...
Manages consistently variables, degrees of freedom, coefficient vectors, and matrices for implicit sy...