pyLBM.
Domain
(dico=None, geometry=None, stencil=None, space_step=None, verif=True)¶Create a domain that defines the fluid part and the solid part and computes the distances between these two states.
Parameters: | dico : a dictionary that contains the following key:value
|
---|
Warning
the sizes of the box must be a multiple of the space step dx
Notes
The dictionary that defines the box should contains the following key:value
See Geometry
for more details.
If the geometry and/or the stencil were previously generated, it can be used directly as following
>>> Domain(dico, geometry = geom, stencil = sten)
where geom is an object of the class
Geometry
and sten an object of the class
Stencil
In that case, dico does not need to contain the informations for generate
the geometry and/or the stencil
In 1D, distance[q, i] is the distance between the point x[i] and the border in the direction of the qth velocity.
In 2D, distance[q, j, i] is the distance between the point (x[i], y[j]) and the border in the direction of qth velocity
In 3D, distance[q, k, j, i] is the distance between the point (x[i], y[j], z[k]) and the border in the direction of qth velocity
In 1D, flag[q, i] is the flag of the border reached by the point x[i] in the direction of the qth velocity
In 2D, flag[q, j, i] is the flag of the border reached by the point (x[i], y[j]) in the direction of qth velocity
In 2D, flag[q, k, j, i] is the flag of the border reached by the point (x[i], y[j], z[k]) in the direction of qth velocity
Examples
see demo/examples/domain/
Attributes
dim | (int) number of spatial dimensions (example: 1, 2, or 3) |
globalbounds | (numpy array) the bounds of the box in each spatial direction |
bounds | (numpy array) the local bounds of the process in each spatial direction |
dx | (double) space step (example: 0.1, 1.e-3) |
type | (string) type of data (example: ‘float64’) |
stencil : | the stencil of the velocities (object of the class Stencil ) |
global_size | (list of int) number of points in each direction |
extent | (list of int) number of points to add on each side (max velocities) |
coords | (numpy array) coordinates of the domain |
x | (numpy array) first coordinate of the domain |
y | (numpy array) second coordinate of the domain (None if dim<2) |
z | (numpy array) third coordinate of the domain (None if dim<3) |
in_or_out | (numpy array) defines the fluid and the solid part (fluid: value=valin, solid: value=valout) |
distance | (numpy array) defines the distances to the borders. The distance is scaled by dx and is not equal to valin only for the points that reach the border with the specified velocity. |
flag | (numpy array) NumPy array that defines the flag of the border reached with the specified velocity |
Methods
visualize : | Visualize the domain by creating a plot |