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 |
![]() | |
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. | |
![]() | |
virtual const std::string & | get_object_name () const |
virtual | ~Object () |
Additional Inherited Members | |
![]() | |
![]() | |
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.