#include <cellConditions.hh>

Inheritance diagram for concepts::CellCondition:
concepts::OutputOperator

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. More...
 
concepts::Set< Attributeattributes () const
 Returns the attribute set. More...
 
 CellCondition ()
 Default constructor. More...
 
 CellCondition (const CellCondition &cnd)
 Copy constructor. More...
 
 CellCondition (const enum inactivTypes type, Set< Attribute > attributes=Set< Attribute >())
 Constructor. More...
 
virtual CellConditionoperator= (const CellCondition &i)
 Assignment operator. More...
 
enum inactivTypes type () const
 Returns the type of the cell condition. More...
 
std::string typeStr () const
 Return the type of the cell condition as output string. More...
 
virtual ~CellCondition ()
 

Protected Member Functions

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

Private Member Functions

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

Private Attributes

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

Detailed Description

Definition at line 22 of file cellConditions.hh.

Member Enumeration Documentation

◆ inactivTypes

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 74 of file cellConditions.hh.

Constructor & Destructor Documentation

◆ CellCondition() [1/3]

concepts::CellCondition::CellCondition ( )

Default constructor.

Initializes the type to ACTIVE.

◆ CellCondition() [2/3]

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

Constructor.

◆ CellCondition() [3/3]

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

Copy constructor.

◆ ~CellCondition()

virtual concepts::CellCondition::~CellCondition ( )
virtual

Member Function Documentation

◆ active()

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.

◆ attributes()

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

Returns the attribute set.

Definition at line 95 of file cellConditions.hh.

◆ getAttr_()

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.

◆ info()

virtual std::ostream& concepts::CellCondition::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

◆ operator=()

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

Assignment operator.

◆ type()

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

Returns the type of the cell condition.

Definition at line 89 of file cellConditions.hh.

◆ typeStr()

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

Return the type of the cell condition as output string.

Member Data Documentation

◆ attributes_

concepts::Set<Attribute> concepts::CellCondition::attributes_
private

The attributes of vertices / edges for the different types:

Definition at line 113 of file cellConditions.hh.

◆ type_

enum inactivTypes concepts::CellCondition::type_
private

Type of the inactive cells.

Definition at line 108 of file cellConditions.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich