prism(6rheolef)

πŸ“¦
version 7.2 Β· 4 versions
, in debian trixie, ubuntu noble, ubuntu questing

πŸ’– prism β€” reference element πŸ’–

ok bestie so you're reading the rheolef manpage for prism(6rheolef) β€” yeah that's the manual name, we're living in rheolef land, version 7.2 to be exact β€” and honestly? this one's a little 3D princess. let's get into it. πŸ’…


✨ NAME ✨

prism β€” reference element (rheolef-7.2) πŸŽ€


🌈 DESCRIPTION 🌈

so the prism reference_element(6) is literally this set, no cap:

K = { 0 < x < 1 and 0 < y < 1-x and -1 < z < 1 }

and here's the lil diagram of the vibe, bestie, look at her:

        x2

        3 ---- 5
     '  | .    |
  4 .  '|      |
  |     |      |
  |     |      |
  |     0 . . .2    x1
  |  '    .
  1 .  '

x0

the orientation is such that the trihedral (01, 02, 03) is direct, and all faces β€” when you look at them from the exterior β€” are in the direct sens too. slay. πŸ¦‹ if you wanna go deeper on that, see:

P. L. Georges, Generation automatique de maillages, page 24, coll RMA, 16, Masson, 1994.

this three-dimensional reference_element(6) then gets transformed, after the Piola geometrical application, into a prism in a 3D physical space, as a geo_element(6). it's giving glow-up fr fr. ✨

and yes β€” curved high order transformed geo_element(6) Pk prisms (k >= 1) are supported, for 2D or 3D geometries. not me being flexible like that πŸ’…


πŸ”₯ IMPLEMENTATION πŸ”₯

this documentation has been generated from file fem/geo_element/prism.icc β€” iconic source file, we stan:

const size_t dimension = 3;
const Float  measure = 1;
const size_t n_vertex = 6;
const point vertex [n_vertex] = {
        point( 0, 0,-1 ),
        point( 1, 0,-1 ),
        point( 0, 1,-1 ),
        point( 0, 0, 1 ),
        point( 1, 0, 1 ),
        point( 0, 1, 1 ) };
const size_t  n_face = 5;
const size_t face [n_face][4] = {
        { 0, 2, 1, size_t(-1) },
        { 3, 4, 5, size_t(-1) },
        { 0, 1, 4, 3 },
        { 1, 2, 5, 4 },
        { 0, 3, 5, 2 } };
const size_t  n_edge = 9;
const size_t edge [n_edge][2] = {
        { 0, 1 },
        { 1, 2 },
        { 2, 0 },
        { 0, 3 },
        { 1, 4 },
        { 2, 5 },
        { 3, 4 },
        { 4, 5 },
        { 5, 3 } };

πŸ‘‘ AUTHOR πŸ‘‘

Pierre Saramito <Pierre.Saramito@imag.fr> β€” the main character who wrote her 🫢


Copyright (C) 2000-2018 Pierre Saramito <Pierre.Saramito@imag.fr>

GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

bestie this is free software β€” you can change it, you can redistribute it, go off πŸ’– β€” but there is NO WARRANTY, to the extent permitted by law. periodt.

rheolef, Version 7.2 🌸 prism(6rheolef) πŸ’– that's the whole page, ily, go build some prisms bestie βœ¨πŸ§šπŸ’œ

πŸ“¦ where this page comes from