MADNESS  version 0.9
Public Member Functions | Static Public Member Functions | List of all members
madness::BoundaryConditions< NDIM > Class Template Reference

This class is used to specify boundary conditions for all operatorsExterior boundary conditions (i.e., on the simulation domain) are associated with operators (not functions). The types of boundary conditions available are in the enum BCType. More...

#include <funcdefaults.h>

Public Member Functions

 BoundaryConditions (BCType code=BC_FREE)
 Constructor. Default boundary condition set to free space. More...
 
 BoundaryConditions (const BoundaryConditions< NDIM > &other)
 Copy constructor is deep. More...
 
BoundaryConditions< NDIM > & operator= (const BoundaryConditions< NDIM > &other)
 Assignment makes deep copy. More...
 
BCType operator() (std::size_t d, int i) const
 Returns value of boundary condition. More...
 
BCTypeoperator() (std::size_t d, int i)
 Returns reference to boundary condition. More...
 
template<typename Archive >
void serialize (const Archive &ar)
 
std::vector< bool > is_periodic () const
 Convenience for application of integral operators. More...
 

Static Public Member Functions

static const char * code_as_string (BCType code)
 Translates code into human readable string. More...
 

Detailed Description

template<std::size_t NDIM>
class madness::BoundaryConditions< NDIM >

This class is used to specify boundary conditions for all operators

Exterior boundary conditions (i.e., on the simulation domain) are associated with operators (not functions). The types of boundary conditions available are in the enum BCType.

The default boundary conditions are obtained from the FunctionDefaults. For non-zero Dirichlet and Neumann conditions additional information must be provided when derivative operators are constructed. For integral operators, only periodic and free space are supported.

Constructor & Destructor Documentation

template<std::size_t NDIM>
madness::BoundaryConditions< NDIM >::BoundaryConditions ( BCType  code = BC_FREE)
inline

Constructor. Default boundary condition set to free space.

template<std::size_t NDIM>
madness::BoundaryConditions< NDIM >::BoundaryConditions ( const BoundaryConditions< NDIM > &  other)
inline

Copy constructor is deep.

Member Function Documentation

template<std::size_t NDIM>
static const char* madness::BoundaryConditions< NDIM >::code_as_string ( BCType  code)
inlinestatic

Translates code into human readable string.

Parameters
codeCode for boundary condition
Returns
String describing boundary condition code
template<std::size_t NDIM>
std::vector<bool> madness::BoundaryConditions< NDIM >::is_periodic ( ) const
inline

Convenience for application of integral operators.

Returns
Returns a vector indicating if each dimension is periodic

Referenced by madness::FunctionImpl< T, NDIM >::project_refine_op().

template<std::size_t NDIM>
BCType madness::BoundaryConditions< NDIM >::operator() ( std::size_t  d,
int  i 
) const
inline

Returns value of boundary condition.

Parameters
dDimension (0,...,NDIM-1) for boundary condition
iSide (0=left, 1=right) for boundary condition
Returns
Value of boundary condition
template<std::size_t NDIM>
BCType& madness::BoundaryConditions< NDIM >::operator() ( std::size_t  d,
int  i 
)
inline

Returns reference to boundary condition.

Parameters
dDimension (0,...,NDIM-1) for boundary condition
iSide (0=left, 1=right) for boundary condition
Returns
Value of boundary condition
template<std::size_t NDIM>
BoundaryConditions<NDIM>& madness::BoundaryConditions< NDIM >::operator= ( const BoundaryConditions< NDIM > &  other)
inline

Assignment makes deep copy.

template<std::size_t NDIM>
template<typename Archive >
void madness::BoundaryConditions< NDIM >::serialize ( const Archive &  ar)
inline

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