A in-core implementation of the b2dbv3::Domain. All the Element, Node and ElementProperty objects are loaded in memory at theInitialisation of the object with the database. More...
#include "b2domain_database.H"


Public Member Functions | |
| void | set_model (b2000::Model &model) override |
| void | set_case (b2000::Case &case_) override |
| void | set_subcase_id (const int subcase_id_) override |
| bool | have_temperature () const override |
| size_t | get_number_of_dof () const override |
| size_t | get_number_of_elements () const override |
| size_t | get_number_of_elements_and_subelements () const override |
| size_t | get_number_of_nodes () const override |
| const std::vector< Element::VariableInfo > | get_value_info () const override |
| node_iterator | get_node_iterator () override |
| element_iterator | get_element_iterator () override |
| void | save_field (const std::string &name, const b2linalg::Vector< double, b2linalg::Vdense_constref > &dof) override |
| void | save_field (const std::string &name, const b2linalg::Vector< b2000::csda< double >, b2linalg::Vdense_constref > &dof) override |
| void | save_field (const std::string &name, const b2linalg::Vector< std::complex< double >, b2linalg::Vdense_constref > &dof) override |
| void | save_state (const std::string &state_id) override |
| void | load_state (const std::string &state_id) override |
| b2linalg::SparseMatrixConnectivityType | get_dof_connectivity_type () const override |
| Node * | get_node (const std::string &node_name) override |
| Element * | get_element (const std::string &element_name) override |
| void | get_adjacent_elements (std::pair< int, const Node *const * > node_list, std::vector< AdjacentElement > &adjacent_elements) override |
| void | get_elements_of_same_type_near (const Element *e, double dist, std::vector< Element * > &element_list) override |
| void | get_slave_node (std::vector< std::pair< const Node *, const Node * > > &slave_node) override |
| void | set_dof (const b2linalg::Matrix< double, b2linalg::Mrectangle_constref > &dof) override |
| void | set_dof (const b2linalg::Matrix< b2000::csda< double >, b2linalg::Mrectangle_constref > &dof) override |
| void | set_dof (const b2linalg::Matrix< std::complex< double >, b2linalg::Mrectangle_constref > &dof) override |
| const b2linalg::Matrix< double, b2linalg::Mrectangle_constref > & | get_dof (double) override |
| Element * | get_parent_element_and_nodes_mapping (b2000::Domain &parent_domain, const b2000::Element &element, b2linalg::Matrix< double > &parent_nodes_internal_coor) override |
| Element * | get_parent_element_mapping (b2000::Domain &parent_domain, const b2000::Node &node, b2linalg::Vector< double > &parent_internal_coor) override |
| const double * | get_node_local_referential_double (const Node &node) const override |
| const b2000::csda< double > * | get_node_local_referential_csda (const Node &node) const override |
Public Member Functions inherited from b2000::Domain | |
| template<typename T > | |
| const T * | get_node_local_referential (const Node &node) const |
| virtual void | get_adjacent_elements (const Node *node, std::vector< AdjacentElement > &adjacent_elements) |
| std::vector< std::reference_wrapper< Element > > & | GetElementContainer () |
| Return private member domain_element_container_ holding all elements of this domain. | |
| void | FillElementContainer () |
| Fill domain_element_container_ with all elements of this domain. | |
Public Member Functions inherited from b2000::Object | |
| virtual const std::string & | get_object_name () const |
| virtual | ~Object () |
Additional Inherited Members | |
Public Types inherited from b2000::Domain | |
Static Public Attributes inherited from b2000::Object | |
| static ObjectType | type |
A in-core implementation of the b2dbv3::Domain. All the Element, Node and ElementProperty objects are loaded in memory at theInitialisation of the object with the database.
|
inlineoverridevirtual |
Get the list of elements that are adjacent to all the Node instances given as argument.
| node_list | A pair (first, second) with first being the number of nodes and second a pointer to an array of Node pointers (input). |
| adjacent_elements | A vector of containing information on adjacent elements. Each entry corresponds to one Element. |
The AdjacentElement::internal_node_id_list contains the node-internal ID's of the nodes given in node_list that
Implements b2000::Domain.
|
inlineoverridevirtual |
Get a subset of the current degrees-of-freedom.
Implements b2000::Domain.
|
inlineoverridevirtual |
Implements b2000::Domain.
|
inlineoverridevirtual |
Reimplemented from b2000::Domain.
|
inlineoverridevirtual |
Implements b2000::Domain.
|
overridevirtual |
Get the list of elements near a given element and of the same type. This function is useful e.g. for contact overlay elements.
| e | A pointer to the Element instance (input). |
| dist | The maximum search distance (input). |
| element_list | A vector of pointers to Element instances (output). |
The list of returned elements contains all elements of the same type as Element e, and for with the distance with e is less or equal dist. The list may also contain some elements whose distance to e is slightly larger than dist.
Implements b2000::Domain.
|
inlineoverridevirtual |
Reimplemented from b2000::Domain.
|
inlineoverridevirtual |
Return a std::unique_ptr to NodeIterator to iterate over all nodes of the FE domain.
Implements b2000::Domain.
|
inlineoverridevirtual |
Must be overwritten by implementations of Domain.
Implements b2000::Domain.
|
inlineoverridevirtual |
Must be overwritten by implementations of Domain.
Implements b2000::Domain.
|
inlineoverridevirtual |
Implements b2000::Domain.
|
inlineoverridevirtual |
Implements b2000::Domain.
|
inlineoverridevirtual |
Implements b2000::Domain.
|
inlineoverridevirtual |
Implements b2000::Domain.
|
inlineoverridevirtual |
Get the Element of the parent domain containing an element belonging to this domain (the local domain).
| parent_domain | The parent domain to search. |
| element | The Element instance of the this domain (= the local element). |
| parent_nodes_internal_coor | The element-internal coordinates of the local element inside the parent element. |
Reimplemented from b2000::Domain.
|
inlineoverridevirtual |
Get the first Element of the parent domain containing a node belonging to this domain (the local domain.
| parent_domain | The parent domain to search. |
| parent_domain | The parent domain to search. |
| node | The Node instance of the this domain (= the local node). |
| parent_internal_coor | The element-internal coordinates of the local node inside the parent element. |
Reimplemented from b2000::Domain.
|
overridevirtual |
In a domain, coinciding nodes of different branches may be merged together. In this case, one of the nodes becomes the master node and the other node becomes the slave node.
| slave_node | A vector of (slave,master) pairs of pointers to Node instances (output). |
Implements b2000::Domain.
|
inlineoverridevirtual |
Implements b2000::Domain.
|
inlineoverridevirtual |
Whether temperature conditions affecting the right-hand side through the element response (thermal expansion) are present for the current case and subcase.
Implements b2000::Domain.
|
inlineoverridevirtual |
Load the state of the FE domain with the identifier state_id. This function is called by the Solver instance upon restart.
Implements b2000::Domain.
|
inlineoverridevirtual |
Save a csda-valued field defined on all degrees-of-freedom. This function is called by the Solver instance.
| name_id | The name of the field. |
| dof | A vector containing values for all degrees-of-freedom present in the FE domain. |
Implements b2000::Domain.
|
inlineoverridevirtual |
Save a real-valued field defined on all degrees-of-freedom. This function is called by the Solver instance. Such fields may be, e.g. for stress analysis, the displacement field ("DISP"), or the field containing the summed-up internal forces ("RCFO").
| name_id | The name of the field. |
| dof | A vector containing values for all degrees-of-freedom present in the FE domain. |
Implements b2000::Domain.
|
inlineoverridevirtual |
Save a complex-valued field defined on all degrees-of-freedom. This function is called by the Solver instance.
| name_id | The name of the field. |
| dof | A vector containing values for all degrees-of-freedom present in the FE domain. |
Implements b2000::Domain.
|
inlineoverridevirtual |
Save the state of the FE domain with the identifier state_id. This function is called by the Solver instance.
Implements b2000::Domain.
|
overridevirtual |
Set the current Case instance. This function is called by the Model instance.
Implements b2000::Domain.
|
inlineoverridevirtual |
Set the current degrees-of- freedom.
Implements b2000::Domain.
|
inlineoverridevirtual |
Set the current degrees-of-freedom.
Implements b2000::Domain.
|
inlineoverridevirtual |
Set the current degrees-of- freedom.
Implements b2000::Domain.
|
overridevirtual |
Set a reference to the Model instance. This function is called by the Model instance.
Implements b2000::Domain.
|
inlineoverridevirtual |
Set the subcase ID.
Implements b2000::Domain.