20 #ifndef LIBMESH_DIFF_QOI_H 21 #define LIBMESH_DIFF_QOI_H 24 #include "libmesh/diff_context.h" 67 #ifdef LIBMESH_ENABLE_DEPRECATED 72 virtual void init_qoi( std::vector<Number> & ){}
176 virtual std::unique_ptr<DifferentiableQoI>
clone() =0;
181 virtual void thread_join(std::vector<Number> & qoi,
182 const std::vector<Number> & other_qoi,
183 const QoISet & qoi_indices);
190 std::vector<Number> & sys_qoi,
191 std::vector<Number> & local_qoi,
192 const QoISet & qoi_indices);
204 #endif // LIBMESH_DIFF_QOI_H virtual void parallel_op(const Parallel::Communicator &communicator, std::vector< Number > &sys_qoi, std::vector< Number > &local_qoi, const QoISet &qoi_indices)
Method to populate system qoi data structure with process-local qoi.
This class provides all data required for a physics package (e.g.
Data structure for specifying which Quantities of Interest should be calculated in an adjoint or a pa...
virtual void init_context(DiffContext &)
Prepares the result of a build_context() call for use.
virtual ~DifferentiableQoI()=default
Destructor.
bool assemble_qoi_elements
If assemble_qoi_elements is false (it is true by default), the assembly loop for a quantity of intere...
virtual void element_qoi(DiffContext &, const QoISet &)
Does any work that needs to be done on elem in a quantity of interest assembly loop, outputting to elem_qoi.
The libMesh namespace provides an interface to certain functionality in the library.
Manages consistently variables, degrees of freedom, and coefficient vectors.
virtual void clear_qoi()
Clear all the data structures associated with the QoI.
void init_qoi(std::vector< Number > &)
Non-virtual, to try to help deprecated user code catch this change at compile time (if they specified...
virtual void side_qoi(DiffContext &, const QoISet &)
Does any work that needs to be done on side of elem in a quantity of interest assembly loop...
virtual void thread_join(std::vector< Number > &qoi, const std::vector< Number > &other_qoi, const QoISet &qoi_indices)
Method to combine thread-local qois.
virtual std::unique_ptr< DifferentiableQoI > clone()=0
Copy of this object.
virtual void side_qoi_derivative(DiffContext &, const QoISet &)
Does any work that needs to be done on side of elem in a quantity of interest derivative assembly loo...
This class provides a specific system class.
bool assemble_qoi_internal_sides
If assemble_qoi_internal_sides is true (it is false by default), the assembly loop for a quantity of ...
DifferentiableQoI()
Constructor.
bool assemble_qoi_sides
If assemble_qoi_sides is true (it is false by default), the assembly loop for a quantity of interest ...
virtual void init_qoi_count(System &)
Initialize system qoi.
virtual void element_qoi_derivative(DiffContext &, const QoISet &)
Does any work that needs to be done on elem in a quantity of interest derivative assembly loop...
virtual void finalize_derivative(NumericVector< Number > &derivatives, std::size_t qoi_index)
Method to finalize qoi derivatives which require more than just a simple sum of element contributions...
virtual void init_qoi(std::vector< Number > &)
Initialize system qoi.