b2api
B2000++ API Reference Manual, VERSION 4.6
 
Loading...
Searching...
No Matches
b2000::DegreesOfFreedom Class Reference

#include "b2degrees_of_freedom.H"

Inheritance diagram for b2000::DegreesOfFreedom:
Collaboration diagram for b2000::DegreesOfFreedom:

Public Member Functions

virtual int get_number_of_dof () const
 
virtual size_t set_global_dof_numbering (size_t index)
 
virtual std::pair< size_t, size_t > get_global_dof_numbering () const
 
- Public Member Functions inherited from b2000::Object
virtual const std::string & get_object_name () const
 
virtual ~Object ()
 

Additional Inherited Members

- Static Public Attributes inherited from b2000::Object
static ObjectType type
 

Detailed Description

Abstract class defining an interface for entities containing degrees-of-freedom (dof's). The purpose is to establish a numbering scheme for all dof's present in a Finite Element model. Derived classes need to override only the pure virtual functions.

Entities containing degrees-of-freedom are typically Node and Element instances. Node instances define e.g. displacement and/or rotation degrees-of-freedom, while Element instances may define element-internal degrees-of-freedom, such as incompatible modes.

The degrees-of-freedom belonging to an entity are sequentially arranged in the global solution vector: If the number of dof's of an entity is n, and i is the index into the global solution vector for the first dof, then the global numbering is [i, i + 1, i + 2, ..., i + (n - 1)]. The start index for the next entity is j = i + n, thus, the global numbering for the next entity is [j, j + 1, ..., j + (m - 1)], with m being the number of dof's of the next entity.

This numbering scheme applies not only to the global solution vector, but to any global vectorial and tensorial quantities (e.g. global vector of internal forces, global stiffness matrix, global constraint equations, etc.).

Member Function Documentation

◆ get_global_dof_numbering()

virtual std::pair< size_t, size_t > b2000::DegreesOfFreedom::get_global_dof_numbering ( ) const
inlinevirtual
Returns
A pair (i, i+n), with i being the global number of the first dof of the entity, and n equal to get_number_of_dof().

Example

std::pair<size_t, size_t>
return std::pair<size_t, size_t>(
internal_dof_index, internal_dof_index + 4);
}
virtual std::pair< size_t, size_t > get_global_dof_numbering() const
Definition b2degrees_of_freedom.H:111

The variable internal_dof_index is a member of the element class and was set in set_global_dof_numbering().

Reimplemented in b2000::SuperElement< T, MATRIX_TYPE >, b2000::ElementCFDHeat2DFieldL2Constant< FLUX, AXISYMMETRIC >, and b2000::Element.

◆ get_number_of_dof()

virtual int b2000::DegreesOfFreedom::get_number_of_dof ( ) const
inlinevirtual
Returns
The number of degrees-of-freedom of the entity. Entities with no degrees-of-freedom should return 0.

Example

A Finite Element with 4 internal dof's would return 4.

Reimplemented in b2000::SuperElement< T, MATRIX_TYPE >, b2000::ElementCFDHeat2DFieldL2Constant< FLUX, AXISYMMETRIC >, and b2000::Element.

◆ set_global_dof_numbering()

virtual size_t b2000::DegreesOfFreedom::set_global_dof_numbering ( size_t  index)
inlinevirtual

Set the global degree-of-freedom numbers of the degrees-of-freedom belonging to the entity.

Parameters
indexThe index into the global solution vector of the first degree-of-freedom of the entity.
Returns
The index into the global solution vector past the last degree-of-freedom of the entity.

Example

A Finite Element with 4 internal dof's:

size_t
set_global_dof_numbering(size_t index) {
internal_dof_index = index;
return index + 4;
}
virtual size_t set_global_dof_numbering(size_t index)
Definition b2degrees_of_freedom.H:92

The variable internal_dof_index is a member of the element class.

Reimplemented in b2000::SuperElement< T, MATRIX_TYPE >, b2000::ElementCFDHeat2DFieldL2Constant< FLUX, AXISYMMETRIC >, and b2000::Element.


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