TPMS, strut, and face lattices ============================== .. currentmodule:: pyvcad_metamaterials TPMS lattices ------------- Every TPMS builder returns a ``pyvcad.MappedImplicitLattice`` (or a ``pyvcad.MappedStructureCollection`` for a multi-map collection) in either ``"sheet"`` or ``"solid"`` mode. .. autofunction:: tpms .. autodata:: TPMS_NAMES :no-value: Names accepted by :func:`tpms`: ``fischer_koch_s``, ``frd``, ``gyroid``, ``iwp``, ``lidinoid``, ``neovius``, ``schwarz_d``, ``schwarz_p``, ``split_p``. .. autofunction:: gyroid .. autofunction:: schwarz_p .. autofunction:: schwarz_d .. autofunction:: neovius .. autofunction:: iwp .. autofunction:: lidinoid .. autofunction:: split_p .. autofunction:: fischer_koch_s .. autofunction:: frd Strut (graph) lattices ---------------------- Every strut builder returns a ``pyvcad.MappedGraphLattice`` (or a ``pyvcad.MappedStructureCollection`` for a multi-map collection). .. autofunction:: graph_lattice .. autodata:: LATTICE_NAMES :no-value: Names accepted by :func:`graph_lattice`: ``bcc``, ``column``, ``columns``, ``cubic``, ``diamond``, ``fcc``, ``fluorite``, ``hex_prism_central_axis``, ``hex_prism_diamond``, ``hex_prism_edge``, ``hex_prism_laves``, ``hex_prism_vertex_centroid``, ``isotruss``, ``kelvin``, ``oct_vertex_centroid``, ``octet``, ``reentrant_3d``, ``reentrant_hex_prism``, ``rhombic_dodecahedron``, ``rotated_square_prism_edge``, ``rotated_triangular_prism_edge``, ``tet_oct_vertex_centroid``, ``triangular_prism_edge``, ``truncated_cube``, ``weaire_phelan``. .. autofunction:: cubic .. autofunction:: bcc .. autofunction:: fcc .. autofunction:: kelvin .. autofunction:: octet .. autofunction:: diamond .. autofunction:: isotruss .. autofunction:: fluorite .. autofunction:: hex_prism_edge .. autofunction:: reentrant_hex_prism .. autofunction:: rhombic_dodecahedron .. autofunction:: weaire_phelan .. autofunction:: truncated_cube .. autofunction:: column .. autofunction:: columns .. autofunction:: reentrant_3d .. autofunction:: triangular_prism_edge .. autofunction:: rotated_triangular_prism_edge .. autofunction:: rotated_square_prism_edge .. autofunction:: hex_prism_vertex_centroid .. autofunction:: hex_prism_central_axis .. autofunction:: hex_prism_diamond .. autofunction:: hex_prism_laves .. autofunction:: tet_oct_vertex_centroid .. autofunction:: oct_vertex_centroid .. autofunction:: reference_cell_size .. autofunction:: hex_prism_reference_aspect_ratio .. autofunction:: reentrant_hex_prism_reference_aspect_ratio Face (plate and wall) lattices ------------------------------ Face builders return a ``pyvcad.MappedFaceLattice`` (or a ``pyvcad.MappedStructureCollection`` for a multi-map collection) whose center surfaces are thickened into walls. .. autofunction:: face_lattice .. autodata:: FACE_LATTICE_NAMES :no-value: Names accepted by :func:`face_lattice` and :func:`face_unit_cell`: ``plate``, ``simple_cubic_plate``, ``body_centered_cubic_plate``, ``face_centered_cubic_plate``, ``cubic_octet_plate``, ``hexagonal_honeycomb``, ``reentrant_honeycomb``, ``square_honeycomb``, ``rotated_square_honeycomb``, ``triangular_honeycomb``, ``rotated_triangular_honeycomb``. Plate lattices ^^^^^^^^^^^^^^ .. autofunction:: plate_lattice .. autofunction:: simple_cubic_plate .. autofunction:: body_centered_cubic_plate .. autofunction:: face_centered_cubic_plate .. autofunction:: octet_plate .. autofunction:: cubic_octet_plate Honeycombs ^^^^^^^^^^ Wall cells extruded along W. .. autofunction:: hexagonal_honeycomb .. autofunction:: reentrant_honeycomb .. autofunction:: square_honeycomb .. autofunction:: rotated_square_honeycomb .. autofunction:: triangular_honeycomb .. autofunction:: rotated_triangular_honeycomb Face unit cells ^^^^^^^^^^^^^^^ Each builder returns a ``pyvcad.FaceUnitCell`` for :func:`face_lattice`, for example to inspect the cell or to tag faces before tiling. .. autofunction:: face_unit_cell .. autofunction:: simple_cubic_plate_cell .. autofunction:: body_centered_cubic_plate_cell .. autofunction:: face_centered_cubic_plate_cell .. autofunction:: cubic_octet_plate_cell .. autofunction:: hexagonal_honeycomb_cell .. autofunction:: reentrant_honeycomb_cell .. autofunction:: square_honeycomb_cell .. autofunction:: rotated_square_honeycomb_cell .. autofunction:: triangular_honeycomb_cell .. autofunction:: rotated_triangular_honeycomb_cell Building graph cells from seeds and tessellations -------------------------------------------------- These builders return the same edge lists as the catalog cells (origin-centred, spanning ``[-0.5, 0.5]``), so their results go straight into :func:`graph_lattice`; :meth:`PeriodicTessellation.face_cell` returns a ``pyvcad.FaceUnitCell`` for :func:`face_lattice`. See :doc:`/guides/metamaterials/custom-unit-cells` for a walkthrough. .. autofunction:: periodic_voronoi .. autofunction:: periodic_bonds .. autofunction:: tessellation .. autodata:: TESSELLATION_NAMES :no-value: Names accepted by :func:`tessellation`: ``cube``, ``hexagonal_prism``, ``reentrant_hexagonal_prism``, ``triangular_prism``, ``rotated_triangular_prism``, ``rotated_square_prism``, ``tet_oct``, ``truncated_cube``. .. autodata:: GRAPH_RULES :no-value: Rules accepted by :meth:`PeriodicTessellation.edges`: ``edges``, ``cell_vertex_centroid``, ``facet_vertex_centroid``, ``dual``, ``central_axes``. .. autoclass:: PeriodicTessellation :members: edges, face_cell .. autoclass:: Polyhedron :members: prism Lattices from meshes -------------------- .. autofunction:: mesh_lattice