#include <source/solvers/poisson/LocationIndexRobinBcCoefs.h>
Inheritance diagram for SAMRAI::solv::LocationIndexRobinBcCoefs< DIM >:
Public Member Functions | |
LocationIndexRobinBcCoefs (const string &object_name, tbox::Pointer< tbox::Database > database) | |
Constructor. | |
virtual | ~LocationIndexRobinBcCoefs (void) |
Destructor. | |
void | setBcCoefs (tbox::Pointer< pdat::ArrayData< DIM, double > > &acoef_data, tbox::Pointer< pdat::ArrayData< DIM, double > > &gcoef_data, const tbox::Pointer< hier::Variable< DIM > > &variable, const hier::Patch< DIM > &patch, const hier::BoundaryBox< DIM > &bdry_box, double fill_time=0.0) const |
Function to fill arrays of Robin boundary condition coefficients at a patch boundary. | |
hier::IntVector< DIM > | numberOfExtensionsFillable () const |
void | setBoundaryValue (int location_index, double value) |
Set the boundary value at a given location index. | |
void | setBoundarySlope (int location_index, double slope) |
Set the boundary slope at a given location index. | |
void | setRawCoefficients (int location_index, double a, double g) |
Set the values of coefficients a and g at a given location index. | |
void | getCoefficients (int location_index, double &a, double &g) const |
Access coefficients. |
This implementation of the strategy class RobinBcCoefStrategy<DIM> may be used when your Robin boundary condition coefficients are completely determined by the location index of the boundary box.
Before this class is used in to provide the boundary condition coefficients, you must specify what boundary conditions to associate with what location index. Methods for specifying these are setBoundaryValue(), setBoundarySlope() and setRawCoefficients(). The first two are for Dirichlet and Neumann boundary conditions, respectively. If the boundary condition is the more general Robin boundary condition, the third function should be used to set the coefficients a and g directly (see RobinBcCoefStrategy) for the meanings of a and g.
Inputs: You can specify the boundary conditions for any location index through the input database. One line is required for each location index. The input parameters are "boundary_N", where N is the index of the location. Each parameter must be a string array so that all boundary types can be accomodated the same way. The first string must be one of "value", "slope" or "coefficients". If the string is "value" or "slope" the next string is the value you want to set, defaulting to zero if not specified. If the first string is "coefficients", the next two strings specifies the values of a and g.
Examples inputs:
* boundary_0 = "value", "0.0" * boundary_1 = "value", "1.0" * boundary_2 = "slope", "0.0" * boundary_4 = "coefficients", "1.0", "0.0" *
|
Constructor.
|
|
Destructor.
|
|
Function to fill arrays of Robin boundary condition coefficients at a patch boundary. This implementation of the virtual function RobinBcCoefStrategy<DIM>::setBcCoefs() fills the coefficient arrays with constant values set according to the location index of the boundary box.
Implements SAMRAI::solv::RobinBcCoefStrategy< DIM >. |
|
Implements SAMRAI::solv::RobinBcCoefStrategy< DIM >. |
|
Set the boundary value at a given location index.
|
|
Set the boundary slope at a given location index.
|
|
Set the values of coefficients a and g at a given location index. See RobinBcCoefStrategy<DIM> for the definitions of coefficients a and g. If the boundary condition is neither Dirichlet nor Neumann (a general Robin boundary condition), use this function to set the values of the bc coefficients.
|
|
Access coefficients.
|