$extrastylesheet
libMesh::DifferentiableQoI Class Reference

#include <diff_qoi.h>

Inheritance diagram for libMesh::DifferentiableQoI:

List of all members.

Public Member Functions

 DifferentiableQoI ()
virtual ~DifferentiableQoI ()
virtual void init_qoi (std::vector< Number > &)
virtual void clear_qoi ()
virtual void element_qoi (DiffContext &, const QoISet &)
virtual void element_qoi_derivative (DiffContext &, const QoISet &)
virtual void side_qoi (DiffContext &, const QoISet &)
virtual void side_qoi_derivative (DiffContext &, const QoISet &)
virtual void init_context (DiffContext &)
virtual UniquePtr
< DifferentiableQoI
clone ()=0
virtual void thread_join (std::vector< Number > &qoi, const std::vector< Number > &other_qoi, const QoISet &qoi_indices)
virtual void parallel_op (const Parallel::Communicator &communicator, std::vector< Number > &sys_qoi, std::vector< Number > &local_qoi, const QoISet &qoi_indices)

Public Attributes

bool assemble_qoi_sides
bool assemble_qoi_internal_sides
bool assemble_qoi_elements

Detailed Description

This class provides a specific system class. It aims to generalize any system, linear or nonlinear, which provides both a residual and a Jacobian.

This class is part of the new DifferentiableSystem framework, which is still experimental. Users of this framework should beware of bugs and future API changes.

Author:
Roy H. Stogner 2006

Definition at line 50 of file diff_qoi.h.


Constructor & Destructor Documentation

Constructor. Optionally initializes required data structures.

virtual libMesh::DifferentiableQoI::~DifferentiableQoI ( ) [inline, virtual]

Destructor.

Definition at line 63 of file diff_qoi.h.

{}

Member Function Documentation

virtual void libMesh::DifferentiableQoI::clear_qoi ( ) [inline, virtual]

Clear all the data structures associated with the QoI.

Definition at line 75 of file diff_qoi.h.

Referenced by libMesh::DifferentiableSystem::clear().

{}
virtual UniquePtr<DifferentiableQoI> libMesh::DifferentiableQoI::clone ( ) [pure virtual]

Copy of this object. User should override to copy any needed state.

Implemented in libMesh::DifferentiableSystem.

Referenced by libMesh::DifferentiableSystem::attach_qoi().

virtual void libMesh::DifferentiableQoI::element_qoi ( DiffContext ,
const QoISet  
) [inline, virtual]

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.

Definition at line 108 of file diff_qoi.h.

  {}
virtual void libMesh::DifferentiableQoI::element_qoi_derivative ( DiffContext ,
const QoISet  
) [inline, virtual]

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.

Definition at line 120 of file diff_qoi.h.

  {}
virtual void libMesh::DifferentiableQoI::init_context ( DiffContext ) [inline, virtual]

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 libMesh::FEMSystem.

Definition at line 153 of file diff_qoi.h.

{}
virtual void libMesh::DifferentiableQoI::init_qoi ( std::vector< Number > &  ) [inline, virtual]

Initialize system qoi. By default, does nothing in order to maintain backward compatibility for FEMSystem applications that control qoi.

Definition at line 69 of file diff_qoi.h.

Referenced by libMesh::DifferentiableSystem::attach_qoi().

{}
virtual void libMesh::DifferentiableQoI::parallel_op ( const Parallel::Communicator communicator,
std::vector< Number > &  sys_qoi,
std::vector< Number > &  local_qoi,
const QoISet qoi_indices 
) [virtual]

Method to populate system qoi data structure with process-local qoi. By default, simply sums process qois into system qoi.

Referenced by libMesh::FEMSystem::assemble_qoi().

virtual void libMesh::DifferentiableQoI::side_qoi ( DiffContext ,
const QoISet  
) [inline, 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.

Definition at line 131 of file diff_qoi.h.

  {}
virtual void libMesh::DifferentiableQoI::side_qoi_derivative ( DiffContext ,
const QoISet  
) [inline, 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.

Definition at line 143 of file diff_qoi.h.

  {}
virtual void libMesh::DifferentiableQoI::thread_join ( std::vector< Number > &  qoi,
const std::vector< Number > &  other_qoi,
const QoISet qoi_indices 
) [virtual]

Method to combine thread-local qois. By default, simply sums thread qois.


Member Data Documentation

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 99 of file diff_qoi.h.

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 91 of file diff_qoi.h.

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 83 of file diff_qoi.h.


The documentation for this class was generated from the following file: