felupe.mesh#

class felupe.mesh.Line(a=0, b=1, n=2)[source]#
as_meshio(**kwargs)#

Export the mesh as meshio.Mesh.

Parameters

filename (str, optional) – The filename of the mesh (default is mesh.vtk).

copy()#

Return a deepcopy of the mesh.

Returns

A deepcopy of the mesh.

Return type

Mesh

disconnect()#

Return a new instance of a Mesh with disconnected cells.

save(filename='mesh.vtk', **kwargs)#

Export the mesh as VTK file. For XDMF-export please ensure to have h5py (as an optional dependancy of meshio) installed.

Parameters

filename (str, optional) – The filename of the mesh (default is mesh.vtk).

update(cells)#

Update the cell and dimension attributes with a given cell array.

class felupe.mesh.RectangleArbitraryOrderQuad(a=(0, 0), b=(1, 1), order=2)[source]#
as_meshio(**kwargs)#

Export the mesh as meshio.Mesh.

Parameters

filename (str, optional) – The filename of the mesh (default is mesh.vtk).

copy()#

Return a deepcopy of the mesh.

Returns

A deepcopy of the mesh.

Return type

Mesh

disconnect()#

Return a new instance of a Mesh with disconnected cells.

save(filename='mesh.vtk', **kwargs)#

Export the mesh as VTK file. For XDMF-export please ensure to have h5py (as an optional dependancy of meshio) installed.

Parameters

filename (str, optional) – The filename of the mesh (default is mesh.vtk).

update(cells)#

Update the cell and dimension attributes with a given cell array.

class felupe.mesh.CubeArbitraryOrderHexahedron(a=(0, 0, 0), b=(1, 1, 1), order=2)[source]#
as_meshio(**kwargs)#

Export the mesh as meshio.Mesh.

Parameters

filename (str, optional) – The filename of the mesh (default is mesh.vtk).

copy()#

Return a deepcopy of the mesh.

Returns

A deepcopy of the mesh.

Return type

Mesh

disconnect()#

Return a new instance of a Mesh with disconnected cells.

save(filename='mesh.vtk', **kwargs)#

Export the mesh as VTK file. For XDMF-export please ensure to have h5py (as an optional dependancy of meshio) installed.

Parameters

filename (str, optional) – The filename of the mesh (default is mesh.vtk).

update(cells)#

Update the cell and dimension attributes with a given cell array.

felupe.mesh.add_midpoints_edges(points, cells, cell_type)[source]#

“Add midpoints on edges for given points and cells and update cell_type accordingly.

felupe.mesh.add_midpoints_faces(points, cells, cell_type)[source]#

“Add midpoints on faces for given points and cells and update cell_type accordingly.

felupe.mesh.add_midpoints_volumes(points, cells, cell_type)[source]#

“Add midpoints on volumes for given points and cells and update cell_type accordingly.

felupe.mesh.collect_edges(points, cells, cell_type)[source]#

“Collect all unique edges, calculate and return midpoints on edges as well as the additional cells array.

felupe.mesh.collect_faces(points, cells, cell_type)[source]#

“Collect all unique faces, calculate and return midpoints on faces as well as the additional cells array.

felupe.mesh.collect_volumes(points, cells, cell_type)[source]#

“Collect all volumes, calculate and return midpoints on volumes as well as the additional cells array.

felupe.mesh.convert(points, cells, cell_type, order=0, calc_points=False, calc_midfaces=False, calc_midvolumes=False)[source]#

Convert mesh to a given order (only order=0 and order=2 from order=1 are supported).

felupe.mesh.expand(points, cells, cell_type, n=11, z=1)[source]#

Expand a 1d-Line to a 2d-Quad or a 2d-Quad to a 3d-Hexahedron Mesh.

Parameters
  • points (list or ndarray) – Original point coordinates.

  • cells (list or ndarray) – Original point-connectivity of cells.

  • cell_type (str) – A string in VTK-convention that specifies the cell type.

  • n (int, optional) – Number of n-point repetitions or (n-1)-cell repetitions, default is 11.

  • z (float or ndarray, optional) – Total expand dimension as float (edge length in expand direction is z / n), default is 1. Optionally, if an array is passed these entries are taken as expansion and n is ignored.

Returns

  • points (ndarray) – Modified point coordinates.

  • cells (ndarray) – Modified point-connectivity of cells.

  • cell_type (str or None) – A string in VTK-convention that specifies the cell type.

felupe.mesh.mirror(points, cells, cell_type, normal=[1, 0, 0], centerpoint=[0, 0, 0], axis=None)[source]#

Mirror points by plane normal and ensure positive cell volumes for tria, tetra, quad and hexahedron cell types.

Parameters
  • points (list or ndarray) – Original point coordinates.

  • cells (list or ndarray) – Original point-connectivity of cells.

  • cell_type (str) – A string in VTK-convention that specifies the cell type.

  • normal (list or ndarray, optional) – Mirror-plane normal vector (default is [1, 0, 0]).

  • centerpoint (list or ndarray, optional) – Center-point coordinates on the mirror plane (default is [0, 0, 0]).

  • axis (int or None, optional) – Mirror axis (default is None).

Returns

  • points (ndarray) – Modified point coordinates.

  • cells (ndarray) – Modified point-connectivity of cells.

  • cell_type (str or None) – A string in VTK-convention that specifies the cell type.

felupe.mesh.revolve(points, cells, cell_type, n=11, phi=180, axis=0)[source]#

Revolve a 2d-Quad to a 3d-Hexahedron Mesh.

Parameters
  • points (list or ndarray) – Original point coordinates.

  • cells (list or ndarray) – Original point-connectivity of cells.

  • cell_type (str) – A string in VTK-convention that specifies the cell type.

  • n (int, optional) – Number of n-point revolutions (or (n-1) cell revolutions), default is 11.

  • phi (float or ndarray, optional) – Revolution angle in degree (default is 180).

  • axis (int, optional) – Revolution axis (default is 0).

Returns

  • points (ndarray) – Modified point coordinates.

  • cells (list or ndarray) – Modified point-connectivity of cells.

  • cell_type (str or None) – A string in VTK-convention that specifies the cell type.

felupe.mesh.rotate(points, cells, cell_type, angle_deg, axis, center=None)[source]#

Rotate a Mesh.

Parameters
  • points (list or ndarray) – Original point coordinates.

  • cells (list or ndarray) – Original point-connectivity of cells.

  • cell_type (str) – A string in VTK-convention that specifies the cell type.

  • angle_deg (int) – Rotation angle in degree.

  • axis (int) – Rotation axis.

  • center (list or ndarray or None, optional) – Center point coordinates (default is None).

Returns

  • points (ndarray) – Modified point coordinates.

  • cells (list or ndarray) – Original point-connectivity of cells.

  • cell_type (str or None) – A string in VTK-convention that specifies the cell type.

felupe.mesh.sweep(points, cells, cell_type, decimals=None)[source]#

Sweep duplicated points and update cells of a Mesh.

WARNING: This function sorts points.

Parameters
  • points (list or ndarray) – Original point coordinates.

  • cells (list or ndarray) – Original point-connectivity of cells.

  • cell_type (str) – A string in VTK-convention that specifies the cell type.

  • decimals (int or None, optional) – Number of decimals for point coordinate comparison (default is None).

Returns

  • points (ndarray) – Modified point coordinates.

  • cells (list or ndarray) – Modified point-connectivity of cells.

  • cell_type (str or None) – A string in VTK-convention that specifies the cell type.

felupe.mesh.triangulate(points, cells, cell_type, mode=3)[source]#

Triangulate a quad or a hex mesh.

Parameters
  • points (list or ndarray) – Original point coordinates.

  • cells (list or ndarray) – Original point-connectivity of cells.

  • cell_type (str) – A string in VTK-convention that specifies the cell type.

  • mode (int, optional) – Choose a mode how to convert hexahedrons to tets [1] (default is 3).

Returns

  • points (ndarray) – Modified point coordinates.

  • cells (ndarray) – Modified point-connectivity of cells.

  • cell_type (str or None) – A string in VTK-convention that specifies the cell type.

References

[1] Dompierre, J., Labbé, P., Vallet, M. G., & Camarero, R. (1999). How to Subdivide Pyramids, Prisms, and Hexahedra into Tetrahedra. IMR, 99, 195.