BELFEM 0.9.3
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::mesh::Basis Class Reference

#include <cl_Mesh_Basis.hpp>

Inheritance diagram for belfem::mesh::Basis:
[legend]
Collaboration diagram for belfem::mesh::Basis:
[legend]

Public Member Functions

 Basis ()
 ~Basis () override
 Basis (const Basis &)=delete
Basis & operator= (const Basis &)=delete
 Basis (Basis &&)=delete
Basis & operator= (Basis &&)=delete
virtual EntityType entity_type () const
 returns the type of this vertex
virtual uint number_of_nodes () const
virtual uint number_of_edges () const
virtual uint number_of_faces () const
virtual Node * node (const uint aIndex)
virtual const Node * node (const uint aIndex) const
virtual Edge * edge (const uint aIndex)
virtual const Edge * edge (const uint aIndex) const
virtual Face * face (const uint aIndex=0)
virtual const Face * face (const uint aIndex=0) const
virtual uint number_of_elements () const
virtual Element * element (const uint aIndex)
bool is_hanging () const
uint number_of_sources () const
Basis * source (const uint aIndex)
const Basis * source (const uint aIndex) const
Node * source_node (const uint aIndex)
const Node * source_node (const uint aIndex) const
real weight (const uint aIndex) const
void set_weight (const uint aIndex, const real aValue)
void set_sources (Cell< Basis * > &aSources, const Vector< real > &aCoefficients)
 Stores borrowed pointers to the sources and copies the weights.
void set_sources (Cell< Basis * > &aSources, const Cell< real > &aCoefficients)
void set_sources (Cell< Node * > &aSources, const Vector< real > &aCoefficients)
void reset_source_container ()
void allocate_source_container (uint aNumSources)
void add_source (Basis *aSource, const real aWeight=1.0)
void flag_sources ()
void increment_dof_counter ()
void allocate_dof_container ()
void reset_dof_container ()
void insert_dof (graph::Vertex *aDof)
uint number_of_dofs () const
graph::Vertex * dof (const uint aIndex)
bool holds_dof (const graph::Vertex *aDof) const
bool has_dof_container () const
 true while a container is allocated, whatever its count
Public Member Functions inherited from belfem::graph::Vertex
 Vertex ()=default
virtual ~Vertex ()
void set_id (const id_t aID)
id_t id () const
virtual void set_index (const index_t aIndex)
virtual index_t index () const
virtual void set_owner (const proc_t aOwner)
virtual proc_t owner () const
index_t level () const
void set_level (const index_t aLevel)
virtual void flag (const uint8_t aIndex=0)
virtual void unflag (const uint8_t aIndex=0)
virtual bool is_flagged (const uint8_t aIndex=0) const
void increment_vertex_counter ()
void init_vertex_container ()
void init_vertex_container (const uint aSize)
void reset_vertex_container ()
void insert_vertex (Vertex *aVertex)
uint number_of_vertices () const
virtual Vertex * vertex (const uint aIndex)
virtual auto vertex (const uint aIndex) const -> decltype(this)
virtual void init_element_container ()
virtual void reset_element_container ()
void sort_vertices ()
 sorts the vertices according to their index
void reverse_vertices ()

Additional Inherited Members

Protected Attributes inherited from belfem::graph::Vertex
uint32_t mVertexCounter = 0
Vertex ** mVertices = nullptr

Constructor & Destructor Documentation

◆ Basis() [1/3]

belfem::mesh::Basis::Basis ( )

◆ ~Basis()

belfem::mesh::Basis::~Basis ( )
override

◆ Basis() [2/3]

belfem::mesh::Basis::Basis ( const Basis & )
delete

◆ Basis() [3/3]

belfem::mesh::Basis::Basis ( Basis && )
delete

Member Function Documentation

◆ add_source()

void belfem::mesh::Basis::add_source ( Basis * aSource,
const real aWeight = 1.0 )

Appends one source to the allocation sized by allocate_source_container().

◆ allocate_dof_container()

void belfem::mesh::Basis::allocate_dof_container ( )
inline

◆ allocate_source_container()

void belfem::mesh::Basis::allocate_source_container ( uint aNumSources)

Allocates exactly the number of source slots that subsequent add_source() calls must append. Capacity is deliberately not stored on every Basis; callers own this invariant.

◆ dof()

graph::Vertex * belfem::mesh::Basis::dof ( const uint aIndex)
inline

◆ edge() [1/2]

◆ edge() [2/2]

const Edge * belfem::mesh::Basis::edge ( const uint aIndex) const
virtual

◆ element()

Element * belfem::mesh::Basis::element ( const uint aIndex)
virtual

◆ entity_type()

EntityType belfem::mesh::Basis::entity_type ( ) const
virtual

◆ face() [1/2]

Face * belfem::mesh::Basis::face ( const uint aIndex = 0)
virtual

◆ face() [2/2]

const Face * belfem::mesh::Basis::face ( const uint aIndex = 0) const
virtual

◆ flag_sources()

void belfem::mesh::Basis::flag_sources ( )

◆ has_dof_container()

bool belfem::mesh::Basis::has_dof_container ( ) const
inline

true while a container is allocated, whatever its count

◆ holds_dof()

bool belfem::mesh::Basis::holds_dof ( const graph::Vertex * aDof) const
inline

true if the container holds aDof. Pointers are compared, never dereferenced; false when no container is allocated

◆ increment_dof_counter()

void belfem::mesh::Basis::increment_dof_counter ( )
inline

◆ insert_dof()

void belfem::mesh::Basis::insert_dof ( graph::Vertex * aDof)
inline

◆ is_hanging()

bool belfem::mesh::Basis::is_hanging ( ) const
inline

◆ node() [1/2]

◆ node() [2/2]

const Node * belfem::mesh::Basis::node ( const uint aIndex) const
virtual

◆ number_of_dofs()

uint belfem::mesh::Basis::number_of_dofs ( ) const
inline

◆ number_of_edges()

uint belfem::mesh::Basis::number_of_edges ( ) const
virtual

◆ number_of_elements()

uint belfem::mesh::Basis::number_of_elements ( ) const
virtual

◆ number_of_faces()

uint belfem::mesh::Basis::number_of_faces ( ) const
virtual

◆ number_of_nodes()

uint belfem::mesh::Basis::number_of_nodes ( ) const
virtual

◆ number_of_sources()

uint belfem::mesh::Basis::number_of_sources ( ) const
inline

◆ operator=() [1/2]

Basis & belfem::mesh::Basis::operator= ( Basis && )
delete

◆ operator=() [2/2]

Basis & belfem::mesh::Basis::operator= ( const Basis & )
delete

◆ reset_dof_container()

void belfem::mesh::Basis::reset_dof_container ( )
inline

◆ reset_source_container()

void belfem::mesh::Basis::reset_source_container ( )

◆ set_sources() [1/3]

void belfem::mesh::Basis::set_sources ( Cell< Basis * > & aSources,
const Cell< real > & aCoefficients )

◆ set_sources() [2/3]

void belfem::mesh::Basis::set_sources ( Cell< Basis * > & aSources,
const Vector< real > & aCoefficients )

Stores borrowed pointers to the sources and copies the weights.

The sources and the dofs stay owned by whoever created them. The basis owns its pointer arrays and its copy of the weights. Every set_sources() and insert_dof() overload shares this contract.

◆ set_sources() [3/3]

void belfem::mesh::Basis::set_sources ( Cell< Node * > & aSources,
const Vector< real > & aCoefficients )

◆ set_weight()

void belfem::mesh::Basis::set_weight ( const uint aIndex,
const real aValue )
inline

◆ source() [1/2]

Basis * belfem::mesh::Basis::source ( const uint aIndex)
inline

◆ source() [2/2]

const Basis * belfem::mesh::Basis::source ( const uint aIndex) const
inline

◆ source_node() [1/2]

Node * belfem::mesh::Basis::source_node ( const uint aIndex)

◆ source_node() [2/2]

const Node * belfem::mesh::Basis::source_node ( const uint aIndex) const

◆ weight()

real belfem::mesh::Basis::weight ( const uint aIndex) const
inline

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