IBAMR  IBAMR version 0.19.
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
IBAMR::NonbondedForceEvaluator Class Reference

#include <ibamr/NonbondedForceEvaluator.h>

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

Public Types

using NonBddForceFcnPtr = void(*)(double *D, const SAMRAI::tbox::Array< double > params, double *out_force)
 

Public Member Functions

 NonbondedForceEvaluator (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, SAMRAI::tbox::Pointer< SAMRAI::geom::CartesianGridGeometry< NDIM > > grid_geometry)
 
void evaluateForces (int mstr_petsc_idx, int search_petsc_idx, SAMRAI::tbox::Pointer< IBTK::LData > X_data, std::vector< int > cell_offset, SAMRAI::tbox::Pointer< IBTK::LData > F_data)
 
void computeLagrangianForce (SAMRAI::tbox::Pointer< IBTK::LData > F_data, SAMRAI::tbox::Pointer< IBTK::LData > X_data, SAMRAI::tbox::Pointer< IBTK::LData > U_data, const SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, const int level_number, const double data_time, IBTK::LDataManager *const l_data_manager) override
 Compute the curvilinear force generated by the given configuration of the curvilinear mesh. More...
 
void registerForceFcnPtr (NonBddForceFcnPtr force_fcn_ptr)
 
virtual void setTimeInterval (double current_time, double new_time)
 Set the current and new times for the present timestep. More...
 
virtual void initializeLevelData (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool initial_time, IBTK::LDataManager *l_data_manager)
 Setup the data needed to compute the curvilinear force on the specified level of the patch hierarchy. More...
 
virtual void computeLagrangianForceJacobianNonzeroStructure (std::vector< int > &d_nnz, std::vector< int > &o_nnz, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, IBTK::LDataManager *l_data_manager)
 Compute the non-zero structure of the force Jacobian matrix. More...
 
virtual void computeLagrangianForceJacobian (Mat &J_mat, MatAssemblyType assembly_type, double X_coef, SAMRAI::tbox::Pointer< IBTK::LData > X_data, double U_coef, SAMRAI::tbox::Pointer< IBTK::LData > U_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager)
 Compute the Jacobian of the force with respect to the present structure configuration and velocity. More...
 
virtual double computeLagrangianEnergy (SAMRAI::tbox::Pointer< IBTK::LData > X_data, SAMRAI::tbox::Pointer< IBTK::LData > U_data, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, double data_time, IBTK::LDataManager *l_data_manager)
 Compute the potential energy with respect to the present structure configuration and velocity. More...
 

Private Member Functions

 NonbondedForceEvaluator ()=delete
 
 NonbondedForceEvaluator (const NonbondedForceEvaluator &from)=delete
 
NonbondedForceEvaluatoroperator= (const NonbondedForceEvaluator &that)=delete
 

Private Attributes

double d_interaction_radius
 
double d_regrid_alpha
 
SAMRAI::tbox::Array< doubled_parameters
 
SAMRAI::tbox::Pointer< SAMRAI::geom::CartesianGridGeometry< NDIM > > d_grid_geometry
 
NonBddForceFcnPtr d_force_fcn_ptr
 

Member Typedef Documentation

◆ NonBddForceFcnPtr

Constructor & Destructor Documentation

◆ NonbondedForceEvaluator() [1/3]

IBAMR::NonbondedForceEvaluator::NonbondedForceEvaluator ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database input_db,
SAMRAI::tbox::Pointer< SAMRAI::geom::CartesianGridGeometry< NDIM > >  grid_geometry 
)

◆ NonbondedForceEvaluator() [2/3]

IBAMR::NonbondedForceEvaluator::NonbondedForceEvaluator ( )
privatedelete

◆ NonbondedForceEvaluator() [3/3]

IBAMR::NonbondedForceEvaluator::NonbondedForceEvaluator ( const NonbondedForceEvaluator from)
privatedelete

Member Function Documentation

◆ evaluateForces()

void IBAMR::NonbondedForceEvaluator::evaluateForces ( int  mstr_petsc_idx,
int  search_petsc_idx,
SAMRAI::tbox::Pointer< IBTK::LData X_data,
std::vector< int cell_offset,
SAMRAI::tbox::Pointer< IBTK::LData F_data 
)

◆ computeLagrangianForce()

void IBAMR::NonbondedForceEvaluator::computeLagrangianForce ( SAMRAI::tbox::Pointer< IBTK::LData F_data,
SAMRAI::tbox::Pointer< IBTK::LData X_data,
SAMRAI::tbox::Pointer< IBTK::LData U_data,
const SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
const int  level_number,
const double  data_time,
IBTK::LDataManager *const  l_data_manager 
)
overridevirtual
Note
Nodal forces computed by implementations of this method must be added to the force vector.
A default implementation is provided that results in an assertion failure.

Reimplemented from IBAMR::IBLagrangianForceStrategy.

◆ registerForceFcnPtr()

void IBAMR::NonbondedForceEvaluator::registerForceFcnPtr ( NonBddForceFcnPtr  force_fcn_ptr)

◆ operator=()

NonbondedForceEvaluator& IBAMR::NonbondedForceEvaluator::operator= ( const NonbondedForceEvaluator that)
privatedelete

◆ setTimeInterval()

virtual void IBAMR::IBLagrangianForceStrategy::setTimeInterval ( double  current_time,
double  new_time 
)
virtualinherited
Note
A default empty implementation is provided.

Reimplemented in IBAMR::IBLagrangianForceStrategySet.

◆ initializeLevelData()

virtual void IBAMR::IBLagrangianForceStrategy::initializeLevelData ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  init_data_time,
bool  initial_time,
IBTK::LDataManager l_data_manager 
)
virtualinherited
Note
A default empty implementation is provided.

Reimplemented in IBAMR::IBStandardForceGen, and IBAMR::IBLagrangianForceStrategySet.

◆ computeLagrangianForceJacobianNonzeroStructure()

virtual void IBAMR::IBLagrangianForceStrategy::computeLagrangianForceJacobianNonzeroStructure ( std::vector< int > &  d_nnz,
std::vector< int > &  o_nnz,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
IBTK::LDataManager l_data_manager 
)
virtualinherited
Note
Elements indices must be global PETSc indices.
A default implementation is provided that results in an assertion failure.

Reimplemented in IBAMR::IBStandardForceGen, and IBAMR::IBLagrangianForceStrategySet.

◆ computeLagrangianForceJacobian()

virtual void IBAMR::IBLagrangianForceStrategy::computeLagrangianForceJacobian ( Mat &  J_mat,
MatAssemblyType  assembly_type,
double  X_coef,
SAMRAI::tbox::Pointer< IBTK::LData X_data,
double  U_coef,
SAMRAI::tbox::Pointer< IBTK::LData U_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
virtualinherited
Note
The elements of the Jacobian should be "accumulated" in the provided matrix J.
A default implementation is provided that results in an assertion failure.

Reimplemented in IBAMR::IBStandardForceGen, and IBAMR::IBLagrangianForceStrategySet.

◆ computeLagrangianEnergy()

virtual double IBAMR::IBLagrangianForceStrategy::computeLagrangianEnergy ( SAMRAI::tbox::Pointer< IBTK::LData X_data,
SAMRAI::tbox::Pointer< IBTK::LData U_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  level_number,
double  data_time,
IBTK::LDataManager l_data_manager 
)
virtualinherited
Note
A default implementation is provided that results in an assertion failure.

Reimplemented in IBAMR::IBStandardForceGen, and IBAMR::IBLagrangianForceStrategySet.

Member Data Documentation

◆ d_interaction_radius

double IBAMR::NonbondedForceEvaluator::d_interaction_radius
private

◆ d_regrid_alpha

double IBAMR::NonbondedForceEvaluator::d_regrid_alpha
private

◆ d_parameters

SAMRAI::tbox::Array<double> IBAMR::NonbondedForceEvaluator::d_parameters
private

◆ d_grid_geometry

SAMRAI::tbox::Pointer<SAMRAI::geom::CartesianGridGeometry<NDIM> > IBAMR::NonbondedForceEvaluator::d_grid_geometry
private

◆ d_force_fcn_ptr

NonBddForceFcnPtr IBAMR::NonbondedForceEvaluator::d_force_fcn_ptr
private

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