jax_fem.basis
module#
- jax_fem.basis.get_elements(ele_type)[source]#
Obtain element information useful for basix to handle.
Note that mesh node ordering is important. If the input mesh file is Gmsh .msh or Abaqus .inp, meshio would convert it to its own ordering. Our experience shows that meshio ordering is the same as Abaqus. For example, for a 10-node tetrahedron element, the ordering of meshio follows this instruction. The troublesome thing is that basix has a different ordering. The consequence is that we need to define the re_order variable to make sure the ordering is correct.
- Parameters:
ele_type (str) –
ele_type
- Returns:
element_family (BasixObject) – ElementFamily
basix_ele (BasixObject) – For element: CellType
basix_face_ele (BasixObject) – For element face: CellType
gauss_order (int) –
gauss_order
degree (int) – Element degree, used in basix
re_order (list) – Specifieds node re-ordering transformation. For example, [0, 1, 3, 2, 4, 5, 7, 6] for HEX8 element.
- jax_fem.basis.get_shape_vals_and_grads(ele_type, gauss_order=None)[source]#
Use basix to get shape function values and gradients for elements.
- Parameters:
ele_type (str) –
ele_type
gauss_order (int) –
gauss_order
- Returns:
shape_values (NumpyArray) – Shape is (num_quads, num_nodes), e.g, (8, 8) for HEX8 element.
shape_grads_ref (NumpyArray) – Shape is (num_quads, num_nodes, dim), e.g, (8, 8, 3) for HEX8 element.
weights (NumpyArray) – Shape is (num_quads,), e.g, (8,) for HEX8 element.
- jax_fem.basis.get_face_shape_vals_and_grads(ele_type, gauss_order=None)[source]#
Use basix to get shape function values and gradients for element faces.
- Parameters:
ele_type (str) –
ele_type
gauss_order (int) –
gauss_order
- Returns:
face_shape_vals (NumpyArray) – Shape is (num_faces, num_face_quads, num_nodes), e.g, (6, 4, 8) for HEX8 element.
face_shape_grads_ref (NumpyArray) – Shape is(num_faces, num_face_quads, num_nodes, dim), e.g, (6, 4, 3) for HEX8 element.
face_weights (NumpyArray) – Shape is (num_faces, num_face_quads), e.g, (6, 4) for HEX8 element.
face_normals (NumpyArray) – Shape is (num_faces, dim), e.g, (6, 3) for HEX8 element.
face_inds (NumpyArray) – Shape is (num_faces, num_face_vertices), e.g, (6, 4) for HEX8 element.