IBAMR  IBAMR version 0.19.
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
IBAMR::IBFEPostProcessor Class Referenceabstract

Class IBFEPostProcessor is a generic interface for specifying the implementation details of a particular post processing algorithm for the IB/FE scheme.

#include <ibamr/IBFEPostProcessor.h>

Inheritance diagram for IBAMR::IBFEPostProcessor:
Inheritance graph
[legend]

Public Member Functions

 IBFEPostProcessor (std::string name, IBTK::FEDataManager *fe_data_manager)
 
virtual ~IBFEPostProcessor ()=default
 
virtual void registerScalarVariable (const std::string &name, libMesh::FEFamily fe_family, libMesh::Order fe_order, IBTK::ScalarMeshFcnPtr fcn, const std::vector< IBTK::SystemData > &system_data=std::vector< IBTK::SystemData >(), void *var_fcn_ctx=nullptr)
 
virtual void registerVectorVariable (const std::string &var_name, libMesh::FEFamily var_fe_family, libMesh::Order var_fe_order, IBTK::VectorMeshFcnPtr var_fcn, const std::vector< IBTK::SystemData > &system_data=std::vector< IBTK::SystemData >(), void *var_fcn_ctx=nullptr, unsigned int var_dim=NDIM)
 
virtual void registerTensorVariable (const std::string &var_name, libMesh::FEFamily var_fe_family, libMesh::Order var_fe_order, IBTK::TensorMeshFcnPtr var_fcn, const std::vector< IBTK::SystemData > &system_data=std::vector< IBTK::SystemData >(), void *var_fcn_ctx=nullptr, unsigned int var_dim=NDIM)
 
virtual void registerInterpolatedScalarEulerianVariable (const std::string &var_name, libMesh::FEFamily var_fe_family, libMesh::Order var_fe_order, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > var, SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > ctx, const IBTK::HierarchyGhostCellInterpolation::InterpolationTransactionComponent &ghost_fill_transaction)
 
virtual void registerInterpolatedScalarEulerianVariable (const std::string &var_name, libMesh::FEFamily var_fe_family, libMesh::Order var_fe_order, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > var, SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > ctx, const IBTK::HierarchyGhostCellInterpolation::InterpolationTransactionComponent &ghost_fill_transaction, const IBTK::FEDataManager::InterpSpec &interp_spec)
 
virtual void initializeFEData ()
 
virtual void postProcessData (double data_time)
 

Static Public Member Functions

static void FF_fcn (libMesh::TensorValue< double > &FF_out, const libMesh::TensorValue< double > &FF_in, const libMesh::Point &, const libMesh::Point &, libMesh::Elem *, const std::vector< const std::vector< double > * > &, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &, double, void *)
 Function for reconstructing the deformation gradient tensor FF = dX/ds. More...
 
static void EE_fcn (libMesh::TensorValue< double > &EE, const libMesh::TensorValue< double > &FF, const libMesh::Point &, const libMesh::Point &, libMesh::Elem *, const std::vector< const std::vector< double > * > &, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &, double, void *)
 Function for reconstructing the Green-Lagrangian strain tensor EE = 0.5*(CC - II), with CC = FF^T FF and FF = dX/ds. More...
 
static void cauchy_stress_from_PK1_stress_fcn (libMesh::TensorValue< double > &sigma, const libMesh::TensorValue< double > &FF, const libMesh::Point &X, const libMesh::Point &s, libMesh::Elem *elem, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &system_grad_var_data, double data_time, void *ctx)
 Function for reconstructing the Cauchy stress from the PK1 stress, using the PK1 stress function data provided by the ctx argument. More...
 
static void deformed_material_axis_fcn (libMesh::VectorValue< double > &f, const libMesh::TensorValue< double > &FF, const libMesh::Point &, const libMesh::Point &, libMesh::Elem *, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &, double, void *)
 Function for reconstructing a deformed material axis. A pointer to the system number must be passed as the ctx argument. More...
 
static void deformed_normalized_material_axis_fcn (libMesh::VectorValue< double > &f, const libMesh::TensorValue< double > &FF, const libMesh::Point &, const libMesh::Point &, libMesh::Elem *, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &, double, void *)
 Function for reconstructing a deformed, normalized material axis. A pointer to the system number must be passed as the ctx argument. More...
 
static void material_axis_stretch_fcn (double &lambda, const libMesh::TensorValue< double > &FF, const libMesh::Point &, const libMesh::Point &, libMesh::Elem *, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &, double, void *)
 Function for reconstructing the stretch in a material axis. A pointer to the system number must be passed as the ctx argument. More...
 

Protected Member Functions

virtual void interpolateVariables (double data_time)
 
virtual void reconstructVariables (double data_time)=0
 

Protected Attributes

const std::string d_name
 
libMesh::MeshBase * d_mesh
 
IBTK::FEDataManagerd_fe_data_manager
 
bool d_fe_data_initialized = false
 
std::vector< libMesh::System * > d_scalar_var_systems
 
std::vector< IBTK::ScalarMeshFcnPtrd_scalar_var_fcns
 
std::vector< std::vector< IBTK::SystemData > > d_scalar_var_system_data
 
std::vector< void * > d_scalar_var_fcn_ctxs
 
std::vector< libMesh::System * > d_vector_var_systems
 
std::vector< IBTK::VectorMeshFcnPtrd_vector_var_fcns
 
std::vector< std::vector< IBTK::SystemData > > d_vector_var_system_data
 
std::vector< void * > d_vector_var_fcn_ctxs
 
std::vector< unsigned intd_vector_var_dims
 
std::vector< libMesh::System * > d_tensor_var_systems
 
std::vector< IBTK::TensorMeshFcnPtrd_tensor_var_fcns
 
std::vector< std::vector< IBTK::SystemData > > d_tensor_var_system_data
 
std::vector< void * > d_tensor_var_fcn_ctxs
 
std::vector< unsigned intd_tensor_var_dims
 
std::vector< libMesh::System * > d_scalar_interp_var_systems
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > > d_scalar_interp_vars
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > > d_scalar_interp_ctxs
 
std::vector< intd_scalar_interp_data_idxs
 
std::vector< intd_scalar_interp_scratch_idxs
 
std::vector< IBTK::HierarchyGhostCellInterpolation::InterpolationTransactionComponentd_scalar_interp_fill_transactions
 
std::vector< IBTK::FEDataManager::InterpSpecd_scalar_interp_specs
 
std::vector< libMesh::System * > d_var_systems
 

Private Member Functions

 IBFEPostProcessor ()=delete
 Default constructor. More...
 
 IBFEPostProcessor (const IBFEPostProcessor &from)=delete
 Copy constructor. More...
 
IBFEPostProcessoroperator= (const IBFEPostProcessor &that)=delete
 Assignment operator. More...
 

Constructor & Destructor Documentation

◆ IBFEPostProcessor() [1/3]

IBAMR::IBFEPostProcessor::IBFEPostProcessor ( std::string  name,
IBTK::FEDataManager fe_data_manager 
)

Constructor.

◆ ~IBFEPostProcessor()

virtual IBAMR::IBFEPostProcessor::~IBFEPostProcessor ( )
virtualdefault

Virtual destructor.

◆ IBFEPostProcessor() [2/3]

IBAMR::IBFEPostProcessor::IBFEPostProcessor ( )
privatedelete
Note
This constructor is not implemented and should not be used.

◆ IBFEPostProcessor() [3/3]

IBAMR::IBFEPostProcessor::IBFEPostProcessor ( const IBFEPostProcessor from)
privatedelete
Note
This constructor is not implemented and should not be used.
Parameters
fromThe value to copy to this object.

Member Function Documentation

◆ FF_fcn()

static void IBAMR::IBFEPostProcessor::FF_fcn ( libMesh::TensorValue< double > &  FF_out,
const libMesh::TensorValue< double > &  FF_in,
const libMesh::Point &  ,
const libMesh::Point &  ,
libMesh::Elem *  ,
const std::vector< const std::vector< double > * > &  ,
const std::vector< const std::vector< libMesh::VectorValue< double > > * > &  ,
double  ,
void *   
)
inlinestatic

◆ EE_fcn()

static void IBAMR::IBFEPostProcessor::EE_fcn ( libMesh::TensorValue< double > &  EE,
const libMesh::TensorValue< double > &  FF,
const libMesh::Point &  ,
const libMesh::Point &  ,
libMesh::Elem *  ,
const std::vector< const std::vector< double > * > &  ,
const std::vector< const std::vector< libMesh::VectorValue< double > > * > &  ,
double  ,
void *   
)
inlinestatic

◆ cauchy_stress_from_PK1_stress_fcn()

static void IBAMR::IBFEPostProcessor::cauchy_stress_from_PK1_stress_fcn ( libMesh::TensorValue< double > &  sigma,
const libMesh::TensorValue< double > &  FF,
const libMesh::Point &  X,
const libMesh::Point &  s,
libMesh::Elem *  elem,
const std::vector< const std::vector< double > * > &  system_var_data,
const std::vector< const std::vector< libMesh::VectorValue< double > > * > &  system_grad_var_data,
double  data_time,
void *  ctx 
)
inlinestatic

◆ deformed_material_axis_fcn()

static void IBAMR::IBFEPostProcessor::deformed_material_axis_fcn ( libMesh::VectorValue< double > &  f,
const libMesh::TensorValue< double > &  FF,
const libMesh::Point &  ,
const libMesh::Point &  ,
libMesh::Elem *  ,
const std::vector< const std::vector< double > * > &  system_var_data,
const std::vector< const std::vector< libMesh::VectorValue< double > > * > &  ,
double  ,
void *   
)
inlinestatic

◆ deformed_normalized_material_axis_fcn()

static void IBAMR::IBFEPostProcessor::deformed_normalized_material_axis_fcn ( libMesh::VectorValue< double > &  f,
const libMesh::TensorValue< double > &  FF,
const libMesh::Point &  ,
const libMesh::Point &  ,
libMesh::Elem *  ,
const std::vector< const std::vector< double > * > &  system_var_data,
const std::vector< const std::vector< libMesh::VectorValue< double > > * > &  ,
double  ,
void *   
)
inlinestatic

◆ material_axis_stretch_fcn()

static void IBAMR::IBFEPostProcessor::material_axis_stretch_fcn ( double lambda,
const libMesh::TensorValue< double > &  FF,
const libMesh::Point &  ,
const libMesh::Point &  ,
libMesh::Elem *  ,
const std::vector< const std::vector< double > * > &  system_var_data,
const std::vector< const std::vector< libMesh::VectorValue< double > > * > &  ,
double  ,
void *   
)
inlinestatic

◆ registerScalarVariable()

virtual void IBAMR::IBFEPostProcessor::registerScalarVariable ( const std::string &  name,
libMesh::FEFamily  fe_family,
libMesh::Order  fe_order,
IBTK::ScalarMeshFcnPtr  fcn,
const std::vector< IBTK::SystemData > &  system_data = std::vector< IBTK::SystemData >(),
void *  var_fcn_ctx = nullptr 
)
virtual

Register a scalar-valued variable for reconstruction.

Reimplemented in IBAMR::IBFECentroidPostProcessor.

◆ registerVectorVariable()

virtual void IBAMR::IBFEPostProcessor::registerVectorVariable ( const std::string &  var_name,
libMesh::FEFamily  var_fe_family,
libMesh::Order  var_fe_order,
IBTK::VectorMeshFcnPtr  var_fcn,
const std::vector< IBTK::SystemData > &  system_data = std::vector< IBTK::SystemData >(),
void *  var_fcn_ctx = nullptr,
unsigned int  var_dim = NDIM 
)
virtual

Register a vector-valued variable for reconstruction.

Reimplemented in IBAMR::IBFECentroidPostProcessor.

◆ registerTensorVariable()

virtual void IBAMR::IBFEPostProcessor::registerTensorVariable ( const std::string &  var_name,
libMesh::FEFamily  var_fe_family,
libMesh::Order  var_fe_order,
IBTK::TensorMeshFcnPtr  var_fcn,
const std::vector< IBTK::SystemData > &  system_data = std::vector< IBTK::SystemData >(),
void *  var_fcn_ctx = nullptr,
unsigned int  var_dim = NDIM 
)
virtual

Register a tensor-valued variable for reconstruction.

Reimplemented in IBAMR::IBFECentroidPostProcessor.

◆ registerInterpolatedScalarEulerianVariable() [1/2]

virtual void IBAMR::IBFEPostProcessor::registerInterpolatedScalarEulerianVariable ( const std::string &  var_name,
libMesh::FEFamily  var_fe_family,
libMesh::Order  var_fe_order,
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > >  var,
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext ctx,
const IBTK::HierarchyGhostCellInterpolation::InterpolationTransactionComponent ghost_fill_transaction 
)
virtual

Register a scalar-valued Eulerian field for reconstruction on the FE mesh. The variable is interpolated using the default interp spec provided by the associated FEDataManager object.

◆ registerInterpolatedScalarEulerianVariable() [2/2]

virtual void IBAMR::IBFEPostProcessor::registerInterpolatedScalarEulerianVariable ( const std::string &  var_name,
libMesh::FEFamily  var_fe_family,
libMesh::Order  var_fe_order,
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > >  var,
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext ctx,
const IBTK::HierarchyGhostCellInterpolation::InterpolationTransactionComponent ghost_fill_transaction,
const IBTK::FEDataManager::InterpSpec interp_spec 
)
virtual

Register a scalar-valued Eulerian field for reconstruction on the FE mesh. The variable is interpolated using the specified interp spec.

◆ initializeFEData()

virtual void IBAMR::IBFEPostProcessor::initializeFEData ( )
virtual

Initialize data used by the post processor.

◆ postProcessData()

virtual void IBAMR::IBFEPostProcessor::postProcessData ( double  data_time)
virtual

Execute all reconstruction and interpolation operations.

◆ interpolateVariables()

virtual void IBAMR::IBFEPostProcessor::interpolateVariables ( double  data_time)
protectedvirtual

Virtual function to interpolate Eulerian data to the mesh.

◆ reconstructVariables()

virtual void IBAMR::IBFEPostProcessor::reconstructVariables ( double  data_time)
protectedpure virtual

Pure virtual function to reconstruct the data on the mesh.

Implemented in IBAMR::IBFECentroidPostProcessor.

◆ operator=()

IBFEPostProcessor& IBAMR::IBFEPostProcessor::operator= ( const IBFEPostProcessor that)
privatedelete
Note
This operator is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

Member Data Documentation

◆ d_name

const std::string IBAMR::IBFEPostProcessor::d_name
protected

Name of the post processor object (used for internal variable context).

◆ d_mesh

libMesh::MeshBase* IBAMR::IBFEPostProcessor::d_mesh
protected

Mesh data.

◆ d_fe_data_manager

IBTK::FEDataManager* IBAMR::IBFEPostProcessor::d_fe_data_manager
protected

◆ d_fe_data_initialized

bool IBAMR::IBFEPostProcessor::d_fe_data_initialized = false
protected

◆ d_scalar_var_systems

std::vector<libMesh::System*> IBAMR::IBFEPostProcessor::d_scalar_var_systems
protected

Scalar-valued reconstruction data.

◆ d_scalar_var_fcns

std::vector<IBTK::ScalarMeshFcnPtr> IBAMR::IBFEPostProcessor::d_scalar_var_fcns
protected

◆ d_scalar_var_system_data

std::vector<std::vector<IBTK::SystemData> > IBAMR::IBFEPostProcessor::d_scalar_var_system_data
protected

◆ d_scalar_var_fcn_ctxs

std::vector<void*> IBAMR::IBFEPostProcessor::d_scalar_var_fcn_ctxs
protected

◆ d_vector_var_systems

std::vector<libMesh::System*> IBAMR::IBFEPostProcessor::d_vector_var_systems
protected

Vector-valued reconstruction data.

◆ d_vector_var_fcns

std::vector<IBTK::VectorMeshFcnPtr> IBAMR::IBFEPostProcessor::d_vector_var_fcns
protected

◆ d_vector_var_system_data

std::vector<std::vector<IBTK::SystemData> > IBAMR::IBFEPostProcessor::d_vector_var_system_data
protected

◆ d_vector_var_fcn_ctxs

std::vector<void*> IBAMR::IBFEPostProcessor::d_vector_var_fcn_ctxs
protected

◆ d_vector_var_dims

std::vector<unsigned int> IBAMR::IBFEPostProcessor::d_vector_var_dims
protected

◆ d_tensor_var_systems

std::vector<libMesh::System*> IBAMR::IBFEPostProcessor::d_tensor_var_systems
protected

Tensor-valued reconstruction data.

◆ d_tensor_var_fcns

std::vector<IBTK::TensorMeshFcnPtr> IBAMR::IBFEPostProcessor::d_tensor_var_fcns
protected

◆ d_tensor_var_system_data

std::vector<std::vector<IBTK::SystemData> > IBAMR::IBFEPostProcessor::d_tensor_var_system_data
protected

◆ d_tensor_var_fcn_ctxs

std::vector<void*> IBAMR::IBFEPostProcessor::d_tensor_var_fcn_ctxs
protected

◆ d_tensor_var_dims

std::vector<unsigned int> IBAMR::IBFEPostProcessor::d_tensor_var_dims
protected

◆ d_scalar_interp_var_systems

std::vector<libMesh::System*> IBAMR::IBFEPostProcessor::d_scalar_interp_var_systems
protected

Eulerian interpolation data.

◆ d_scalar_interp_vars

std::vector<SAMRAI::tbox::Pointer<SAMRAI::hier::Variable<NDIM> > > IBAMR::IBFEPostProcessor::d_scalar_interp_vars
protected

◆ d_scalar_interp_ctxs

std::vector<SAMRAI::tbox::Pointer<SAMRAI::hier::VariableContext> > IBAMR::IBFEPostProcessor::d_scalar_interp_ctxs
protected

◆ d_scalar_interp_data_idxs

std::vector<int> IBAMR::IBFEPostProcessor::d_scalar_interp_data_idxs
protected

◆ d_scalar_interp_scratch_idxs

std::vector<int> IBAMR::IBFEPostProcessor::d_scalar_interp_scratch_idxs
protected

◆ d_scalar_interp_fill_transactions

std::vector<IBTK::HierarchyGhostCellInterpolation::InterpolationTransactionComponent> IBAMR::IBFEPostProcessor::d_scalar_interp_fill_transactions
protected

◆ d_scalar_interp_specs

std::vector<IBTK::FEDataManager::InterpSpec> IBAMR::IBFEPostProcessor::d_scalar_interp_specs
protected

◆ d_var_systems

std::vector<libMesh::System*> IBAMR::IBFEPostProcessor::d_var_systems
protected

Collection of all systems managed by this object.


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