#include <AbstractBoundaryConditionsContainer.hpp>
Inherited by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 1 >, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 >, and BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 3 >.
Abstract boundary conditions container.
Definition at line 64 of file AbstractBoundaryConditionsContainer.hpp.
typedef std::map< const Node<SPACE_DIM> *, const AbstractBoundaryCondition<SPACE_DIM>*, LessThanNode<SPACE_DIM> >::const_iterator AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DirichletIteratorType [protected] |
To save typing
Definition at line 75 of file AbstractBoundaryConditionsContainer.hpp.
typedef std::map< const Node<SPACE_DIM> *, const AbstractBoundaryCondition<SPACE_DIM>*, LessThanNode<SPACE_DIM> > AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DirichletMapType [protected] |
To save typing
Definition at line 70 of file AbstractBoundaryConditionsContainer.hpp.
AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AbstractBoundaryConditionsContainer | ( | bool | deleteConditions = true |
) | [inline] |
Constructor allocates memory for the Dirichlet boundary conditions lists.
deleteConditions | whether to delete BCs in destructor (defaults to true) |
Definition at line 36 of file AbstractBoundaryConditionsContainerImplementation.hpp.
References AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDirichletMap.
AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::~AbstractBoundaryConditionsContainer | ( | ) | [inline] |
Destructor.
Definition at line 48 of file AbstractBoundaryConditionsContainerImplementation.hpp.
void AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DeleteDirichletBoundaryConditions | ( | std::set< const AbstractBoundaryCondition< SPACE_DIM > * > | alreadyDeletedConditions = std::set<const AbstractBoundaryCondition<SPACE_DIM>*>() |
) | [inline, protected] |
Delete the list of Dirichlet boundary conditions.
alreadyDeletedConditions | This is a set of BCs that have already been deleted that we should avoid trying to delete inside this method. (defaults to empty = delete everything) |
Definition at line 74 of file AbstractBoundaryConditionsContainerImplementation.hpp.
References AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mDeleteConditions, AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mDirichIterator, AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDirichletMap, and AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ResetDirichletCommunication().
Referenced by AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::~AbstractBoundaryConditionsContainer(), and BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::~BoundaryConditionsContainer().
double AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetDirichletBCValue | ( | const Node< SPACE_DIM > * | pBoundaryNode, | |
unsigned | indexOfUnknown = 0 | |||
) | [inline] |
Obtain value of Dirichlet boundary condition at specified node.
This is unlikely to be needed by the user, the methods ApplyDirichletToLinearProblem or ApplyDirichletToNonlinearProblem can be called instead to apply all Dirichlet boundary conditions at the same time.
pBoundaryNode | pointer to a boundary node | |
indexOfUnknown | index of the unknown for which to obtain the value of the boundary condition (defaults to 0) |
Definition at line 104 of file AbstractBoundaryConditionsContainerImplementation.hpp.
References Node< SPACE_DIM >::GetPoint(), AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mDirichIterator, and AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDirichletMap.
bool AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::HasDirichletBoundaryCondition | ( | const Node< SPACE_DIM > * | pNode, | |
unsigned | indexOfUnknown = 0 | |||
) | [inline] |
Test if there is a Dirichlet boundary condition defined on the given node.
pNode | pointer to a node | |
indexOfUnknown | index of the unknown for which to obtain the value of the boundary condition (defaults to 0) |
Definition at line 116 of file AbstractBoundaryConditionsContainerImplementation.hpp.
References AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mDirichIterator, and AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDirichletMap.
Referenced by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Validate().
bool AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::HasDirichletBoundaryConditions | ( | ) | [inline] |
Return whether any Dirichlet conditions are defined (for ANY of the unknowns, on ANY of the processes). Must be called collectively. The first time this is called, the result is communicated to all processes and then cached locally (the bool mHasDirichletBCs). If this needs recalculating mCheckedAndCommunicatedIfDirichletBcs must be reset to zero.
Definition at line 54 of file AbstractBoundaryConditionsContainerImplementation.hpp.
References AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mCheckedAndCommunicatedIfDirichletBcs, AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mHasDirichletBCs, AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDirichletMap, and PetscTools::ReplicateBool().
Referenced by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ApplyDirichletToLinearProblem(), AbstractExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::CheckCompatibilityCondition(), and AbstractExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::FinaliseLinearSystem().
void AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ResetDirichletCommunication | ( | ) | [inline] |
When Dirichlet boundary conditions are likely to be added on one or more processes then we should call this method collectively in order to ensure that all processes do a collective communication on the next call to HasDirichletBoundaryConditions()
Definition at line 145 of file AbstractBoundaryConditionsContainer.hpp.
Referenced by AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DeleteDirichletBoundaryConditions(), AbstractExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetFixedExtracellularPotentialNodes(), and AbstractBidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetFixedExtracellularPotentialNodes().
bool AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mCheckedAndCommunicatedIfDirichletBcs [protected] |
Have we calculated mHasDirichletBCs.
Definition at line 82 of file AbstractBoundaryConditionsContainer.hpp.
Referenced by AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::HasDirichletBoundaryConditions(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::MergeFromArchive(), and AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ResetDirichletCommunication().
bool AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mDeleteConditions [protected] |
Whether to delete BCs in destructor.
Definition at line 85 of file AbstractBoundaryConditionsContainer.hpp.
Referenced by AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DeleteDirichletBoundaryConditions(), and BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::~BoundaryConditionsContainer().
DirichletIteratorType AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mDirichIterator [protected] |
Internal iterator over Dirichlet boundary conditions
Definition at line 76 of file AbstractBoundaryConditionsContainer.hpp.
Referenced by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ApplyDirichletToLinearProblem(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ApplyDirichletToNonlinearJacobian(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ApplyDirichletToNonlinearResidual(), AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DeleteDirichletBoundaryConditions(), AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetDirichletBCValue(), and AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::HasDirichletBoundaryCondition().
bool AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mHasDirichletBCs [protected] |
Whether there are any Dirichlet BCs anywhere on the mesh
Definition at line 79 of file AbstractBoundaryConditionsContainer.hpp.
Referenced by AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::HasDirichletBoundaryConditions(), and BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::MergeFromArchive().
DirichletMapType* AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDirichletMap[PROBLEM_DIM] [protected] |
List (map) of Dirichlet boundary conditions
Definition at line 71 of file AbstractBoundaryConditionsContainer.hpp.
Referenced by AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AbstractBoundaryConditionsContainer(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AddDirichletBoundaryCondition(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ApplyDirichletToLinearProblem(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ApplyDirichletToNonlinearJacobian(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ApplyDirichletToNonlinearResidual(), AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DeleteDirichletBoundaryConditions(), AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetDirichletBCValue(), AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::HasDirichletBoundaryCondition(), AbstractBoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::HasDirichletBoundaryConditions(), and BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::save().