#include <source/apputils/boundary/CartesianBoundaryUtilities2.h>
Static Public Member Functions | |
static void | readBoundaryInput (BoundaryUtilityStrategy *bdry_strategy, tbox::Pointer< tbox::Database > bdry_db, tbox::Array< int > &edge_conds, tbox::Array< int > &node_conds, const hier::IntVector< 2 > &periodic) |
static void | fillEdgeBoundaryData (const string &varname, tbox::Pointer< pdat::CellData< 2, double > > &vardata, const hier::Patch< 2 > &patch, const hier::IntVector< 2 > &ghost_width_to_fill, const tbox::Array< int > &bdry_edge_conds, const tbox::Array< double > &bdry_edge_values) |
static void | fillNodeBoundaryData (const string &varname, tbox::Pointer< pdat::CellData< 2, double > > &vardata, const hier::Patch< 2 > &patch, const hier::IntVector< 2 > &ghost_width_to_fill, const tbox::Array< int > &bdry_node_conds, const tbox::Array< double > &bdry_edge_values) |
static int | getEdgeLocationForNodeBdry (int node_loc, int node_btype) |
static int | checkBdryData (const string &varname, const hier::Patch< 2 > &patch, int data_id, int depth, const hier::IntVector< 2 > &gcw_to_check, const hier::BoundaryBox< 2 > &bbox, int bcase, double bstate) |
To use the boundary condition input reading capabilities, the format of the input file section containing the boundary information must be as described next. Boundary node and edge entries are only required for those that are not filled automatically when periodic conditions apply.
The boundary condition for edge "*" is provided in a section as follows:
* * boundary_edge_* { * boundary_condition = ... // boundary condition string identifier * // Any problem-specific boundary data read by user routines * // is placed here... * } * * Allowable edge identifiers (i.e., values for "*") are: * xlo, xhi, ylo, yhi * Supported edge boundary_condition strin values are: * "FLOW", "REFLECT", "DIRICHLET", "NEUMANN" * *
The boundary condition for node "*" is provided in a section as follows:
* * boundary_node_* { * boundary_condition = ... // boundary condition string identifier * } * * Allowable node identifiers (i.e., values for "*") are: * xlo_ylo, xhi_ylo, xlo_yhi, xhi_yhi * Supported node boundary_condition string values are: * "XFLOW", "YFLOW", * "XREFLECT", "YREFLECT", * "XDIRICHLET", "YDIRICHLET", * "XNEUMANN", "YNEUMANN" * *
Note that node conditions must be consistent with adjacent edge conditions.
See the include file CartesianBoundaryDefines.h for integer constant definitions that apply for the various boundary types, locations, and boundary conditions. If you choose to use the input reading capabilities only and write your own boundary condition routines in FORTRAN, you should note that the integer constants for the various boundary condition types and locations are automatically "stuffed" into FORTRAN common blocks. This avoids potential problems with inconsistencies between C++ and FORTRAN usage. Please see the FORTRAN include file cartbdryparams2d.i for details.
|
Function to read 2d boundary data from input database. The integer boundary condition types are placed in the integer arrays supplied by the caller (typically, the concrete BoundaryUtilityStrategy object provided). When DIRICHLET or NEUMANN conditions are specified, control is passed to the BoundaryUtilityStrategy to read the boundary state data specific to the problem. Errors will be reported and the program will abort whenever necessary boundary condition information is missing in the input database, or when the data read in is either unknown or inconsistent. The periodic domain information is used to determine which boundary edge or node entries are not required from input. Error checking requires that node boundary conditions are consistent with those specified for the edges. When assertion checking is active, assertions will result when any of the pointer arguments is null, or an array is passed in with the the wrong size.
|
|
Function to fill 2d edge boundary values for a patch. When assertion checking is active, assertions will result when any of the pointer arguments is null, or an array is passed in with the the wrong size.
|
|
Function to fill 2d node boundary values for a patch. When assertion checking is active, assertions will result when any of the pointer arguments is null, or an array is passed in with the the wrong size.
|
|
Function that returns the integer edge boundary location corresponding to the given node location and node boundary condition. If the node boundary condition type or node location are unknown, or the boundary condition type is inconsistant with the node location an error results.
|
|
Function to check 2d boundary data for a patch data quantity on a patch after it is set. A warning message will be sent to log file for each bad boundary value that is found. When assertion checking is active, assertions will result when any of the pointer arguments is null, or an array is passed in with the the wrong size.
|