21#include "libmesh/explicit_system.h"
22#include "libmesh/numeric_vector.h"
31 const std::string & name_in,
32 const unsigned int number_in) :
33 Parent (es, name_in, number_in),
68 bool include_liftfunc,
69 bool apply_constraints)
This is the EquationSystems class.
virtual ~ExplicitSystem()
virtual void assemble_qoi_derivative(const QoISet &qoi_indices=QoISet(), bool include_liftfunc=true, bool apply_constraints=true) override
Prepares adjoint_rhs for quantity of interest derivative assembly, then calls user qoi derivative fun...
virtual void clear() override
Clear all the data structures associated with the system.
virtual void assemble_qoi(const QoISet &qoi_indices=QoISet()) override
Prepares qoi for quantity of interest assembly, then calls user qoi function.
NumericVector< Number > * rhs
The system matrix.
virtual void solve() override
For explicit systems, just assemble the system which should directly compute A*x.
ExplicitSystem(EquationSystems &es, const std::string &name, const unsigned int number)
Constructor.
void add_system_rhs()
Add the system right-hand-side vector to the _vectors data structure.
virtual void zero()=0
Set all entries to zero.
Data structure for specifying which Quantities of Interest should be calculated in an adjoint or a pa...
bool has_index(std::size_t) const
Return whether or not this index is in the set to be calculated.
Manages consistently variables, degrees of freedom, and coefficient vectors.
unsigned int n_vectors() const
virtual void assemble_qoi_derivative(const QoISet &qoi_indices=QoISet(), bool include_liftfunc=true, bool apply_constraints=true)
Calls user qoi derivative function.
void set_qoi(unsigned int qoi_index, Number qoi_value)
NumericVector< Number > & add_vector(std::string_view vec_name, const bool projections=true, const ParallelType type=PARALLEL)
Adds the additional vector vec_name to this system.
virtual void assemble()
Prepares matrix and _dof_map for matrix assembly.
virtual void clear()
Clear all the data structures associated with the system.
unsigned int n_qois() const
Number of currently active quantities of interest.
NumericVector< Number > & add_adjoint_rhs(unsigned int i=0)
virtual void assemble_qoi(const QoISet &qoi_indices=QoISet())
Calls user qoi function.
virtual void update()
Update the local values to reflect the solution on neighboring processors.
The libMesh namespace provides an interface to certain functionality in the library.
IntRange< T > make_range(T beg, T end)
The 2-parameter make_range() helper function returns an IntRange<T> when both input parameters are of...