COOLFluiD
Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
|
#include <TrilinosCrsMatrix.hpp>
Inherits Matrix, and ThyraOperator.
Public Member Functions | |
virtual Teuchos::RCP< const Thyra::LinearOpBase< Real > > | thyra_operator () const |
Const access to the matrix. More... | |
virtual Teuchos::RCP< Thyra::LinearOpBase< Real > > | thyra_operator () |
Writable access to the matrix. More... | |
virtual void | clone_to (Matrix &other) |
Make a deep copy of the current matrix into other. More... | |
virtual void | read_native (const common::URI &file) |
Read in a linear system, optionally filling the provided RHS and solution vector. More... | |
INDIVIDUAL ACCESS | |
void | set_value (const Uint icol, const Uint irow, const Real value) |
Set value at given location in the matrix. More... | |
void | add_value (const Uint icol, const Uint irow, const Real value) |
Add value at given location in the matrix. More... | |
void | get_value (const Uint icol, const Uint irow, Real &value) |
Get value at given location in the matrix. More... | |
EFFICCIENT ACCESS | |
void | set_values (const BlockAccumulator &values) |
Set a list of values. More... | |
void | add_values (const BlockAccumulator &values) |
void | get_values (BlockAccumulator &values) |
Add a list of values. More... | |
void | set_row (const Uint iblockrow, const Uint ieq, Real diagval, Real offdiagval) |
Set a row, diagonal and off-diagonals values separately (dirichlet-type boundaries) More... | |
void | get_column_and_replace_to_zero (const Uint iblockcol, Uint ieq, std::vector< Real > &values) |
virtual void | symmetric_dirichlet (const Uint blockrow, const Uint ieq, const Real value, Vector &rhs) |
const std::vector< std::pair< Uint, Uint > > & | get_dirichlet_nodes () const |
Get the nodes and equations for all dirichlet boundary conditions that have been applied so far. More... | |
void | tie_blockrow_pairs (const Uint iblockrow_to, const Uint iblockrow_from) |
Add one line to another and tie to it via dirichlet-style (applying periodicity) More... | |
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 wherever. More... | |
void | print (std::ostream &stream) |
Print to wherever. More... | |
void | print (const std::string &filename, std::ios_base::openmode mode=std::ios_base::out) |
Print to file given by filename. More... | |
void | print_native (std::ostream &stream) |
Use the native printing functionality of the matrix implementation. More... | |
const bool | is_created () |
Accessor to the state of create. More... | |
const Uint | neq () |
Accessor to the number of equations. More... | |
const Uint | blockrow_size () |
Accessor to the number of block rows. More... | |
const Uint | blockcol_size () |
Accessor to the number of block columns. More... | |
Teuchos::RCP< Epetra_CrsMatrix > | epetra_matrix () |
Get the matrix in native format. More... | |
Teuchos::RCP< Epetra_CrsMatrix const > | epetra_matrix () const |
Get the matrix in native format. More... | |
void | replace_epetra_matrix (const Teuchos::RCP< Epetra_CrsMatrix > &mat) |
Replace the internal matrix with the supplied one. More... | |
void | blocked_var_gids (const math::VariablesDescriptor &var_descriptor, std::vector< std::vector< int > > &var_gids) |
int | matrix_index (const Uint inode, const Uint ieq) |
Get the index for the given node and equation in matrix local format. More... | |
LINEAR ALGEBRA | |
void | apply (const Handle< Vector > &y, const Handle< Vector const > &x, const Real alpha=1., const Real beta=0.) |
Compute y = alpha*A*x + beta*y. More... | |
TEST ONLY | |
void | debug_data (std::vector< Uint > &row_indices, std::vector< Uint > &col_indices, std::vector< Real > &values) |
Public Member Functions inherited from Matrix | |
Matrix (const std::string &name) | |
Default constructor. 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< Component > | access_component (const URI &path) const |
Handle< Component > | access_component_checked (const URI &path) |
Handle< Component const > | access_component_checked (const URI &path) const |
Handle< Component > | handle () |
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< Component > | parent () const |
Handle< Component const > | root () const |
Handle< Component > | root () |
Handle< Component > | get_child (const std::string &name) |
Handle< Component const > | get_child (const std::string &name) const |
Handle< Component > | get_child_checked (const std::string &name) |
Handle< Component const > | get_child_checked (const std::string &name) const |
Handle< Component > | create_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... | |
Component & | add_component (const boost::shared_ptr< Component > &subcomp) |
Add the passed component as a subcomponent. More... | |
void | add_link (Component &linked_component) |
boost::shared_ptr< Component > | remove_component (const std::string &name) |
Remove a (sub)component of this component. More... | |
boost::shared_ptr< Component > | remove_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 |
PropertyList & | properties () |
const PropertyList & | properties () const |
OptionList & | options () |
const OptionList & | options () const |
void | reset_options () |
Reset all options to their default value. More... | |
void | configure_option_recursively (const std::string &optname, const boost::any &val) |
Component & | mark_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_t & | signal_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... | |
Signal & | regist_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... | |
Connection * | connection (const std::string &name) |
Connection * | manage_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 Types | |
typedef std::map< int, Real > | DirichletEntryT |
Cache matrix values in case of symmetric dirichlet, so they can be applied multiple times even if the matrix is not changed. More... | |
typedef std::map< int, DirichletEntryT > | DirichletMapT |
Private Attributes | |
Teuchos::RCP< Epetra_CrsMatrix > | m_mat |
teuchos style smart pointer wrapping the matrix More... | |
Epetra_MpiComm | m_comm |
epetra mpi environment More... | |
bool | m_is_created |
state of creation More... | |
Uint | m_neq |
number of equations More... | |
int | m_num_my_elements |
number of local elements (rows) More... | |
std::vector< int > | m_p2m |
mapper array, maps from process local numbering to matrix local numbering (because ghost nodes need to be ordered to the back) More... | |
std::vector< int > | m_converted_indices |
a helper array used in set/add/get_values to avoid frequent new+free combo More... | |
std::vector< int > | m_node_connectivity |
Copy of the connectivity data. More... | |
std::vector< int > | m_starting_indices |
DirichletMapT | m_symmetric_dirichlet_values |
std::vector< std::pair< Uint, Uint > > | m_dirichlet_nodes |
CREATION, DESTRUCTION AND COMPONENT SYSTEM | |
static std::string | type_name () |
name of the type More... | |
const std::string | solvertype () |
Accessor to solver type. More... | |
const bool | is_swappable (const LSS::Vector &solution, const LSS::Vector &rhs) |
Accessor to the flag if matrix, solution and rhs are tied together or not. More... | |
TrilinosCrsMatrix (const std::string &name) | |
Default constructor. More... | |
void | create (cf3::common::PE::CommPattern &cp, const Uint neq, const std::vector< Uint > &node_connectivity, const std::vector< Uint > &starting_indices, LSS::Vector &solution, LSS::Vector &rhs, const std::vector< Uint > &periodic_links_nodes=std::vector< Uint >(), const std::vector< bool > &periodic_links_active=std::vector< bool >()) |
Setup sparsity structure. More... | |
virtual void | create_blocked (common::PE::CommPattern &cp, const VariablesDescriptor &vars, const std::vector< Uint > &node_connectivity, const std::vector< Uint > &starting_indices, Vector &solution, Vector &rhs, const std::vector< Uint > &periodic_links_nodes=std::vector< Uint >(), const std::vector< bool > &periodic_links_active=std::vector< bool >()) |
Keep the equations for one variable together, forming big subsystems in the global matrix. More... | |
void | destroy () |
Deallocate underlying data. More... | |
Additional Inherited Members | |
Public Types inherited from Component | |
typedef ComponentIterator< Component > | iterator |
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< SignalPtr > | storage_t |
storage type for signals More... | |
Static Public Member Functions inherited from Matrix | |
static std::string | type_name () |
name of the type 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 | |
Component & | add_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... | |
Definition at line 40 of file TrilinosCrsMatrix.hpp.
|
private |
Cache matrix values in case of symmetric dirichlet, so they can be applied multiple times even if the matrix is not changed.
Definition at line 232 of file TrilinosCrsMatrix.hpp.
|
private |
Definition at line 233 of file TrilinosCrsMatrix.hpp.
TrilinosCrsMatrix | ( | const std::string & | name | ) |
Default constructor.
Definition at line 65 of file TrilinosCrsMatrix.cpp.
|
virtual |
Add value at given location in the matrix.
Implements Matrix.
Definition at line 174 of file TrilinosCrsMatrix.cpp.
|
virtual |
Add a list of values local ibdices eigen, templatization on top level
Implements Matrix.
Definition at line 228 of file TrilinosCrsMatrix.cpp.
|
virtual |
Compute y = alpha*A*x + beta*y.
Implements Matrix.
Definition at line 729 of file TrilinosCrsMatrix.cpp.
|
inlinevirtual |
Accessor to the number of block columns.
Implements Matrix.
Definition at line 148 of file TrilinosCrsMatrix.hpp.
void blocked_var_gids | ( | const math::VariablesDescriptor & | var_descriptor, |
std::vector< std::vector< int > > & | var_gids | ||
) |
Store the local matrix GIDs belonging to each variable in the given vector
var_descriptor | Descriptor for the variables that are used in the matrix |
var_gids | Output containing the gids for each variable |
Definition at line 647 of file TrilinosCrsMatrix.cpp.
|
inlinevirtual |
Accessor to the number of block rows.
Implements Matrix.
Definition at line 145 of file TrilinosCrsMatrix.hpp.
|
virtual |
Make a deep copy of the current matrix into other.
Implements Matrix.
Definition at line 518 of file TrilinosCrsMatrix.cpp.
|
virtual |
|
virtual |
Keep the equations for one variable together, forming big subsystems in the global matrix.
Implements Matrix.
Definition at line 90 of file TrilinosCrsMatrix.cpp.
|
virtual |
exports the matrix into big linear arrays
Implements Matrix.
Definition at line 686 of file TrilinosCrsMatrix.cpp.
|
virtual |
Deallocate underlying data.
Implements Matrix.
Definition at line 151 of file TrilinosCrsMatrix.cpp.
|
inline |
Get the matrix in native format.
Definition at line 151 of file TrilinosCrsMatrix.hpp.
|
inline |
Get the matrix in native format.
Definition at line 157 of file TrilinosCrsMatrix.hpp.
|
virtual |
Get a column and replace it to zero (dirichlet-type boundaries, when trying to preserve symmetry) Note that sparsity info is lost, values will contain zeros where no matrix entry is present
Implements Matrix.
Definition at line 318 of file TrilinosCrsMatrix.cpp.
|
virtual |
Get the nodes and equations for all dirichlet boundary conditions that have been applied so far.
Definition at line 406 of file TrilinosCrsMatrix.cpp.
Get value at given location in the matrix.
Implements Matrix.
Definition at line 182 of file TrilinosCrsMatrix.cpp.
|
virtual |
|
inlinevirtual |
Accessor to the state of create.
Implements Matrix.
Definition at line 139 of file TrilinosCrsMatrix.hpp.
|
inlinevirtual |
Accessor to the flag if matrix, solution and rhs are tied together or not.
Implements Matrix.
Definition at line 53 of file TrilinosCrsMatrix.hpp.
Get the index for the given node and equation in matrix local format.
Definition at line 174 of file TrilinosCrsMatrix.hpp.
|
inlinevirtual |
Accessor to the number of equations.
Implements Matrix.
Definition at line 142 of file TrilinosCrsMatrix.hpp.
|
virtual |
|
virtual |
|
virtual |
Print to file given by filename.
Implements Matrix.
Definition at line 629 of file TrilinosCrsMatrix.cpp.
|
virtual |
Use the native printing functionality of the matrix implementation.
Implements Matrix.
Definition at line 640 of file TrilinosCrsMatrix.cpp.
|
virtual |
Read in a linear system, optionally filling the provided RHS and solution vector.
Implements Matrix.
Definition at line 540 of file TrilinosCrsMatrix.cpp.
|
inline |
Replace the internal matrix with the supplied one.
Definition at line 163 of file TrilinosCrsMatrix.hpp.
|
virtual |
|
virtual |
Set a row, diagonal and off-diagonals values separately (dirichlet-type boundaries)
Implements Matrix.
Definition at line 295 of file TrilinosCrsMatrix.cpp.
Set value at given location in the matrix.
Implements Matrix.
Definition at line 166 of file TrilinosCrsMatrix.cpp.
|
virtual |
|
inlinevirtual |
|
virtual |
Apply a dirichlet boundary condition, preserving symmetry by moving entries to the RHS
Implements Matrix.
Definition at line 325 of file TrilinosCrsMatrix.cpp.
|
virtual |
Const access to the matrix.
Implements ThyraOperator.
Definition at line 715 of file TrilinosCrsMatrix.cpp.
|
virtual |
Writable access to the matrix.
Implements ThyraOperator.
Definition at line 722 of file TrilinosCrsMatrix.cpp.
Add one line to another and tie to it via dirichlet-style (applying periodicity)
Implements Matrix.
Definition at line 413 of file TrilinosCrsMatrix.cpp.
|
inlinestatic |
name of the type
Definition at line 47 of file TrilinosCrsMatrix.hpp.
|
private |
epetra mpi environment
Definition at line 211 of file TrilinosCrsMatrix.hpp.
|
private |
a helper array used in set/add/get_values to avoid frequent new+free combo
Definition at line 226 of file TrilinosCrsMatrix.hpp.
Definition at line 236 of file TrilinosCrsMatrix.hpp.
|
private |
state of creation
Definition at line 214 of file TrilinosCrsMatrix.hpp.
|
private |
teuchos style smart pointer wrapping the matrix
Definition at line 208 of file TrilinosCrsMatrix.hpp.
|
private |
number of equations
Definition at line 217 of file TrilinosCrsMatrix.hpp.
|
private |
Copy of the connectivity data.
Definition at line 229 of file TrilinosCrsMatrix.hpp.
|
private |
number of local elements (rows)
Definition at line 220 of file TrilinosCrsMatrix.hpp.
|
private |
mapper array, maps from process local numbering to matrix local numbering (because ghost nodes need to be ordered to the back)
Definition at line 223 of file TrilinosCrsMatrix.hpp.
|
private |
Definition at line 229 of file TrilinosCrsMatrix.hpp.
|
private |
Definition at line 234 of file TrilinosCrsMatrix.hpp.
Send comments to: COOLFluiD Web Admin |