COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Public Types | Protected Attributes | List of all members
ElementType Class Referenceabstract

#include <ElementType.hpp>

Inherits Component.

Inherited by ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

Public Types

typedef ElementTypeFaceConnectivity FaceConnectivity
 
- Public Types inherited from Component
typedef ComponentIterator< Componentiterator
 type of the iterator to Component More...
 
typedef ComponentIterator< Component const > const_iterator
 type of the iterator to constant Component More...
 
- Public Types inherited from SignalHandler
typedef std::vector< SignalPtrstorage_t
 storage type for signals More...
 

Public Member Functions

Accessor functions
std::string shape_name () const
 
GeoShape::Type shape () const
 
Uint nb_faces () const
 
Uint nb_edges () const
 
Uint nb_nodes () const
 
Uint order () const
 
Uint dimensionality () const
 
Uint dimension () const
 
virtual const ShapeFunctionshape_function () const =0
 
virtual const FaceConnectivityfaces () const =0
 
virtual const ElementTypeface_type (const Uint face) const =0
 
Computation functions
virtual RealVector mapped_coordinate (const RealVector &coord, const RealMatrix &nodes) const =0
 
virtual void compute_mapped_coordinate (const RealVector &coord, const RealMatrix &nodes, RealVector &mapped_coord) const =0
 
virtual Real jacobian_determinant (const RealVector &mapped_coord, const RealMatrix &nodes) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, RealMatrix &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 0, 1 > &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 0, 2 > &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 0, 3 > &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 1, 1 > &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 1, 2 > &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 1, 3 > &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 2, 2 > &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 2, 3 > &jacobian) const =0
 
virtual void compute_jacobian (const RealVector &mapped_coord, const RealMatrix &nodes, Eigen::Matrix< Real, 3, 3 > &jacobian) const =0
 
virtual RealMatrix jacobian (const RealVector &mapped_coord, const RealMatrix &nodes) const =0
 
virtual void compute_jacobian_adjoint (const RealVector &mapped_coord, const RealMatrix &nodes, RealMatrix &jacobian_adjoint) const =0
 
virtual Real volume (const RealMatrix &nodes) const =0
 
virtual Real area (const RealMatrix &nodes) const =0
 
virtual void compute_normal (const RealMatrix &nodes, RealVector &normal) const =0
 
virtual void compute_centroid (const RealMatrix &nodes, RealVector &centroid) const =0
 
virtual bool is_coord_in_element (const RealVector &coord, const RealMatrix &nodes) const =0
 
virtual RealVector plane_jacobian_normal (const RealVector &mapped_coord, const RealMatrix &nodes, const CoordRef orientation) const =0
 
virtual void compute_plane_jacobian_normal (const RealVector &mapped_coord, const RealMatrix &nodes, const CoordRef orientation, RealVector &result) const =0
 
- Public Member Functions inherited from Component
 Component (const std::string &name)
 
virtual ~Component ()
 Virtual destructor. More...
 
const std::string & name () const
 Access the name of the component. More...
 
void rename (const std::string &name)
 Rename the component. More...
 
URI uri () const
 Construct the full path. More...
 
void complete_path (URI &path) const
 
Handle< Componentaccess_component (const URI &path) const
 
Handle< Componentaccess_component_checked (const URI &path)
 
Handle< Component const > access_component_checked (const URI &path) const
 
Handle< Componenthandle ()
 Get a handle to the component. More...
 
Handle< Component const > handle () const
 
template<typename ComponentT >
Handle< ComponentT > handle ()
 
template<typename ComponentT >
Handle< ComponentT const > handle () const
 
Handle< Componentparent () const
 
Handle< Component const > root () const
 
Handle< Componentroot ()
 
Handle< Componentget_child (const std::string &name)
 
Handle< Component const > get_child (const std::string &name) const
 
Handle< Componentget_child_checked (const std::string &name)
 
Handle< Component const > get_child_checked (const std::string &name) const
 
Handle< Componentcreate_component (const std::string &name, const std::string &builder)
 Build a (sub)component of this component using the extended type_name of the component. More...
 
template<typename T >
Handle< T > create_component (const std::string &name)
 Create a (sub)component of this component automatically cast to the specified type. More...
 
template<typename T >
Handle< T > create_static_component (const std::string &name)
 Create a static "always there" subcomponent. More...
 
Componentadd_component (const boost::shared_ptr< Component > &subcomp)
 Add the passed component as a subcomponent. More...
 
void add_link (Component &linked_component)
 
boost::shared_ptr< Componentremove_component (const std::string &name)
 Remove a (sub)component of this component. More...
 
boost::shared_ptr< Componentremove_component (Component &subcomp)
 Remove a (sub)component of this component. More...
 
void clear ()
 Remove all sub-components of this component, except for the static ones. More...
 
void move_to (Component &to_parent)
 
std::string tree (bool basic_mode=false, Uint depth=0, Uint recursion_level=0) const
 
std::string info (const std::string &what=std::string("cospt")) const
 
size_t count_children () const
 
virtual std::string derived_type_name () const =0
 
PropertyListproperties ()
 
const PropertyListproperties () const
 
OptionListoptions ()
 
const OptionListoptions () const
 
void reset_options ()
 Reset all options to their default value. More...
 
void configure_option_recursively (const std::string &optname, const boost::any &val)
 
Componentmark_basic ()
 marks this component as basic. More...
 
template<typename ComponentT >
void put_components (std::vector< boost::shared_ptr< ComponentT > > &vec, const bool recurse)
 
template<typename ComponentT >
void put_components (std::vector< boost::shared_ptr< ComponentT const > > &vec, const bool recurse) const
 
template<>
void put_components (std::vector< boost::shared_ptr< Component > > &vec, const bool recurse)
 
template<>
void put_components (std::vector< boost::shared_ptr< Component const > > &vec, const bool recurse) const
 
Component::iterator begin ()
 The begin iterator for a range containing Components. More...
 
Component::iterator end ()
 The end iterator for a range containing Components. More...
 
Component::const_iterator begin () const
 The begin iterator for a range containing Components (const version) More...
 
Component::const_iterator end () const
 The end iterator for a range containing Components (const version) More...
 
Component::iterator recursive_begin ()
 The begin iterator for a recursive range containing Components. More...
 
Component::iterator recursive_end ()
 The end iterator for a recursive range containing Components. More...
 
Component::const_iterator recursive_begin () const
 The begin iterator for a recursive range containing Components (const version) More...
 
Component::const_iterator recursive_end () const
 The end iterator for a recursive range containing Components (const version) More...
 
template<typename T >
Handle< T > create_component (const std::string &name, const std::string &builder)
 Create a component using the reduced builder name. More...
 
void signal_configure (SignalArgs &args)
 configures all the options on this class More...
 
void signal_create_component (SignalArgs &args)
 creates a component from this component More...
 
void signal_delete_component (SignalArgs &args)
 delete this component More...
 
void signal_move_component (SignalArgs &args)
 moves a component from this component to another More...
 
void signal_list_tree (SignalArgs &args) const
 lists the sub components and puts them on the xml_tree More...
 
void signal_list_tree_recursive (SignalArgs &args) const
 prints tree recursively More...
 
void signal_list_properties (SignalArgs &args) const
 lists the properties of this component More...
 
void signal_list_options (SignalArgs &args) const
 lists the properties of this component More...
 
void signal_list_options_recursive (SignalArgs &args) const
 prints all options recursive More...
 
void signal_list_signals (SignalArgs &args) const
 lists the signals of this component More...
 
void signal_list_signals_recursive (SignalArgs &args) const
 prints all signals recursive More...
 
void signal_print_info (SignalArgs &args) const
 gets info on this component More...
 
void signal_print_tree (SignalArgs &args) const
 signal to print the tree More...
 
void signature_print_tree (SignalArgs &args) const
 signature to signal_print_tree More...
 
void signal_rename_component (SignalArgs &args)
 renames this component More...
 
void signal_save_tree (SignalArgs &args)
 dumps the tree to a file More...
 
void signal_list_content (SignalArgs &args)
 gives information about this component such as options, signals, ... More...
 
void signal_signature (SignalArgs &args)
 Gives a signal signature, if any. More...
 
void signature_create_component (SignalArgs &args)
 
void signature_rename_component (SignalArgs &args)
 
void signature_move_component (SignalArgs &args)
 
void signal_store_timings (SignalArgs &args)
 Signal to store the timings (if enabled) into properties, i.e. for readout from python or the GUI. More...
 
void signal_clear (SignalArgs &args)
 Signal to remove all sub-components. More...
 
void signal_reset_options (SignalArgs &args)
 Signal to set all options to their default value. More...
 
void signal_add_tag (SignalArgs &args)
 Signal to add a tag. More...
 
void signature_add_tag (SignalArgs &args)
 
- Public Member Functions inherited from SignalHandler
 ~SignalHandler ()
 
const storage_tsignal_list () const
 
SignalPtr signal (const SignalID &sname)
 
SignalCPtr signal (const SignalID &sname) const
 
SignalRet call_signal (const SignalID &sname, SignalArgs &sinput)
 Calls the signal by providing its name and input. More...
 
SignalRet call_signal (const SignalID &sname, std::vector< std::string > &sinput)
 Calls the signal by providing its name and input. More...
 
bool signal_exists (const SignalID &sname) const
 Checks if a signal exists or not. More...
 
Signalregist_signal (const SignalID &sname)
 Regist signal. More...
 
void unregist_signal (const SignalID &sname)
 Unregist signal. More...
 
- Public Member Functions inherited from ConnectionManager
 ~ConnectionManager ()
 destructor closes all connections More...
 
Connectionconnection (const std::string &name)
 
Connectionmanage_connection (const std::string &name)
 manages a connection (creates if necessary) More...
 
- Public Member Functions inherited from TaggedObject
 TaggedObject ()
 Constructor. More...
 
bool has_tag (const std::string &tag) const
 
void add_tag (const std::string &tag)
 
std::vector< std::string > get_tags () const
 
void remove_tag (const std::string &tag)
 

Protected Attributes

GeoShape::Type m_shape
 the GeoShape::Type corresponding to the shape More...
 
Uint m_nb_nodes
 the number of nodes in this element type More...
 
Uint m_order
 the geometric order of this element More...
 
Uint m_dimension
 the dimension of the coordinates of this elements More...
 
Uint m_dimensionality
 the dimensionality of the element More...
 
Uint m_nb_edges
 number of edges More...
 
Uint m_nb_faces
 number of edges More...
 

Constructor / Destructor / Type name

 ElementType (const std::string &name)
 Default constructor without arguments. More...
 
virtual ~ElementType ()
 Default destructor. More...
 
static std::string type_name ()
 

Additional Inherited Members

- Static Public Member Functions inherited from Component
static std::string type_name ()
 Get the class name. More...
 
- Public Attributes inherited from SignalHandler
storage_t m_signals
 storage of the signals More...
 
- Protected Member Functions inherited from Component
Componentadd_static_component (const boost::shared_ptr< Component > &subcomp)
 Add a static (sub)component of this component. More...
 
void raise_tree_updated_event ()
 raise event that the path has changed More...
 

Detailed Description

This class represents the the data related to an ElementType

Author
Tiago Quintino
Willem Deconinck

Definition at line 34 of file ElementType.hpp.

Member Typedef Documentation

Definition at line 38 of file ElementType.hpp.

Constructor & Destructor Documentation

ElementType ( const std::string &  name)
inline

Default constructor without arguments.

Definition at line 47 of file ElementType.hpp.

virtual ~ElementType ( )
inlinevirtual

Default destructor.

Definition at line 50 of file ElementType.hpp.

Member Function Documentation

virtual Real area ( const RealMatrix nodes) const
pure virtual

compute area using given coordinates.

Parameters
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
Note
Only in elements of dimensionality == dimensionality-1 will the area be different from zero

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual void compute_centroid ( const RealMatrix nodes,
RealVector centroid 
) const
pure virtual

compute centroid of element given coordinates

Parameters
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
[out]centroidcoordinates of the centroid

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
RealMatrix jacobian 
) const
pure virtual

Compute the jacobian of the transformation dX/dKSI

Warning
This convention is transposed of usual definition. Here used is:

\begin{eqnarray*} \frac{\partial x}{\partial \xi } & \frac{\partial y}{\partial \xi } & \frac{\partial z}{\partial \xi } \\ \frac{\partial x}{\partial \eta } & \frac{\partial y}{\partial \eta } & \frac{\partial z}{\partial \eta } \\ \frac{\partial x}{\partial \zeta} & \frac{\partial y}{\partial \zeta} & \frac{\partial z}{\partial \zeta} \end{eqnarray*}

Parameters
[in]mapped_coordcoordinates in mapped space (dimensionality x 1)
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
[out]jacobianjacobian (size = dimensionality x dimension)

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 0, 1 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 0, 2 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 0, 3 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 1, 1 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 1, 2 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 1, 3 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 2, 2 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 2, 3 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian ( const RealVector mapped_coord,
const RealMatrix nodes,
Eigen::Matrix< Real, 3, 3 > &  jacobian 
) const
pure virtual
virtual void compute_jacobian_adjoint ( const RealVector mapped_coord,
const RealMatrix nodes,
RealMatrix jacobian_adjoint 
) const
pure virtual

Compute the adjoint of the jacobian of the transformation Useful for computation of inverse jacobian = 1/jacobian_determinant * jacobian_adjoint

Parameters
[in]mapped_coordcoordinates in mapped space (dimensionality x 1)
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
[out]jacobianadjoint jacobianadjoint (size = dimensionality x dimension)

Implemented in ElementTypeT< ETYPE >, ElementTypeT< Triag2D >, and ElementTypeTriag2D.

virtual void compute_mapped_coordinate ( const RealVector coord,
const RealMatrix nodes,
RealVector mapped_coord 
) const
pure virtual

Compute Mapped Coordinates, a.k.a. local coordinates

Parameters
[in]coordcoordinates to be mapped
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
[out]mapped_coordresult

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual void compute_normal ( const RealMatrix nodes,
RealVector normal 
) const
pure virtual

Compute the unit-normal to the face-element. The direction will be taken according to the order of the coordinates

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual void compute_plane_jacobian_normal ( const RealVector mapped_coord,
const RealMatrix nodes,
const CoordRef  orientation,
RealVector result 
) const
pure virtual

Compute the jacobian of the plane or section of the element. The section is given by a mapped coordinate, and a direction perpendicular to the plane. Only elements with the dimension == dimensionality implement this function

Parameters
[in]mapped_coordcoordinates in mapped space (dimensionality x 1)
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
[in]orientationdirection normal to the plane
[out]resultvector in mapped space scaled with the jacobian of the section (not the volume).

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

Uint dimension ( ) const
inline
Returns
m_dimension

Definition at line 82 of file ElementType.hpp.

Uint dimensionality ( ) const
inline
Returns
m_dimensionality

Definition at line 79 of file ElementType.hpp.

virtual const ElementType& face_type ( const Uint  face) const
pure virtual
Returns
the face type for the given face

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual const FaceConnectivity& faces ( ) const
pure virtual
Returns
the face connectivity information

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual bool is_coord_in_element ( const RealVector coord,
const RealMatrix nodes 
) const
pure virtual
Returns
if the coordinate is in the element with given nodes
Parameters
[in]coordthe coordinates that will be checked
[in]nodesthe nodes of the element

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual RealMatrix jacobian ( const RealVector mapped_coord,
const RealMatrix nodes 
) const
pure virtual

Compute the jacobian of the transformation

Parameters
[in]mapped_coordcoordinates in mapped space (dimensionality x 1)
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
Returns
jacobian (size = dimensionality x dimension)

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual Real jacobian_determinant ( const RealVector mapped_coord,
const RealMatrix nodes 
) const
pure virtual

Compute the determinant of the jacobian dX/dKSI

Parameters
[in]mapped_coordcoordinates in mapped space (dimensionality x 1)
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
Returns
jacobian determinant

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

virtual RealVector mapped_coordinate ( const RealVector coord,
const RealMatrix nodes 
) const
pure virtual

Compute Mapped Coordinates, a.k.a. local coordinates

Parameters
[in]coordthe coordinates to be mapped
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
Returns
mapped_coord

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

Uint nb_edges ( ) const
inline
Returns
number of edges

Definition at line 70 of file ElementType.hpp.

Uint nb_faces ( ) const
inline
Returns
number of faces

Definition at line 67 of file ElementType.hpp.

Uint nb_nodes ( ) const
inline
Returns
m_nbNodes

Definition at line 73 of file ElementType.hpp.

Uint order ( ) const
inline
Returns
m_order

Definition at line 76 of file ElementType.hpp.

virtual RealVector plane_jacobian_normal ( const RealVector mapped_coord,
const RealMatrix nodes,
const CoordRef  orientation 
) const
pure virtual

Compute the jacobian of the plane or section of the element. The section is given by a mapped coordinate, and a direction perpendicular to the plane. Only elements with the dimension == dimensionality implement this function

Parameters
[in]mapped_coordcoordinates in mapped space (dimensionality x 1)
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
[in]orientationdirection normal to the plane
Returns
vector in mapped space scaled with the jacobian of the section (not the volume).

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

GeoShape::Type shape ( ) const
inline
Returns
shape as enum

Definition at line 64 of file ElementType.hpp.

virtual const ShapeFunction& shape_function ( ) const
pure virtual
Returns
the shape function defining this geometric element

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

std::string shape_name ( ) const
inline
Returns
shape as string

Definition at line 61 of file ElementType.hpp.

static std::string type_name ( )
inlinestatic

Definition at line 52 of file ElementType.hpp.

virtual Real volume ( const RealMatrix nodes) const
pure virtual

compute volume given coordinates

Parameters
[in]nodescoordinates of the element nodes (nb_nodes x dimension)
Note
Only in elements of (dimensionality == dimension) will the volume be different from zero

Implemented in ElementTypeT< ETYPE >, and ElementTypeT< Triag2D >.

Member Data Documentation

Uint m_dimension
protected

the dimension of the coordinates of this elements

Definition at line 215 of file ElementType.hpp.

Uint m_dimensionality
protected

the dimensionality of the element

Definition at line 217 of file ElementType.hpp.

Uint m_nb_edges
protected

number of edges

Definition at line 219 of file ElementType.hpp.

Uint m_nb_faces
protected

number of edges

Definition at line 221 of file ElementType.hpp.

Uint m_nb_nodes
protected

the number of nodes in this element type

Definition at line 211 of file ElementType.hpp.

Uint m_order
protected

the geometric order of this element

Definition at line 213 of file ElementType.hpp.

GeoShape::Type m_shape
protected

the GeoShape::Type corresponding to the shape

Definition at line 209 of file ElementType.hpp.


The documentation for this class was generated from the following file:
Send comments to:
COOLFluiD Web Admin