|
IBAMR
IBAMR version 0.19.
|
Class INSVCStaggeredVelocityBcCoef is a concrete StokesBcCoefStrategy that is used to specify velocity boundary conditions for the staggered grid incompressible Navier-Stokes solver with variable coefficents. More...
#include <ibamr/INSVCStaggeredVelocityBcCoef.h>

Public Member Functions | |
| INSVCStaggeredVelocityBcCoef (unsigned int comp_idx, const INSVCStaggeredHierarchyIntegrator *fluid_solver, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, TractionBcType traction_bc_type, bool homogeneous_bc=false) | |
| Constructor. More... | |
| ~INSVCStaggeredVelocityBcCoef ()=default | |
| Destructor. More... | |
| void | setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs) |
| Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions. More... | |
| void | setSolutionTime (double solution_time) |
| Set the time at which the solution is to be evaluated. More... | |
| void | setTimeInterval (double current_time, double new_time) |
| Set the current time interval. More... | |
| virtual void | setTractionBcType (TractionBcType bc_type) |
| Set the type of traction boundary conditions. Supported options are: TRACTION_BOUNDARY_CONDITIONS and PSEUDO_TRACTION_BOUNDARY_CONDITIONS. More... | |
| virtual TractionBcType | getTractionBcType () const |
| Get the type of traction boundary conditions. More... | |
StokesBcCoefStrategy interface. | |
| void | setStokesSpecifications (const StokesSpecifications *problem_coefs) override |
| Set the StokesSpecifications object used by this boundary condition specification object. More... | |
| void | setTargetVelocityPatchDataIndex (int u_target_data_idx) override |
| Set the target velocity data index to use when setting physical boundary conditions and the time at which it is defined. More... | |
| void | clearTargetVelocityPatchDataIndex () override |
| Clear the target velocity data index used when setting physical boundary conditions. More... | |
| void | setTargetPressurePatchDataIndex (int p_target_data_idx) override |
| Set the target pressure data index to use when setting physical boundary conditions and the time at which it is defined. More... | |
| void | clearTargetPressurePatchDataIndex () override |
| Clear the target pressure data index used when setting physical boundary conditions. More... | |
Extended SAMRAI::solv::RobinBcCoefStrategy interface. | |
| void | setTargetPatchDataIndex (int target_idx) override |
| Set the target data index. More... | |
| void | clearTargetPatchDataIndex () override |
| Clear the target data index. More... | |
| void | setHomogeneousBc (bool homogeneous_bc) override |
| Set whether the class is filling homogeneous or inhomogeneous boundary conditions. More... | |
This class interprets pure Dirichlet boundary conditions on the velocity as prescribed velocity boundary conditions, whereas pure Neumann boundary conditions are interpreted as prescribed traction (stress) boundary conditions. These are translated into Dirichlet and generalized Neumann boundary conditions, respectively, for the velocity.
Dirichlet, true traction, and pseudo-traction boundary conditions are all supported.
| IBAMR::INSVCStaggeredVelocityBcCoef::INSVCStaggeredVelocityBcCoef | ( | unsigned int | comp_idx, |
| const INSVCStaggeredHierarchyIntegrator * | fluid_solver, | ||
| const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & | bc_coefs, | ||
| TractionBcType | traction_bc_type, | ||
| bool | homogeneous_bc = false |
||
| ) |
|
default |
|
privatedelete |
|
privatedelete |
| from | The value to copy to this object. |
| void IBAMR::INSVCStaggeredVelocityBcCoef::setPhysicalBcCoefs | ( | const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & | bc_coefs | ) |
| bc_coefs | IBTK::Vector of boundary condition specification objects |
| void IBAMR::INSVCStaggeredVelocityBcCoef::setSolutionTime | ( | double | solution_time | ) |
|
overridevirtual |
| problem_coefs | Problem coefficients |
Reimplemented from IBAMR::StokesBcCoefStrategy.
|
overridevirtual |
Reimplemented from IBAMR::StokesBcCoefStrategy.
|
overridevirtual |
Reimplemented from IBAMR::StokesBcCoefStrategy.
|
overridevirtual |
Reimplemented from IBAMR::StokesBcCoefStrategy.
|
overridevirtual |
Reimplemented from IBAMR::StokesBcCoefStrategy.
|
overridevirtual |
Reimplemented from IBTK::ExtendedRobinBcCoefStrategy.
|
overridevirtual |
Reimplemented from IBTK::ExtendedRobinBcCoefStrategy.
|
overridevirtual |
Reimplemented from IBTK::ExtendedRobinBcCoefStrategy.
|
override |
| acoef_data | Boundary coefficient data. The array will have been defined to include index range for corresponding to the boundary box bdry_box and appropriate for the alignment of the given variable. If this is a null pointer, then the calling function is not interested in a, and you can disregard it. |
| bcoef_data | Boundary coefficient data. This array is exactly like acoef_data, except that it is to be filled with the b coefficient. |
| gcoef_data | Boundary coefficient data. This array is exactly like acoef_data, except that it is to be filled with the g coefficient. |
| variable | Variable to set the coefficients for. If implemented for multiple variables, this parameter can be used to determine which variable's coefficients are being sought. |
| patch | Patch requiring bc coefficients. |
| bdry_box | Boundary box showing where on the boundary the coefficient data is needed. |
| fill_time | Solution time corresponding to filling, for use when coefficients are time-dependent. |
|
override |
|
privatedelete |
| that | The value to assign to this object. |
|
virtualinherited |
The default is TRACTION_BOUNDARY_CONDITIONS.
|
virtualinherited |
|
pure virtualinherited |
This class specifies the Robin boundary condition coefficients at discrete locations on the patch boundary. Though these locations are defined by boundary box object, they do not necessarily coincide with the centers of the cells referred to by those boxes. These locations typically coincide with the nodes or face centers which do lie on the patch boundary. Accordingly, you use this function to provide the boundary coefficients at those locations by filling an array at indices corresponding to those locations.
When setting the values of the boundary condition coefficients it is useful to note that for any cell (i,j,k), the indices of the sides, edges and nodes are easily determined. The index on the lower side of the cell is the same as the index of the cell, whereas the index on the upper side of the cell has the next higher value. In 2D, the cell and its surrounding nodes and faces has the following indices:
* * (i,j+1)----(i,j+1)---(i+1,j+1) * | | * | | * | | * | | * (i,j) (i,j) (i+1,j) * | | * | | * | | * | | * (i,j)------(i,j)-----(i+1,j) * *
Once this is understood, translation between the index in the boundary box index space to the index of things on the boundary is simple.
The boundary condition coefficients should be placed in the pdat::ArrayData<DIM> objects, acoef_data and gcoef_data (see argument list), which are dimensioned to contain the indices of the points alligned with variable and lying on the the boundary defined by bdry_box.
This function is only used with type-1 boundary boxes, such as faces in 3D. Other types of boundaries do not have a well-defined surface normal.
The parameter variable is passed through to tell the implementation of this function what variable to set the coefficients for. You may wish to ignore it if your implementation is intended for a specific variable.
| acoef_data | boundary coefficient data. The array will have been defined to include index range for corresponding to the boundary box bdry_box and appropriate for the alignment of the given variable. If this is a null pointer, then the calling function is not interested in a, and you can disregard it. |
| bcoef_data | boundary coefficient data. This array is exactly like acoef_data, except that it is to be filled with the b coefficient. |
| gcoef_data | boundary coefficient data. This array is exactly like acoef_data, except that it is to be filled with the g coefficient. |
| variable | variable to set the coefficients for. If implemented for multiple variables, this parameter can be used to determine which variable's coefficients are being sought. |
| patch | patch requiring bc coefficients |
| bdry_box | boundary box showing where on the boundary the coefficient data is needed. |
| fill_time | solution time corresponding to filling, for use when coefficients are time-dependent. |
|
pure virtualinherited |
|
private |
|
private |
|
private |
|
protectedinherited |
|
protectedinherited |
Patch data indices.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
1.8.17