Mesh generator
Bcube._compute_space_dim — Method
_compute_space_dim(topodim, lx, ly, lz, tol, verbose::Bool)Deduce the number of space dimensions from the mesh boundaries : if one (or more) dimension of the bounding box is way lower than the other dimensions, the number of space dimension is decreased.
Currently, having for instance (x,z) is not supported. Only (x), or (x,y), or (x,y,z).
Bcube._cube_pile_mesh — Method
_cube_pile_mesh()Only for testing purpose.
level 1 7–––8 | | | | 4–––5–––6 | | | | | | 1–––2–––3
level 2 15––16 | | | | 12––13––-14 | | | | | | 9––-10––-11
level 3
19-----20
| |
| |
17-----18Bcube._duplicate_mesh — Method
_duplicate_mesh(mesh::AbstractMesh)Make an exact copy of the input mesh.
Bcube._two_cubes_mesh — Method
_two_cubes_mesh(; zmin = 0, zmax = 1)Only for testing purpose.
z=zmin 4–––5–––6 | | | | | | 1–––2–––3
z=zmax 10––11––-12 | | | | | | 7–––8–––9
Bcube.basic_mesh — Method
basic_mesh()Generate a toy mesh of two quads and one triangle.
v1 v2 v3 v4 +–-e1–>+–-e5–>+–-e8–>+ ^ | | c3 / e4 c1 e2 c2 e6 e9 | | | / +<–e3–-+<–e7–-+/ v5 v6 v7
Bcube.circle_mesh — Method
circle_mesh(n; r = 1, order = 1)Mesh a circle (in 2D) with n nodes on the circumference.
Bcube.hexa_mesh — Method
hexa_mesh(
nx,
ny,
nz;
xmin = 0.0,
xmax = 1.0,
ymin = 0.0,
ymax = 1.0,
zmin = 0.0,
zmax = 1.0,
order = 1,
bnd_names = ("xmin", "xmax", "ymin", "ymax", "zmin", "zmax"),
)Mesh a hexahedral domain with hexahedral mesh elements.
Bcube.line_mesh — Method
line_mesh(n; xmin = 0., xmax = 1., order = 1, names = ("xmin", "xmax"))Generate a mesh of a line of n vertices.
Example
julia> mesh = line_mesh(5)Bcube.ncube_mesh — Method
ncube_mesh(n::Vector{Int}; order = 1)Generate either a line mesh, a rectangle mesh, a cubic mesh... depending on the dimension of n.
Argument
nnumber of vertices in each spatial directions
Example
mesh_of_a_line = ncube_mesh([10])
mesh_of_a_square = ncube_mesh([4, 5])
mesh_of_a_hexa = ncube_mesh([4, 5, 6])Bcube.one_cell_mesh — Method
one_cell_mesh(type::Symbol, order = 1)Generate a mesh of one cell. type can be :line, :quad, :tri, :hexa, :penta, :pyra.
The argument order refers to the geometry order. It has the same effect as the -order parameter in gmsh.
Bcube.rectangle_mesh — Method
rectangle_mesh(
nx,
ny;
type = :quad,
xmin = 0.0,
xmax = 1.0,
ymin = 0.0,
ymax = 1.0,
order = 1,
bnd_names = ("xmin", "xmax", "ymin", "ymax"),
)Generate a 2D mesh of a rectangle with nx and ny vertices in the x and y directions respectively.
Example
julia> mesh = rectangle_mesh(5, 4)Bcube.scale — Method
scale(mesh, factor)Scale the input mesh nodes coordinates by a given factor and return the resulted mesh. The factor can be a number or a vector.
Usefull for debugging.
Bcube.transform — Method
transform(mesh::AbstractMesh, fun)Transform the input mesh nodes coordinates by applying the given fun function and return the resulted mesh.
Usefull for debugging.
Bcube.translate — Method
translate(mesh::AbstractMesh, t::AbstractVector)Translate the input mesh with vector t.
Usefull for debugging.