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

Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
concepts::CellCondition Class Reference

#include <cellConditions.hh>

Inheritance diagram for concepts::CellCondition:
Inheritance graph
[legend]
Collaboration diagram for concepts::CellCondition:
Collaboration graph
[legend]

List of all members.

Public Types

enum  inactivTypes {
  ACTIVE = 0, INACTIVE, INACTIVEPLUS, SWITCH_ON,
  SWITCH_OFF, DIVIDE, MAX_TYPE
}
 Different types to handle inactive cells. More...

Public Member Functions

bool active (const Connector2 &cell, const Connector0 &vertex) const
 Returns true, if the vertex in cell is active with respect to the cell conditions.
concepts::Set< Attributeattributes () const
 Returns the attribute set.
 CellCondition (const enum inactivTypes type, Set< Attribute > attributes=Set< Attribute >())
 Constructor.
 CellCondition ()
 Default constructor.
 CellCondition (const CellCondition &cnd)
 Copy constructor.
virtual CellConditionoperator= (const CellCondition &i)
 Assignment operator.
enum inactivTypes type () const
 Returns the type of the cell condition.
std::string typeStr () const
 Return the type of the cell condition as output string.
virtual ~CellCondition ()

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.

Private Member Functions

const AttributegetAttr_ (const Connector0 &, const Connector1 &, const Connector1 &) const
 Returns the attribute of the vertex if existing.

Private Attributes

concepts::Set< Attributeattributes_
 The attributes of vertices / edges for the different types:
enum inactivTypes type_
 Type of the inactive cells.

Detailed Description

Definition at line 20 of file cellConditions.hh.


Member Enumeration Documentation

Different types to handle inactive cells.

ACTIVE is the default type.

INACTIVE means, that these cells are in no support of any basis function. Basis functions are cut on boundary of these cells. are no degrees of freedom inside the cell.

INACTIVEPLUS means, that additionally the degrees of freedom on the boundary of the cell are set to passive.

SWITCH_ON builds only the degrees of freedom specified in the set of attributes. Inner degrees of freedom are not built.

SWITCH_OFF builds every degree of freedom except for the ones specified in the attributes set.

DIVIDE takes the degrees of freedom on a facette (edge or face) in the interior such that the degrees of freedom are doubled.

SWITCH_ON and SWITCH_OFF only work for degrees of freedom on the boundary of the cell. For inner degrees of freedom consider the class BuildH1InnerTColumnsLinTrunk in /hp2D/buildH1TColumns.hh. Consider that one cell cannot have two different CellCondition objects. The last inserted one will be the one CellConditions.add(...) is keeping.

REMARK: Be carefull with edge and vertex attributes. If an edge with attribute "a" has a vertex with no attribute, than the vertex degree of freedom will be treated the same way as the edge (SWITCH_ON or SWITCH_OFF). However, this does not apply for adjacent cells with the same vertex. If the vertex in the adjacent cell is to be treated in the same then the vertex itself needs to have the attribute "a". On the other hand, if the vertex has its own attribute, then it is independent of the edge. This method implies that you must respect a further consistency condition within each cell with cellCondition: If ever two adjacent edges have different non zero attributes, the vertex in between them needs its own attribute. By violating this condition you will produce an assertion error. If one of the edge attributes is zero (i.e. the edge has no attribute) the vertex will get the attribute of the other edge or else will also have no attribute if the two edges do not have attributes. Note that this is done in each cell separately, thus there are only two edges a vertex.

Examples for the usage of CellCondition can be found in /geometry/testsuite/testCC.cc or in /hp2D/testsuite/cellconditionsTest.cc.

Enumerator:
ACTIVE 
INACTIVE 
INACTIVEPLUS 
SWITCH_ON 
SWITCH_OFF 
DIVIDE 
MAX_TYPE 

Definition at line 72 of file cellConditions.hh.


Constructor & Destructor Documentation

concepts::CellCondition::CellCondition ( )

Default constructor.

Initializes the type to ACTIVE.

concepts::CellCondition::CellCondition ( const enum inactivTypes  type,
Set< Attribute attributes = SetAttribute >() 
)

Constructor.

concepts::CellCondition::CellCondition ( const CellCondition cnd)

Copy constructor.

virtual concepts::CellCondition::~CellCondition ( ) [virtual]

Member Function Documentation

bool concepts::CellCondition::active ( const Connector2 cell,
const Connector0 vertex 
) const

Returns true, if the vertex in cell is active with respect to the cell conditions.

concepts::Set<Attribute> concepts::CellCondition::attributes ( ) const [inline]

Returns the attribute set.

Definition at line 93 of file cellConditions.hh.

const Attribute& concepts::CellCondition::getAttr_ ( const Connector0 ,
const Connector1 ,
const Connector1  
) const [private]

Returns the attribute of the vertex if existing.

Otherwise returns the attribute of the both adjacent edges.

virtual std::ostream& concepts::CellCondition::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

virtual CellCondition& concepts::CellCondition::operator= ( const CellCondition i) [virtual]

Assignment operator.

enum inactivTypes concepts::CellCondition::type ( ) const [inline]

Returns the type of the cell condition.

Definition at line 90 of file cellConditions.hh.

std::string concepts::CellCondition::typeStr ( ) const

Return the type of the cell condition as output string.


Member Data Documentation

The attributes of vertices / edges for the different types:

Definition at line 111 of file cellConditions.hh.

Type of the inactive cells.

Definition at line 109 of file cellConditions.hh.


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

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