Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
EpsJumpZero< F > Class Template Reference

Constraints taking the jumps between areas with different dielectric coefficients into account. More...

#include <maxwell-twod-jump.hh>

Inheritance diagram for EpsJumpZero< F >:
Inheritance graph
[legend]
Collaboration diagram for EpsJumpZero< F >:
Collaboration graph
[legend]

List of all members.

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 &center) 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, CellDataindices_ [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.

Detailed Description

template<typename F>
class EpsJumpZero< F >

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.

Precondition:
Each element must not have more than one edge with the same attribute for this constraint.
Author:
Philipp Frauenfelder, 2004

Definition at line 37 of file maxwell-twod-jump.hh.


Constructor & Destructor Documentation

template<typename F >
EpsJumpZero< F >::EpsJumpZero ( std::map< uint, concepts::Real2d > &  coord,
concepts::Attribute  a1,
Real  eps1,
concepts::Attribute  a2,
Real  eps2 
)

Constructor.

Parameters:
coordData structure to syncronise the degrees of freedom between different edges. This is important when different edges share a common point.
a1Attribute for first edge
eps1Dielectricity in domain of first edge
a2Attribute for second edge
eps2Dielectricity in domain of second edge
nVVertex with this attribute should not be included. Use nV = 0 to include all vertices in question (endpoints of matching edges).
template<typename F >
EpsJumpZero< F >::EpsJumpZero ( const EpsJumpZero< F > &  z)

Member Function Documentation

template<typename F >
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.

Parameters:
eElement of the computational space
tList of TColumns
nNext free global index in the space of constraints. n is increased if a global constraint is hit for the first time.
jNext free local index for the constraints in this element. j is increased accordingly when treating constraints in this element.
lengthLength of TColumn
See also:
concepts::TColumn

Implements constraints::AnalyticalConstraint< F >.

template<typename 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 >.

template<typename 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.

template<typename F >
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.

Parameters:
centerLook for this in coordinates_
Returns:
Index of center or (uint)-1 if center is not found
template<typename F >
const hp2D::Quad<Real>* EpsJumpZero< F >::getScalarQuad_ ( const concepts::Element< F > &  e) const [private]

Returns the scalar element which is embedded in e.

template<typename F >
virtual std::ostream& EpsJumpZero< F >::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

template<typename F >
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 >.

template<typename 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.

Parameters:
emLocal constraints matrix. Has to be filled. The rows correspond to local dofs, the columns correspond to the equations this constraints creates in this element.
jLocal 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.
elmElement of the constraints space

Implements constraints::AnalyticalConstraint< F >.

template<typename 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 >.


Member Data Documentation

template<typename 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.

template<typename F >
std::map<uint, concepts::Real2d>& EpsJumpZero< F >::coordinates_ [private]

Maps assigned dof number.

Definition at line 90 of file maxwell-twod-jump.hh.

template<typename F >
Real EpsJumpZero< F >::eps_[2] [private]

Edges with these attributes and coefficients are considered.

Definition at line 87 of file maxwell-twod-jump.hh.

template<typename F >
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.


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

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)