# sfepy.discrete.fem.refine module

Basic uniform mesh refinement functions.

sfepy.discrete.fem.refine.refine_1_2(mesh_in)

  Refines 1D mesh by cutting each element in half

sfepy.discrete.fem.refine.refine_2_3(mesh_in)

  Refines mesh out of triangles by cutting cutting each edge in half and making 4 new finer triangles out of one coarser one.

sfepy.discrete.fem.refine.refine_2_4(mesh_in)

  Refines mesh out of quadrilaterals by cutting cutting each edge in half and making 4 new finer quadrilaterals out of one coarser one.

sfepy.discrete.fem.refine.refine_3_4(mesh_in)

  Refines tetrahedra by cutting each edge in half and making 8 new finer tetrahedra out of one coarser one. Old nodal coordinates come first in coors, then the new ones. The new tetrahedra are similar to the old one, no degeneration is supposed to occur as at most 3 congruence classes of tetrahedra appear, even when re-applied iteratively (provided that conns are not modified between two applications - ordering of vertices in tetrahedra matters not only for positivity of volumes).

  References:

  - Juergen Bey: Simplicial grid refinement: on Freudenthal s algorithm and the optimal number of congruence classes, Numer.Math. 85 (2000), no. 1, 1–29, or

  - Juergen Bey: Tetrahedral grid refinement, Computing 55 (1995), no. 4, 355–378, or http://citeseer.ist.psu.edu/bey95tetrahedral.html

sfepy.discrete.fem.refine.refine_3_8(mesh_in)

  Refines hexahedral mesh by cutting cutting each edge in half and making 8 new finer hexahedrons out of one coarser one.

sfepy.discrete.fem.refine.refine_reference(geometry, level)

  Refine reference element given by geometry.

  Notes

  The error edges must be generated in the order of the connectivity of the previous (lower) level.