pycbg.preprocessing.Particles

class pycbg.preprocessing.Particles(mesh, npart_perdim_percell=1, directory='', check_duplicates=True)

Create and write to a file particles from a Mesh object.

Parameters
  • mesh (Mesh object) – Mesh in which the particles will be generated.

  • npart_perdim_percell (int, optional) – Number of particles for each dimensions in one cell. All cells will contain npart_perdim_percell**3 equally spaced particles. Note that particles are equally spaced within a cell, not between cells. Default is 1 .

  • directory (str, optional) – Directory in which the particles file will be saved. If the directory doesn’t already exist, it will be created. It is set by default to the current working directory.

  • check_duplicates (bool, optional) – See CB-Geo documentation for informations on this parameter. Default is True.

particles

Positions of all particles written into the particles file. The id of a particle is the index of its line in this array. Noting npart the number of particles, the shape of particles is (npart,3).

Type

numpy array

filename

Path to the particles file from the current working directory.

Type

str

npart_perdim_percell

Number of particles for each dimensions in one cell.

Type

int

directory

Directory in which the particles file will be saved.

Type

str

check_duplicates

See CB-Geo documentation.

Type

bool

Notes

  • The particles file is written upon creating the object.

  • One can manually generate the particles by directly setting the particles attribute. It is then necessary to rewrite the particles file using the write_file method.

Examples

Generating 8 particles in a one cell mesh :

>>> mesh = Mesh((1.,1.,1.), (1,1,1))
>>> particles = Particles(mesh, 2)
>>> particles.particles
array([[0.33333333, 0.33333333, 0.33333333],
       [0.33333333, 0.33333333, 0.66666667],
       [0.33333333, 0.66666667, 0.33333333],
       [0.33333333, 0.66666667, 0.66666667],
       [0.66666667, 0.33333333, 0.33333333],
       [0.66666667, 0.33333333, 0.66666667],
       [0.66666667, 0.66666667, 0.33333333],
       [0.66666667, 0.66666667, 0.66666667]])

Manually generating four particles :

>>> mesh = Mesh((1.,1.,1.), (1,1,1))
>>> particles = Particles(mesh)
>>> particles.particles = np.array([[.02, .02, .02],
...                                 [.05, .02, .02],
...                                 [.02, .05, .02],
...                                 [.02, .02, .05]])
>>> particles.write_file()

Note that a mesh has to be specified even if it isn’t used.

__init__(mesh, npart_perdim_percell=1, directory='', check_duplicates=True)

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__

Initialize self.

create_particles

Create the particles using the given mesh.

write_file

Write the particles file formatted for CB-Geo.

create_particles(mesh, npart_perdim_percell=1)

Create the particles using the given mesh.

Parameters
  • mesh (Mesh object) – Mesh in which the particles will be generated.

  • npart_perdim_percell (int, optional) – Number of particles for each dimensions in one cell. All cells will contain npart_perdim_percell**3 equally spaced particles. Note that particles are equally spaced within a cell, not between cells. Default is 1 .

write_file()

Write the particles file formatted for CB-Geo.