Constraints taking the jumps between areas with different dielectric coefficients into account. More...
#include <maxwell-twod-jump.hh>


Classes | |
| class | CellData |
| Contains the data for a cell: which edge and which vertices have the corresponding constraints of a given cell. More... | |
Public Member Functions | |
| virtual void | assembly (const concepts::Element< F > &e, concepts::TColumn< F > *&t, uint &n, uint &j, uint length) |
Returns the TColumns t for this constraint in element e. | |
| virtual constraints::AnalyticalConstraint < F > * | clone () const |
| Creates clone of itself and returns it. | |
| EpsJumpZero (const EpsJumpZero &z) | |
| EpsJumpZero (std::map< uint, concepts::Real2d > &coord, concepts::Attribute a1, Real eps1, concepts::Attribute a2, Real eps2) | |
| Constructor. | |
| virtual void | lengthT (const concepts::Element< F > &e, uint &length) |
| Computes the length of the TColumn. | |
| virtual void | localMatrix (concepts::ElementMatrix< F > &em, uint &j, const constraints::Element< F > &elm) const |
Fills the entries in the local constraints matrix em. | |
| virtual void | localVector (concepts::ElementMatrix< F > &em, uint &j, const constraints::Element< F > &elm) const |
Fills the entries in the local constraints vector em. | |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Private Member Functions | |
| bool | compareCoord_ (const concepts::Real2d &s1, const concepts::Real2d &s2) const |
Returns true if s1 and s2 are very close together. | |
| uint | findCoord_ (const concepts::Real2d ¢er) const |
Finds center in coordinates_ and returns its index. | |
| const hp2D::Quad< Real > * | getScalarQuad_ (const concepts::Element< F > &e) const |
Returns the scalar element which is embedded in e. | |
Private Attributes | |
| std::map< uint, concepts::Real2d > & | coordinates_ |
| Maps assigned dof number. | |
| std::map< uint, CellData > | indices_ [2] |
| Stores the indices of the vertices and edges wrt. | |
| concepts::Attribute | attr_ [2] |
| Edges with these attributes and coefficients are considered. | |
| Real | eps_ [2] |
| Edges with these attributes and coefficients are considered. | |
Constraints taking the jumps between areas with different dielectric coefficients into account.
The tangential component is forced to be continuous over such an interface and the weighted jump of the normal component is forced to be zero.
Definition at line 37 of file maxwell-twod-jump.hh.
| EpsJumpZero< F >::EpsJumpZero | ( | std::map< uint, concepts::Real2d > & | coord, |
| concepts::Attribute | a1, | ||
| Real | eps1, | ||
| concepts::Attribute | a2, | ||
| Real | eps2 | ||
| ) |
Constructor.
| coord | Data structure to syncronise the degrees of freedom between different edges. This is important when different edges share a common point. |
| a1 | Attribute for first edge |
| eps1 | Dielectricity in domain of first edge |
| a2 | Attribute for second edge |
| eps2 | Dielectricity in domain of second edge |
| nV | Vertex with this attribute should not be included. Use nV = 0 to include all vertices in question (endpoints of matching edges). |
| EpsJumpZero< F >::EpsJumpZero | ( | const EpsJumpZero< F > & | z | ) |
| virtual void EpsJumpZero< F >::assembly | ( | const concepts::Element< F > & | e, |
| concepts::TColumn< F > *& | t, | ||
| uint & | n, | ||
| uint & | j, | ||
| uint | length | ||
| ) | [virtual] |
Returns the TColumns t for this constraint in element e.
n contains the next free global index in the space of constraints.
When treating dof by dof constraints, n should be increased after the creation of the TColumn (which gets as global index the old value of n).
When treating global constraints such as a zero mean value, n should be increased only once and all local constraints have to give this index to idx in the constructor of the new TColumn.
A similar idea stands behind j: it counts the local constraints which have already been treated. It therefore has to be increased after treating a constraint. j can be taken as index for the created TColumn to fill in the correct entry.
| e | Element of the computational space |
| t | List of TColumns |
| n | Next free global index in the space of constraints. n is increased if a global constraint is hit for the first time. |
| j | Next free local index for the constraints in this element. j is increased accordingly when treating constraints in this element. |
| length | Length of TColumn |
concepts::TColumn Implements constraints::AnalyticalConstraint< F >.
| virtual constraints::AnalyticalConstraint<F>* EpsJumpZero< F >::clone | ( | ) | const [virtual] |
Creates clone of itself and returns it.
This clone function implements a virtual constructor (cf. Stroustrup p. 424).
Implements constraints::AnalyticalConstraint< F >.
| bool EpsJumpZero< F >::compareCoord_ | ( | const concepts::Real2d & | s1, |
| const concepts::Real2d & | s2 | ||
| ) | const [private] |
Returns true if s1 and s2 are very close together.
| uint EpsJumpZero< F >::findCoord_ | ( | const concepts::Real2d & | center | ) | const [private] |
Finds center in coordinates_ and returns its index.
If center is not found (uint)-1 is returned.
| center | Look for this in coordinates_ |
center or (uint)-1 if center is not found | const hp2D::Quad<Real>* EpsJumpZero< F >::getScalarQuad_ | ( | const concepts::Element< F > & | e | ) | const [private] |
Returns the scalar element which is embedded in e.
| virtual std::ostream& EpsJumpZero< F >::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.
| virtual void EpsJumpZero< F >::lengthT | ( | const concepts::Element< F > & | e, |
| uint & | length | ||
| ) | [virtual] |
Computes the length of the TColumn.
This method decides if this constraint is active on element e and how many local equations it generates. This is added to length.
Implements constraints::AnalyticalConstraint< F >.
| virtual void EpsJumpZero< F >::localMatrix | ( | concepts::ElementMatrix< F > & | em, |
| uint & | j, | ||
| const constraints::Element< F > & | elm | ||
| ) | const [virtual] |
Fills the entries in the local constraints matrix em.
| em | Local constraints matrix. Has to be filled. The rows correspond to local dofs, the columns correspond to the equations this constraints creates in this element. |
| j | Local number of the constraints. Everytime, when a active constraint on the element is treated, j has to be increased by the number of equations this constraint created. |
| elm | Element of the constraints space |
Implements constraints::AnalyticalConstraint< F >.
| virtual void EpsJumpZero< F >::localVector | ( | concepts::ElementMatrix< F > & | em, |
| uint & | j, | ||
| const constraints::Element< F > & | elm | ||
| ) | const [virtual] |
Fills the entries in the local constraints vector em.
The parameters have the same meaning as in localMatrix.
Implements constraints::AnalyticalConstraint< F >.
concepts::Attribute EpsJumpZero< F >::attr_[2] [private] |
Edges with these attributes and coefficients are considered.
Definition at line 86 of file maxwell-twod-jump.hh.
std::map<uint, concepts::Real2d>& EpsJumpZero< F >::coordinates_ [private] |
Maps assigned dof number.
Definition at line 90 of file maxwell-twod-jump.hh.
Real EpsJumpZero< F >::eps_[2] [private] |
Edges with these attributes and coefficients are considered.
Definition at line 87 of file maxwell-twod-jump.hh.
std::map<uint, CellData> EpsJumpZero< F >::indices_[2] [private] |
Stores the indices of the vertices and edges wrt.
the cell which have the respective attr_.
Definition at line 94 of file maxwell-twod-jump.hh.