COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
Space Class Reference

Space component class. More...

#include <Space.hpp>

Inherits Component.

Public Member Functions

 Space (const std::string &name)
 Contructor. More...
 
Spaceinitialize (Entities &support, Dictionary &dict)
 Initialize the Space. More...
 
virtual ~Space ()
 Virtual destructor. More...
 
Uint size () const
 The number of elements defined in this space. More...
 
Dictionarydict () const
 Dictionary this space belongs to. More...
 
const ShapeFunctionshape_function () const
 
Entitiessupport () const
 Access the geometric support. More...
 
Connectivityconnectivity ()
 connectivity table to dictionary entries More...
 
const Connectivityconnectivity () const
 connectivity table to dictionary entries More...
 
RealMatrix compute_coordinates (const Uint elem_idx) const
 Compute element coordinates. More...
 
RealMatrix get_coordinates (const Uint elem_idx) const
 Lookup element coordinates. More...
 
void put_coordinates (RealMatrix &coordinates, const Uint elem_idx) const
 Lookup element coordinates. More...
 
void allocate_coordinates (RealMatrix &coordinates) const
 Allocate element coordinates. More...
 
const Uint dict_idx () const
 index as the dictionary appears in mesh.dictionaries() vector More...
 
- 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)
 

Static Public Member Functions

static std::string type_name ()
 Get the class name. More...
 
- Static Public Member Functions inherited from Component
static std::string type_name ()
 Get the class name. More...
 

Private Member Functions

void configure_shape_function ()
 Configuration option trigger for the shape function. More...
 

Private Attributes

Handle< ShapeFunctionm_shape_function
 Shape function of this space. More...
 
Handle< Connectivitym_connectivity
 node_connectivity or state_connectivity for this space More...
 
Handle< Dictionarym_dict
 Handle to the dictionary. More...
 
Handle< Entitiesm_support
 Handle to the supporting Entities component. More...
 
Uint m_dict_idx
 

Friends

class Mesh
 

Additional Inherited Members

- 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 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

Space component class.

A Space component uniquely relates to 1 Entities component.
The concept of "space" is here introduced as an invisible mesh parallel to the original mesh. It has exactly the same elements as the original mesh, but every element is defined by a different shape function.
A default space that is always created is the "geometry" space, defined by the mesh (from mesh-readers / mesh-generators).
Space is a concept that allows to create fields in the same mesh or parts of the mesh, with different shape functions than prescribed by the mesh. This is useful for e.g. high-order discretization methods, without having to generate a high-order mesh.

A class Dictionary is responsible for managing multiple Space components. Fields are created in the dictionary. More than one field can be created in he same dictionary, ensuring they have the same space and other common definitions. A connectivity table which is held inside this Space component refers to entries in the dictionary.

Example:
The coordinates of mesh element vertices is e.g. a field in the dictionary "geometry", and the connectivity table of the space "geometry" refers to the vertices connected to the mesh-elements.

Notes:

Author
Willem Deconinck

Definition at line 59 of file Space.hpp.

Constructor & Destructor Documentation

Space ( const std::string &  name)

Contructor.

Parameters
nameof the component

Definition at line 34 of file Space.cpp.

~Space ( )
virtual

Virtual destructor.

Definition at line 89 of file Space.cpp.

Member Function Documentation

void allocate_coordinates ( RealMatrix coordinates) const

Allocate element coordinates.

Allocate a properly sized coordinates matrix. Can be used in conjunction with put_coordinates()

Parameters
[out]coordinatesempty coordinates (nb_nodes x dimension)

Definition at line 172 of file Space.cpp.

RealMatrix compute_coordinates ( const Uint  elem_idx) const

Compute element coordinates.

Compute coordinates of every node belonging to element with given index This is computationally expensive, as it interpolates from the geometry-space, using the geometry-space's shape-function.

Parameters
[in]elem_idxelement index
Returns
element coordinates (nb_nodes x dimension)

Definition at line 136 of file Space.cpp.

void configure_shape_function ( )
private

Configuration option trigger for the shape function.

  • Creates shape function
  • Resizes the connectivity table to the number of elements

Definition at line 111 of file Space.cpp.

Connectivity& connectivity ( )
inline

connectivity table to dictionary entries

Returns
connectivity table
Precondition
Node connectivity must have been created beforehand. This is normally done by the dictionary automatically, except for the geometry space, which is filled in by a mesh-reader or a mesh-generator.

Definition at line 110 of file Space.hpp.

const Connectivity& connectivity ( ) const
inline

connectivity table to dictionary entries

Returns
connectivity table
Precondition
Node connectivity must have been created beforehand. This is normally done by the dictionary automatically, except for the geometry space, which is filled in by a mesh-reader or a mesh-generator.

Definition at line 118 of file Space.hpp.

Dictionary& dict ( ) const
inline

Dictionary this space belongs to.

This space's connectivity table refers to entries of the dictionary.

Definition at line 92 of file Space.hpp.

const Uint dict_idx ( ) const
inline

index as the dictionary appears in mesh.dictionaries() vector

Definition at line 154 of file Space.hpp.

RealMatrix get_coordinates ( const Uint  elem_idx) const

Lookup element coordinates.

Coordinates accessed from the dictionary's coordinates-field, and copied into a RealMatrix

Parameters
[in]elem_idxelement index
Returns
element coordinates (nb_nodes x dimension)

Definition at line 179 of file Space.cpp.

Space & initialize ( Entities support,
Dictionary dict 
)

Initialize the Space.

Initialize function, must be called before any other function

  • Set private handles
  • Register this space in the dictionary ( dict.add_space() )
  • Create a connectivity table
    Parameters
    [in]supportEntities this space is parallel to
    [in]dictDictionary this space belongs to

Definition at line 78 of file Space.cpp.

void put_coordinates ( RealMatrix coordinates,
const Uint  elem_idx 
) const

Lookup element coordinates.

Coordinates accessed from the dictionary's coordinates-field, and copied into a RealMatrix. This function is preferred over get_coordinates(), as no RealMatrix is allocated inside.

Parameters
[in]elem_idxelement index
[out]coordinateselement coordinates (nb_nodes x dimension)

Definition at line 153 of file Space.cpp.

const ShapeFunction & shape_function ( ) const

Shape function defining this space

Precondition
the shape function must be configured first
Returns
shape function

Definition at line 102 of file Space.cpp.

Uint size ( ) const

The number of elements defined in this space.

This function delegates connectivity().size()

Returns
number of elements

Definition at line 95 of file Space.cpp.

Entities& support ( ) const
inline

Access the geometric support.

Returns
a reference to the entities
Exceptions
SetupErrorif not set.

Definition at line 102 of file Space.hpp.

static std::string type_name ( )
inlinestatic

Get the class name.

Definition at line 64 of file Space.hpp.

Friends And Related Function Documentation

friend class Mesh
friend

Definition at line 60 of file Space.hpp.

Member Data Documentation

Handle<Connectivity> m_connectivity
private

node_connectivity or state_connectivity for this space

Definition at line 170 of file Space.hpp.

Handle<Dictionary> m_dict
private

Handle to the dictionary.

Definition at line 173 of file Space.hpp.

Uint m_dict_idx
private

Definition at line 178 of file Space.hpp.

Handle<ShapeFunction> m_shape_function
private

Shape function of this space.

Definition at line 167 of file Space.hpp.

Handle<Entities> m_support
private

Handle to the supporting Entities component.

Definition at line 176 of file Space.hpp.


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