Two layer mesh which employs a pseudo-solid node-update strategy. This class is essentially a wrapper to an ElasticRectangularQuadMesh, with an additional boundary to represent the interface between the two fluid layers. In addition, the mesh paritions the elements into those above and below the interface and relabels boundaries so that we can impose a volume constraint on the lower or upper fluid. More...
Public Member Functions | |
ElasticTwoLayerMesh (const unsigned &nx, const unsigned &ny1, const unsigned &ny2, const double &lx, const double &h1, const double &h2, const bool &periodic_in_x=false, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass number of elements in x-direction, number of elements in y-direction in bottom and top layer, respectively, axial length and height of top and bottom layers, a boolean flag to make the mesh periodic in the x-direction, and pointer to timestepper (defaults to Steady timestepper) More... | |
FiniteElement *& | upper_layer_element_pt (const unsigned long &i) |
Access functions for pointers to elements in upper layer. More... | |
FiniteElement *& | lower_layer_element_pt (const unsigned long &i) |
Access functions for pointers to elements in bottom layer. More... | |
unsigned long | nupper () const |
Number of elements in upper layer. More... | |
unsigned long | nlower () const |
Number of elements in top layer. More... | |
FiniteElement *& | interface_upper_boundary_element_pt (const unsigned long &i) |
Access functions for pointers to elements in upper layer. More... | |
FiniteElement *& | interface_lower_boundary_element_pt (const unsigned long &i) |
Access functions for pointers to elements in bottom layer. More... | |
unsigned long | ninterface_upper () const |
Number of elements in upper layer. More... | |
unsigned long | ninterface_lower () const |
Number of elements in top layer. More... | |
int | interface_upper_face_index_at_boundary (const unsigned &e) |
Index of the face of the elements next to the interface in the upper region (always -2) More... | |
int | interface_lower_face_index_at_boundary (const unsigned &e) |
Index of the face of the elements next to the interface in the lower region (always 2) More... | |
Private Attributes | |
Vector< FiniteElement * > | Lower_layer_element_pt |
Vector of pointers to element in the upper layer. More... | |
Vector< FiniteElement * > | Upper_layer_element_pt |
Vector of pointers to element in the lower layer. More... | |
Vector< FiniteElement * > | Interface_lower_boundary_element_pt |
Vector of pointers to the elements adjacent to the interface on the lower layer. More... | |
Vector< FiniteElement * > | Interface_upper_boundary_element_pt |
Vector of pointers to the element adjacent to the interface on the upper layer. More... | |
Two layer mesh which employs a pseudo-solid node-update strategy. This class is essentially a wrapper to an ElasticRectangularQuadMesh, with an additional boundary to represent the interface between the two fluid layers. In addition, the mesh paritions the elements into those above and below the interface and relabels boundaries so that we can impose a volume constraint on the lower or upper fluid.
3 --------------------------------------- | | 4 | | 2 | 6 | --------------------------------------- | | 5 | | 1 | | --------------------------------------- 0
Definition at line 452 of file static_two_layer.cc.
|
inline |
Constructor: Pass number of elements in x-direction, number of elements in y-direction in bottom and top layer, respectively, axial length and height of top and bottom layers, a boolean flag to make the mesh periodic in the x-direction, and pointer to timestepper (defaults to Steady timestepper)
Definition at line 463 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Interface_lower_boundary_element_pt, ElasticTwoLayerMesh< ELEMENT >::Interface_upper_boundary_element_pt, ElasticTwoLayerMesh< ELEMENT >::Lower_layer_element_pt, and ElasticTwoLayerMesh< ELEMENT >::Upper_layer_element_pt.
|
inline |
Access functions for pointers to elements in bottom layer.
Definition at line 701 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Interface_lower_boundary_element_pt.
|
inline |
Index of the face of the elements next to the interface in the lower region (always 2)
Definition at line 719 of file static_two_layer.cc.
|
inline |
Access functions for pointers to elements in upper layer.
Definition at line 697 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Interface_upper_boundary_element_pt.
|
inline |
Index of the face of the elements next to the interface in the upper region (always -2)
Definition at line 714 of file static_two_layer.cc.
|
inline |
Access functions for pointers to elements in bottom layer.
Definition at line 687 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Lower_layer_element_pt.
|
inline |
Number of elements in top layer.
Definition at line 709 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Interface_lower_boundary_element_pt.
|
inline |
Number of elements in upper layer.
Definition at line 705 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Interface_upper_boundary_element_pt.
|
inline |
Number of elements in top layer.
Definition at line 694 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Lower_layer_element_pt.
|
inline |
Number of elements in upper layer.
Definition at line 691 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Upper_layer_element_pt.
|
inline |
Access functions for pointers to elements in upper layer.
Definition at line 683 of file static_two_layer.cc.
References ElasticTwoLayerMesh< ELEMENT >::Upper_layer_element_pt.
|
private |
Vector of pointers to the elements adjacent to the interface on the lower layer.
Definition at line 732 of file static_two_layer.cc.
Referenced by ElasticTwoLayerMesh< ELEMENT >::ElasticTwoLayerMesh(), ElasticTwoLayerMesh< ELEMENT >::interface_lower_boundary_element_pt(), and ElasticTwoLayerMesh< ELEMENT >::ninterface_lower().
|
private |
Vector of pointers to the element adjacent to the interface on the upper layer.
Definition at line 736 of file static_two_layer.cc.
Referenced by ElasticTwoLayerMesh< ELEMENT >::ElasticTwoLayerMesh(), ElasticTwoLayerMesh< ELEMENT >::interface_upper_boundary_element_pt(), and ElasticTwoLayerMesh< ELEMENT >::ninterface_upper().
|
private |
Vector of pointers to element in the upper layer.
Definition at line 725 of file static_two_layer.cc.
Referenced by ElasticTwoLayerMesh< ELEMENT >::ElasticTwoLayerMesh(), ElasticTwoLayerMesh< ELEMENT >::lower_layer_element_pt(), and ElasticTwoLayerMesh< ELEMENT >::nlower().
|
private |
Vector of pointers to element in the lower layer.
Definition at line 728 of file static_two_layer.cc.
Referenced by ElasticTwoLayerMesh< ELEMENT >::ElasticTwoLayerMesh(), ElasticTwoLayerMesh< ELEMENT >::nupper(), and ElasticTwoLayerMesh< ELEMENT >::upper_layer_element_pt().