|
IBAMR
IBAMR version 0.19.
|
Class VCSCViscousOperator is a subclass of SCLaplaceOperator which implements a globally second-order accurate side-centered finite difference discretization of a vector elliptic operator of the form \( L = \beta C I + \alpha \nabla \cdot \mu ( (\nabla u) + (\nabla u)^T ) \). More...
#include <ibtk/VCSCViscousOperator.h>

Public Member Functions | |
| VCSCViscousOperator (std::string object_name, bool homogeneous_bc=true) | |
| Constructor for class VCSCViscousOperator initializes the operator coefficients and boundary conditions to default values. More... | |
| ~VCSCViscousOperator () | |
| Destructor. More... | |
| virtual void | setPoissonSpecifications (const SAMRAI::solv::PoissonSpecifications &poisson_spec) |
| Set the SAMRAI::solv::PoissonSpecifications object used to specify the coefficients for the scalar-valued or vector-valued Laplace operator. More... | |
| virtual const SAMRAI::solv::PoissonSpecifications & | getPoissonSpecifications () const |
| Get the SAMRAI::solv::PoissonSpecifications object used to specify the coefficients for the scalar-valued or vector-valued Laplace operator. More... | |
| virtual void | setPhysicalBcCoef (SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef) |
| Set the SAMRAI::solv::RobinBcCoefStrategy object used to specify physical boundary conditions. More... | |
| virtual void | setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs) |
| Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions. More... | |
| virtual const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & | getPhysicalBcCoefs () const |
| Get the SAMRAI::solv::RobinBcCoefStrategy object(s) used to specify physical boundary conditions. More... | |
Logging functions. | |
| virtual void | setLoggingEnabled (bool enable_logging=true) |
| Enable or disable logging. More... | |
| virtual bool | getLoggingEnabled () const |
| Determine whether logging is enabled or disabled. More... | |
| virtual void | printClassData (std::ostream &stream) |
| Print class data to stream. More... | |
| const std::string | d_object_name |
| bool | d_is_initialized = false |
| bool | d_homogeneous_bc |
| double | d_solution_time = std::numeric_limits<double>::quiet_NaN() |
| double | d_current_time = std::numeric_limits<double>::quiet_NaN() |
| double | d_new_time = std::numeric_limits<double>::quiet_NaN() |
| SAMRAI::tbox::Pointer< HierarchyMathOps > | d_hier_math_ops |
| bool | d_hier_math_ops_external = false |
| bool | d_enable_logging = false |
Linear operator functionality. | |
| IBTK::VCInterpType | d_D_interp_type |
| void | apply (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &x, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &y) override |
| Compute y=Ax. More... | |
| void | initializeOperatorState (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &in, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &out) override |
| Compute hierarchy-dependent data required for computing y=Ax (and y=A'x). More... | |
| void | deallocateOperatorState () override |
| Remove all hierarchy-dependent data computed by initializeOperatorState(). More... | |
| void | setDPatchDataInterpolationType (IBTK::VCInterpType D_interp_type) |
| Set the interpolation type to be used in computing the variable coefficient viscous Laplacian. More... | |
| VCSCViscousOperator ()=delete | |
| Default constructor. More... | |
| VCSCViscousOperator (const VCSCViscousOperator &from)=delete | |
| Copy constructor. More... | |
| VCSCViscousOperator & | operator= (const VCSCViscousOperator &that)=delete |
| Assignment operator. More... | |
Here \( u \) and \( C \) are vector valued side-centered fields and \( \mu \) is a node-(2D) or edge-(3D) centered scalar field.
The scaling factors of \( C \) and \( \mu \) variables are passed separately and are denoted by \( \beta \) and \( \alpha \), respectively.
| IBTK::VCSCViscousOperator::VCSCViscousOperator | ( | std::string | object_name, |
| bool | homogeneous_bc = true |
||
| ) |
| IBTK::VCSCViscousOperator::~VCSCViscousOperator | ( | ) |
|
privatedelete |
|
privatedelete |
| from | The value to copy to this object. |
|
overridevirtual |
Before calling this function, the form of the vectors x and y should be set properly by the user on all patch interiors on the range of levels covered by the operator. All data in these vectors should be allocated. Thus, the user is responsible for managing the storage for the vectors.
Conditions on arguments:
Upon return from this function, the y vector will contain the result of the application of A to x.
initializeOperatorState must be called prior to any calls to applyOperator.
| x | input |
| y | output: y=Ax |
Reimplemented from IBTK::SCLaplaceOperator.
|
overridevirtual |
| in | input vector |
| out | output vector |
Reimplemented from IBTK::SCLaplaceOperator.
|
overridevirtual |
Remove all hierarchy-dependent data set by initializeOperatorState(). It is safe to call deallocateOperatorState() even if the state is already deallocated.
Reimplemented from IBTK::SCLaplaceOperator.
| void IBTK::VCSCViscousOperator::setDPatchDataInterpolationType | ( | IBTK::VCInterpType | D_interp_type | ) |
|
privatedelete |
| that | The value to assign to this object. |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
| bc_coef | Pointer to an object that can set the Robin boundary condition coefficients |
|
virtualinherited |
| bc_coefs | Vector of pointers to objects that can set the Robin boundary condition coefficients |
|
virtualinherited |
|
overridevirtualinherited |
Before calling this function, the form of the vector y should be set properly by the user on all patch interiors on the range of levels covered by the operator. All data in this vector should be allocated. The user is responsible for managing the storage for the vectors.
Reimplemented from IBTK::GeneralOperator.
|
inherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
Before calling applyAdd(), the form of the vectors x, y, and z should be set properly by the user on all patch interiors on the specified range of levels in the patch hierarchy. The user is responsible for all data management for the quantities associated with the vectors. In particular, patch data in these vectors must be allocated prior to calling this method.
| x | input vector |
| y | input vector |
| z | output vector, i.e., \(z=F[x]+y\) |
Conditions on Parameters:
In general, the vectors x and y cannot be the same.
Reimplemented in IBTK::PETScSNESJacobianJOWrapper, and IBTK::PETScMatLOWrapper.
|
virtualinherited |
Before calling this function, the form of the vector y should be set properly by the user on all patch interiors on the range of levels covered by the operator. All data in this vector should be allocated. The user is responsible for managing the storage for the vectors.
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
private |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
1.8.17