libMesh
|
#include <H-qoi.h>
Public Member Functions | |
CoupledSystemQoI () | |
virtual | ~CoupledSystemQoI () |
virtual void | init_qoi (std::vector< Number > &sys_qoi) |
virtual void | postprocess () |
virtual void | side_qoi_derivative (DiffContext &context, const QoISet &qois) |
Does any work that needs to be done on side of elem in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative. More... | |
virtual void | side_qoi (DiffContext &context, const QoISet &qois) |
Does any work that needs to be done on side of elem in a quantity of interest assembly loop, outputting to elem_qoi. More... | |
virtual std::unique_ptr< DifferentiableQoI > | clone () |
Copy of this object. More... | |
virtual void | init_qoi (std::vector< Number > &) |
Initialize system qoi. More... | |
virtual void | clear_qoi () |
Clear all the data structures associated with the QoI. More... | |
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. More... | |
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, outputting to elem_qoi_derivative. More... | |
virtual void | init_context (DiffContext &) |
Prepares the result of a build_context() call for use. More... | |
virtual void | thread_join (std::vector< Number > &qoi, const std::vector< Number > &other_qoi, const QoISet &qoi_indices) |
Method to combine thread-local qois. More... | |
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. More... | |
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. More... | |
Public Attributes | |
bool | assemble_qoi_sides |
If assemble_qoi_sides is true (it is false by default), the assembly loop for a quantity of interest or its derivatives will loop over domain boundary sides. More... | |
bool | assemble_qoi_internal_sides |
If assemble_qoi_internal_sides is true (it is false by default), the assembly loop for a quantity of interest or its derivatives will loop over element sides which do not fall on domain boundaries. More... | |
bool | assemble_qoi_elements |
If assemble_qoi_elements is false (it is true by default), the assembly loop for a quantity of interest or its derivatives will skip computing on mesh elements, and will only compute on mesh sides. More... | |
|
inlinevirtual |
|
inlinevirtualinherited |
Clear all the data structures associated with the QoI.
Definition at line 77 of file diff_qoi.h.
Referenced by libMesh::DifferentiableSystem::clear().
|
inlinevirtual |
Copy of this object.
User should override to copy any needed state.
Implements libMesh::DifferentiableQoI.
Definition at line 30 of file H-qoi.h.
|
inlinevirtualinherited |
Does any work that needs to be done on elem
in a quantity of interest assembly loop, outputting to elem_qoi.
Only qois included in the supplied QoISet
need to be assembled.
Reimplemented in LaplaceQoI.
Definition at line 110 of file diff_qoi.h.
|
inlinevirtualinherited |
Does any work that needs to be done on elem
in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative.
Only qois included in the supplied QoISet
need their derivatives assembled.
Reimplemented in LaplaceSystem, LaplaceSystem, LaplaceQoI, and HeatSystem.
Definition at line 122 of file diff_qoi.h.
|
virtualinherited |
Method to finalize qoi derivatives which require more than just a simple sum of element contributions.
Definition at line 53 of file diff_qoi.C.
Referenced by libMesh::FEMSystem::assemble_qoi_derivative().
|
inlinevirtualinherited |
Prepares the result of a build_context() call for use.
Most FEMSystem-based problems will need to reimplement this in order to call FE::get_*() as their particular QoI requires.
Reimplemented in L2System, HeatSystem, HeatSystem, CoupledSystem, ElasticitySystem, LaplaceSystem, CurlCurlSystem, LaplaceSystem, PoissonSystem, LaplaceSystem, LaplaceSystem, CurlCurlSystem, SolidSystem, NavierSystem, LaplaceQoI, and libMesh::FEMSystem.
Definition at line 155 of file diff_qoi.h.
|
inlinevirtualinherited |
Initialize system qoi.
By default, does nothing in order to maintain backward compatibility for FEMSystem applications that control qoi.
Definition at line 71 of file diff_qoi.h.
Referenced by libMesh::DifferentiableSystem::attach_qoi().
|
virtual |
|
virtualinherited |
Method to populate system qoi data structure with process-local qoi.
By default, simply sums process qois into system qoi.
Definition at line 41 of file diff_qoi.C.
Referenced by libMesh::FEMSystem::assemble_qoi().
|
inlinevirtual |
|
virtual |
Does any work that needs to be done on side
of elem
in a quantity of interest assembly loop, outputting to elem_qoi.
Only qois included in the supplied QoISet
need to be assembled.
Reimplemented from libMesh::DifferentiableQoI.
Definition at line 78 of file H-qoi.C.
References libMesh::FEAbstract::get_JxW(), libMesh::DiffContext::get_qois(), libMesh::FEMContext::get_side_fe(), libMesh::FEMContext::get_side_qrule(), libMesh::FEAbstract::get_xyz(), libMesh::FEMContext::has_side_boundary_id(), libMesh::QBase::n_points(), libMesh::Real, and libMesh::FEMContext::side_value().
|
virtual |
Does any work that needs to be done on side
of elem
in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative.
Only qois included in the supplied QoISet
need their derivatives assembled.
Reimplemented from libMesh::DifferentiableQoI.
Definition at line 17 of file H-qoi.C.
References libMesh::FEAbstract::get_JxW(), libMesh::FEGenericBase< OutputType >::get_phi(), libMesh::DiffContext::get_qoi_derivatives(), libMesh::FEMContext::get_side_fe(), libMesh::FEMContext::get_side_qrule(), libMesh::FEAbstract::get_xyz(), libMesh::FEMContext::has_side_boundary_id(), libMesh::DiffContext::n_dof_indices(), libMesh::QBase::n_points(), libMesh::Real, and libMesh::FEMContext::side_value().
|
virtualinherited |
Method to combine thread-local qois.
By default, simply sums thread qois.
Definition at line 33 of file diff_qoi.C.
References libMesh::index_range().
|
inherited |
If assemble_qoi_elements
is false (it is true by default), the assembly loop for a quantity of interest or its derivatives will skip computing on mesh elements, and will only compute on mesh sides.
Definition at line 101 of file diff_qoi.h.
|
inherited |
If assemble_qoi_internal_sides
is true (it is false by default), the assembly loop for a quantity of interest or its derivatives will loop over element sides which do not fall on domain boundaries.
Definition at line 93 of file diff_qoi.h.
|
inherited |
If assemble_qoi_sides
is true (it is false by default), the assembly loop for a quantity of interest or its derivatives will loop over domain boundary sides.
To add domain interior sides, also set assemble_qoi_internal_sides to true.
Definition at line 85 of file diff_qoi.h.
Referenced by main().