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

#include <System.hpp>

Inherits Component.

Public Member Functions

SOLVE THE SYSTEM
void solve ()
 
EFFICCIENT ACCESS
void set_values (const BlockAccumulator &values)
 Set a list of values. More...
 
void add_values (const BlockAccumulator &values)
 Add a list of values. More...
 
void get_values (BlockAccumulator &values)
 Add a list of values. More...
 
void dirichlet (const Uint iblockrow, const Uint ieq, const Real value, const bool preserve_symmetry=false)
 
void periodicity (const Uint iblockrow_to, const Uint iblockrow_from)
 
void set_diagonal (const std::vector< Real > &diag)
 Set the diagonal. More...
 
void add_diagonal (const std::vector< Real > &diag)
 Add to the diagonal. More...
 
void get_diagonal (std::vector< Real > &diag)
 Get the diagonal. More...
 
void reset (Real reset_to=0.)
 Reset Matrix. More...
 
MISCELLANEOUS
void print (common::LogStream &stream)
 Print to logstream. More...
 
void print (std::ostream &stream)
 Print to wherever. More...
 
void print (const std::string &filename)
 Print to file given by filename. More...
 
Handle< LSS::Matrixmatrix ()
 Accessor to matrix. More...
 
Handle< LSS::Vectorrhs ()
 Accessor to right hand side. More...
 
Handle< LSS::Vectorsolution ()
 Accessor to solution. More...
 
Handle< LSS::SolutionStrategysolution_strategy ()
 Accessor to the solution strategy. More...
 
const bool is_created ()
 Accessor to the state of create. More...
 
const std::string solvertype ()
 Accessor to string option describing the type of the solver. More...
 
void read_native (const common::URI &filename)
 Read a linear system from file. More...
 
SIGNALS
void signal_print (common::SignalArgs &args)
 Signal to write the system to disk as a tecplot file, for debugging purposes. 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)
 

Private Member Functions

void signature_print (common::SignalArgs &args)
 

Private Attributes

Handle< LSS::Matrixm_mat
 shared_ptr to system matrix More...
 
Handle< LSS::Vectorm_sol
 shared_ptr to solution vectoe More...
 
Handle< LSS::Vectorm_rhs
 shared_ptr to right hand side vector More...
 
Handle< LSS::SolutionStrategym_solution_strategy
 Strategy for the solution. More...
 

CREATION, DESTRUCTION AND COMPONENT SYSTEM

static std::string type_name ()
 name of the type More...
 
 System (const std::string &name)
 Default constructor. More...
 
void create (cf3::common::PE::CommPattern &cp, Uint neq, std::vector< Uint > &node_connectivity, std::vector< Uint > &starting_indices, const std::vector< Uint > &periodic_links_nodes=std::vector< Uint >(), const std::vector< bool > &periodic_links_active=std::vector< bool >())
 
void create_blocked (cf3::common::PE::CommPattern &cp, const VariablesDescriptor &vars, std::vector< Uint > &node_connectivity, std::vector< Uint > &starting_indices, const std::vector< Uint > &periodic_links_nodes=std::vector< Uint >(), const std::vector< bool > &periodic_links_active=std::vector< bool >())
 
void swap (const boost::shared_ptr< LSS::Matrix > &matrix, const boost::shared_ptr< LSS::Vector > &solution, const boost::shared_ptr< LSS::Vector > &rhs)
 
void destroy ()
 Deallocate underlying data. More...
 

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

Definition at line 59 of file System.hpp.

Constructor & Destructor Documentation

System ( const std::string &  name)

Default constructor.

Definition at line 50 of file System.cpp.

Member Function Documentation

void add_diagonal ( const std::vector< Real > &  diag)

Add to the diagonal.

Definition at line 294 of file System.cpp.

void add_values ( const BlockAccumulator values)

Add a list of values.

Definition at line 220 of file System.cpp.

void create ( cf3::common::PE::CommPattern cp,
Uint  neq,
std::vector< Uint > &  node_connectivity,
std::vector< Uint > &  starting_indices,
const std::vector< Uint > &  periodic_links_nodes = std::vector<Uint>(),
const std::vector< bool > &  periodic_links_active = std::vector<bool>() 
)

Setup sparsity structure

Todo:
action for it

Definition at line 82 of file System.cpp.

void create_blocked ( cf3::common::PE::CommPattern cp,
const VariablesDescriptor vars,
std::vector< Uint > &  node_connectivity,
std::vector< Uint > &  starting_indices,
const std::vector< Uint > &  periodic_links_nodes = std::vector<Uint>(),
const std::vector< bool > &  periodic_links_active = std::vector<bool>() 
)

Create a blocked system, where the unknowns for each physical variable are stored together. Note that this only changes the internal ordering, the interface is not affected.

Definition at line 114 of file System.cpp.

void destroy ( )

Deallocate underlying data.

Definition at line 183 of file System.cpp.

void dirichlet ( const Uint  iblockrow,
const Uint  ieq,
const Real  value,
const bool  preserve_symmetry = false 
)

Apply dirichlet-type boundary conditions. When preserve_symmetry is true than blockrow*numequations+eq column is is zeroed by moving it to the right hand side (however this usually results in performance penalties).

Definition at line 240 of file System.cpp.

void get_diagonal ( std::vector< Real > &  diag)

Get the diagonal.

Definition at line 302 of file System.cpp.

void get_values ( LSS::BlockAccumulator values)

Add a list of values.

Definition at line 230 of file System.cpp.

const bool is_created ( )

Accessor to the state of create.

Definition at line 388 of file System.cpp.

Handle<LSS::Matrix> matrix ( )
inline

Accessor to matrix.

Definition at line 145 of file System.hpp.

void periodicity ( const Uint  iblockrow_to,
const Uint  iblockrow_from 
)

Applying periodicity by adding one line to another and dirichlet-style fixing it to Note that prerequisite for this is to work that the matrix sparsity should be compatible (same nonzero pattern for the two block rows). Note that only structural symmetry can be preserved (again, if sparsity input was symmetric).

Definition at line 259 of file System.cpp.

void print ( common::LogStream stream)

Print to logstream.

Definition at line 320 of file System.cpp.

void print ( std::ostream &  stream)

Print to wherever.

Definition at line 332 of file System.cpp.

void print ( const std::string &  filename)

Print to file given by filename.

Definition at line 344 of file System.cpp.

void read_native ( const common::URI filename)

Read a linear system from file.

Definition at line 356 of file System.cpp.

void reset ( Real  reset_to = 0.)

Reset Matrix.

Definition at line 310 of file System.cpp.

Handle<LSS::Vector> rhs ( )
inline

Accessor to right hand side.

Definition at line 148 of file System.hpp.

void set_diagonal ( const std::vector< Real > &  diag)

Set the diagonal.

Definition at line 286 of file System.cpp.

void set_values ( const BlockAccumulator values)

Set a list of values.

Definition at line 210 of file System.cpp.

void signal_print ( common::SignalArgs args)

Signal to write the system to disk as a tecplot file, for debugging purposes.

Definition at line 404 of file System.cpp.

void signature_print ( common::SignalArgs args)
private

Definition at line 413 of file System.cpp.

Handle<LSS::Vector> solution ( )
inline

Accessor to solution.

Definition at line 151 of file System.hpp.

Handle<LSS::SolutionStrategy> solution_strategy ( )
inline

Accessor to the solution strategy.

Definition at line 154 of file System.hpp.

void solve ( )

solving the system

Todo:
action for it

Definition at line 202 of file System.cpp.

const std::string solvertype ( )
inline

Accessor to string option describing the type of the solver.

Definition at line 160 of file System.hpp.

void swap ( const boost::shared_ptr< LSS::Matrix > &  matrix,
const boost::shared_ptr< LSS::Vector > &  solution,
const boost::shared_ptr< LSS::Vector > &  rhs 
)

Exchange to existing matrix and vectors

Todo:
action for it

Definition at line 147 of file System.cpp.

static std::string type_name ( )
inlinestatic

name of the type

Definition at line 66 of file System.hpp.

Member Data Documentation

Handle<LSS::Matrix> m_mat
private

shared_ptr to system matrix

Definition at line 180 of file System.hpp.

Handle<LSS::Vector> m_rhs
private

shared_ptr to right hand side vector

Definition at line 186 of file System.hpp.

Handle<LSS::Vector> m_sol
private

shared_ptr to solution vectoe

Definition at line 183 of file System.hpp.

Handle<LSS::SolutionStrategy> m_solution_strategy
private

Strategy for the solution.

Definition at line 189 of file System.hpp.


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