A 2-dimensional Block bounded by 4 Edges.
More...
#include <Block.hpp>
Public Member Functions | |
| Surface_face (std::array< Vertex *, 4 >, const Basis &) | |
Constructs a Surface_face that referes to existing vertices. | |
| Edge & | edge (int i) |
Access the ith edge. | |
| const Edge & | edge (int i) const |
| std::vector< Element_shape * > | dependent_elements () override |
Obtains all the Element_shapes whose point() depends on this | |
| std::vector< int > | element_coords (std::vector< int >) const override |
Transforms node coordinates from the space of the Block to its Element_shape | |
| std::vector< Vertex * > | vertices () override |
| void | reset () override |
sets interior() to minimize the Laplacian. | |
| void | set_points (Array< double > points) override |
Sets the interior, edge, and vertex points to points. | |
Public Member Functions inherited from hexed::next::Boundary_block | |
| Boundary_block (int n_dim, const Basis &basis) | |
| const Basis & | basis () const |
| bool | alive () const |
true iff this currently has an Element_shape referencing it. | |
| void | pair (mutual::Base< Element_shape, Boundary_block > &elem) |
sets elem to point to this | |
| Element_shape * | element () |
Get the element this is pair()d with (nullptr if not paired). | |
| const Element_shape * | element () const |
| Array< double > | interior () |
| A modifiable view of the interior points. | |
Public Member Functions inherited from hexed::next::Block | |
| Block (int n_dim, int row_size) | |
| int | n_dim () const |
| number of topological dimensions. | |
| int | row_size () const |
| number nodes along each dimension | |
| Mat< 3 > | point (const std::vector< int > &node_coords, Int recursion_depth=0) const |
Obtains the node with array indices specified by node_coords. | |
| Mat< 3 > | point (int i_point, Int recursion_depth=0) const |
Obtains the node with flat index i_point | |
| virtual Array< double > | points () const |
| Obtains all the nodes as a multidimensional array. | |
| void | visualize (std::string format, std::string file_name, double time=0.) const |
Visualizes the nodes of a single Block. | |
Public Member Functions inherited from hexed::mutual::Multiple< void, void > | |
| Multiple (const Multiple &)=delete | |
| Multiple (Multiple &&that) | |
steals all of that's partners, leaving that unconnected | |
| Multiple & | operator= (const Multiple &)=delete |
| Multiple & | operator= (Multiple &&that) |
steals all of that's partners, leaving that unconnected | |
| next::Sequence< Base< void, void > & > | partners () |
| provides access to the list of partners | |
| next::Sequence< const Base< void, void > & > | partners () const |
| provides access to the list of partners | |
Public Member Functions inherited from hexed::mutual::Base< void, void > | |
| virtual void * | _mine () |
| virtual const void * | _mine () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Additional Inherited Members | |
Static Public Member Functions inherited from hexed::next::Block | |
| static void | visualize (std::string format, std::string file_name, next::Sequence< const Block & >, double time=0.) |
Visualizes the nodes of a set of Blocks. | |
Public Attributes inherited from hexed::next::Boundary_block | |
| bool | snapping_problem |
Static Public Attributes inherited from hexed::next::Block | |
| static constexpr Int | max_recursion_depth = 100 |
Protected Member Functions inherited from hexed::mutual::Base< void, void > | |
| void | _connect (Base< void, void > &that) |
may be overridden by derived classes to provide partners to data of some arbitrary type T | |
| void | _disconnect (Base< void, void > &that) |
mutually disconnects this and that by calling both of their _unset() member functions | |
Static Protected Member Functions inherited from hexed::mutual::Base< void, void > | |
| static void * | _yours (Base< void, void > &that) |
Accesses the _mine() of that | |
| static const void * | _yours (const Base< void, void > &that) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Protected Attributes inherited from hexed::next::Boundary_block | |
| Array< double > | _interior |
| storage for the interior points | |
Protected Attributes inherited from hexed::mutual::Base< void, void > | |
| Lock | _lock |
A 2-dimensional Block bounded by 4 Edges.
This class is only used to represent boundary faces, since interior faces are not free (their position is always determined by linear interpolation between the vertices). Only 3D meshes have Surface_faces. point({i, j}) will behave as follows:
i and j \(\in\) {0, row_size() - 1}, returns the position of one of the vertices.i or j \(\in\) {0, row_size() - 1}, returns the position of one the edges.interior(). Constructs a Surface_face that referes to existing vertices.
Vertices are ordered in the standard row-major order. this will construct and own its edges (which can be accessed with Surface_face::edge).
|
overridevirtual |
Obtains all the Element_shapes whose point() depends on this
Implements hexed::next::Boundary_block.
|
inline |
Access the ith edge.
The order of the edges is \( \{\xi_0 = 0\}, \{\xi_0 = 1\}, \{\xi_1 = 0\}, \{\xi_1 = 1\} \).
|
overridevirtual |
Transforms node coordinates from the space of the Block to its Element_shape
That is, element()->point(elemement_coords(coords)) should give the same result as point(coords).
Implements hexed::next::Boundary_block.
|
overridevirtual |
sets interior() to minimize the Laplacian.
Specifically, the Laplacian of each physical coordinate as a function of the reference coordinates is minimized in the \( L^2 \) norm.
Implements hexed::next::Boundary_block.
|
overridevirtual |
Sets the interior, edge, and vertex points to points.
The interior(), as well as any connected Edges and Vertexs will be modified. After calling set_points(p), points() and p should be equal. The points provided as the argument must have the same shape as points().
Implements hexed::next::Boundary_block.
|
overridevirtual |
Implements hexed::next::Boundary_block.