Hex8

Struct Hex8 

Source
pub struct Hex8 {}
Expand description

Defines a hexahedron with 8 nodes (bilinear faces)

hex8

§Local IDs of nodes

          4________________7
        ,'|              ,'|
      ,'  |            ,'  |             r     s     t
    ,'    |          ,'    |     p:0 [-1.0, -1.0, -1.0]
  ,'      |        ,'      |     p:1 [ 1.0, -1.0, -1.0]
5'===============6'        |     p:2 [ 1.0,  1.0, -1.0]
|         |      |         |     p:3 [-1.0,  1.0, -1.0]
|         |      |         |     p:4 [-1.0, -1.0,  1.0]
|         0_____ | ________3     p:5 [ 1.0, -1.0,  1.0]
|       ,'       |       ,'      p:6 [ 1.0,  1.0,  1.0]
|     ,'         |     ,'        p:7 [-1.0,  1.0,  1.0]
|   ,'           |   ,'
| ,'             | ,'
1________________2'

§Local IDs of edges

                    7                   p0  p1
            +----------------+     e:0  [0, 1]
          ,'|              ,'|     e:1  [1, 2]
      4 ,'  |8          6,'  |     e:2  [2, 3]
      ,'    |          ,'    |     e:3  [3, 0]
    ,'      |   5    ,'      |11   e:4  [4, 5]
  +'===============+'        |     e:5  [5, 6]
  |         |      |         |     e:6  [6, 7]
  |         |      |  3      |     e:7  [7, 4]
  |         .- - - | -  - - -+     e:8  [0, 4]
 9|       ,'       |       ,'      e:9  [1, 5]
  |    0,'         |10   ,'        e:10 [2, 6]
  |   ,'           |   ,' 2        e:11 [3, 7]
  | ,'             | ,'
  +----------------+'
          1
  • The order of edge nodes corresponds to Lin2 nodes.

§Local IDs of faces

          4----------------7
        ,'|              ,'|
      ,'  |  ___       ,'  |
    ,'    |,'5,'  [0],'    |        p0 p1 p2 p3
  ,'      |~~~     ,'      |    f:0 [0, 4, 7, 3]
5'===============6'  ,'|   |    f:1 [1, 2, 6, 5]
|   ,'|   |      |   |3|   |    f:2 [0, 1, 5, 4]
|   |2|   |      |   |,'   |    f:3 [2, 3, 7, 6]
|   |,'   0- - - | +- - - -3    f:4 [0, 3, 2, 1]
|       ,'       |       ,'     f:5 [4, 5, 6, 7]
|     ,' [1]  ___|     ,'
|   ,'      ,'4,'|   ,'
| ,'        ~~~  | ,'
1----------------2'

§Notes

  • The reference coordinates range from -1 to +1 with the geometry centred @ 0.
  • The order of face nodes is such that the normals are outward
  • The order of face nodes corresponds to super::Qua4 nodes
  • This shape is a lower-order version of super::Hex20

Implementations§

Source§

impl Hex8

Source

pub const GEO_NDIM: usize = 3usize

Source

pub const NNODE: usize = 8usize

Source

pub const NEDGE: usize = 12usize

Source

pub const NFACE: usize = 6usize

Source

pub const EDGE_NNODE: usize = 2usize

Source

pub const FACE_NNODE: usize = 4usize

Source

pub const FACE_NEDGE: usize = 4usize

Source

pub const EDGE_NODE_IDS: [[usize; 2]; 12]

Source

pub const FACE_NODE_IDS: [[usize; 4]; 6]

Source

pub const FACE_EDGE_NODE_IDS: [[[usize; 2]; 4]; 6]

Source

pub const NODE_REFERENCE_COORDS: [[f64; 3]; 8]

Source

pub fn calc_interp(interp: &mut Vector, ksi: &[f64])

Computes the interpolation functions

§Output
  • interp – interpolation function evaluated at ksi (nnode)
§Input
  • ksi – reference coordinates with length ≥ geo_ndim
Source

pub fn calc_deriv(deriv: &mut Matrix, ksi: &[f64])

Computes the derivatives of interpolation functions with respect to the reference coordinates

§Output
  • deriv – derivatives of the interpolation function with respect to the reference coordinates ksi, evaluated at ksi (nnode,geo_ndim)
§Input
  • ksi – reference coordinates with length ≥ geo_ndim

Auto Trait Implementations§

§

impl Freeze for Hex8

§

impl RefUnwindSafe for Hex8

§

impl Send for Hex8

§

impl Sync for Hex8

§

impl Unpin for Hex8

§

impl UnwindSafe for Hex8

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V