GooseFEM 1.4.1.dev2+g78f16df
Loading...
Searching...
No Matches
GooseFEM::Mesh::Vstack Class Reference

Vertically stack meshes. More...

#include <GooseFEM/Mesh.h>

Inheritance diagram for GooseFEM::Mesh::Vstack:
GooseFEM::Mesh::Stitch

Public Member Functions

 Vstack (bool check_overlap=true, double rtol=1e-5, double atol=1e-8)
 
template<class C , class E , class N >
void push_back (const C &coor, const E &conn, const N &nodes_bot, const N &nodes_top)
 Add a mesh to the top of the current stack.
 
- Public Member Functions inherited from GooseFEM::Mesh::Stitch
 Stitch (double rtol=1e-5, double atol=1e-8)
 
template<class C , class E >
void push_back (const C &coor, const E &conn)
 Add mesh to be stitched.
 
size_t nmesh () const
 Number of sub meshes.
 
size_t nelem () const
 Number of elements.
 
size_t nnode () const
 Number of nodes.
 
size_t nne () const
 Number of nodes-per-element.
 
size_t ndim () const
 Number of dimensions.
 
const array_type::tensor< double, 2 > & coor () const
 Nodal coordinates [nnode, ndim].
 
const array_type::tensor< size_t, 2 > & conn () const
 Connectivity [nelem, nne].
 
array_type::tensor< size_t, 2 > dofs () const
 DOF numbers for each node (numbered sequentially) [nnode, ndim].
 
std::vector< array_type::tensor< size_t, 1 > > nodemap () const
 Node-map per sub-mesh.
 
std::vector< array_type::tensor< size_t, 1 > > elemmap () const
 Element-map per sub-mesh.
 
array_type::tensor< size_t, 1 > nodemap (size_t mesh_index) const
 The node numbers in the stitched mesh that are coming from a specific sub-mesh.
 
array_type::tensor< size_t, 1 > elemmap (size_t mesh_index) const
 The element numbers in the stitched mesh that are coming from a specific sub-mesh.
 
template<class T >
T nodeset (const T &set, size_t mesh_index) const
 Convert set of node-numbers for a sub-mesh to the stitched mesh.
 
template<class T >
T elemset (const T &set, size_t mesh_index) const
 Convert set of element-numbers for a sub-mesh to the stitched mesh.
 
template<class T >
T nodeset (const std::vector< T > &set) const
 Combine set of node numbers for an original to the final mesh (removes duplicates).
 
template<class T >
T nodeset (std::initializer_list< T > set) const
 Combine set of node numbers for an original to the final mesh (removes duplicates).
 
template<class T >
T elemset (const std::vector< T > &set) const
 Combine set of element numbers for an original to the final mesh.
 
template<class T >
T elemset (std::initializer_list< T > set) const
 Combine set of element numbers for an original to the final mesh.
 

Additional Inherited Members

- Protected Attributes inherited from GooseFEM::Mesh::Stitch
array_type::tensor< double, 2 > m_coor
 Nodal coordinates [nnode, ndim].
 
array_type::tensor< size_t, 2 > m_conn
 Connectivity [nelem, nne].
 
std::vector< array_type::tensor< size_t, 1 > > m_map
 See nodemap(size_t)
 
std::vector< size_tm_nel
 Number of elements per sub-mesh.
 
std::vector< size_tm_el_offset
 First element of every sub-mesh.
 
double m_rtol
 Relative tolerance to find overlapping nodes.
 
double m_atol
 Absolute tolerance to find overlapping nodes.
 

Detailed Description

Vertically stack meshes.

Definition at line 2309 of file Mesh.h.

Constructor & Destructor Documentation

◆ Vstack()

GooseFEM::Mesh::Vstack::Vstack ( bool check_overlap = true,
double rtol = 1e-5,
double atol = 1e-8 )
inline
Parameters
check_overlapCheck if nodes are overlapping when adding a mesh.
rtolRelative tolerance for position match.
atolAbsolute tolerance for position match.

Definition at line 2316 of file Mesh.h.

Member Function Documentation

◆ push_back()

template<class C , class E , class N >
void GooseFEM::Mesh::Vstack::push_back ( const C & coor,
const E & conn,
const N & nodes_bot,
const N & nodes_top )
inline

Add a mesh to the top of the current stack.

Each time the current nodes_bot are stitched with the then highest nodes_top.

Parameters
coorNodal coordinates [nnode, ndim].
connConnectivity [nelem, nne].
nodes_botNodes along the bottom edge [n].
nodes_topNodes along the top edge [n].

Definition at line 2333 of file Mesh.h.


The documentation for this class was generated from the following file: