pycbg.preprocessing.Materials

class pycbg.preprocessing.Materials

Create materials for particle sets.

materials

Each element is a dictionnary containing a material’s parameters. The index of a material is his id.

Type

list of dict

pset_ids

The element i of this list is the id (or list of ids) of the particle set made of the material defined in materials[i].

Type

list of (ints or list of ints)

Notes

Due to (probably) a bug in CB-Geo MPM, materials should be created in the same order than the corresponding particle sets (so particle sets and materials have the same id).

Examples

Creating two materials for two particle sets :

>>> mesh = Mesh((1.,1.,1.), (1,1,1))
>>> particles = Particles(mesh, 2)
>>> entity_sets = EntitySets(mesh, particles)
>>> lower_particles = entity_sets.create_set(lambda x,y,z: x<.5, typ="particle")
>>> upper_particles = entity_sets.create_set(lambda x,y,z: x>=.5, typ="particle")
>>> materials = Materials()
>>> materials.create_MohrCoulomb3D(pset_id=lower_particles, density=750,
...                                                         youngs_modulus=5.26e7,
...                                                         poisson_ratio=.3,
...                                                         friction=36.,
...                                                         dilation=0.,
...                                                         cohesion=1.,
...                                                         tension_cutoff=1.,
...                                                         softening=False)
>>> materials.create_Newtonian3D(pset_id=upper_particles, density=1.225,
...                                                       bulk_modulus=1.42e5,
...                                                       dynamic_viscosity=1.81e3)
>>> materials.pset_ids
[0, 1]
__init__()

Methods

__init__

create_LinearElastic3D

Create LinearElastic3D material.

create_MohrCoulomb3D

Create MohrCoulomb3D material, as specified by CB-Geo MPM documentation.

create_Newtonian3D

Create Newtonian3D material, as specified by CB-Geo MPM documentation.

create_LinearElastic3D(pset_id=0, density=1000.0, youngs_modulus=50000000.0, poisson_ratio=0.3)

Create LinearElastic3D material.

Parameters
  • pset_id (int or list of ints) – Particle set id that will be made of this material

  • density (float) – Density of the material (\(kg/m^3\)). Default is 1000 \(kg/m^3\).

  • young_modulus (float) – Young’s modulus of the material (\(Pa\)). Default is 50 \(MPa\).

  • poisson_ratio (float) – Poisson’s ratio of the material. Default is 0.3 .

create_MohrCoulomb3D(pset_id=0, density=1000.0, youngs_modulus=50000000.0, poisson_ratio=0.3, friction=36.0, dilation=0.0, cohesion=0.0, tension_cutoff=0.0, softening=False, peak_pdstrain=0.0, residual_pdstrain=0.0, residual_friction=13.0, residual_dilation=0.0, residual_cohesion=0.0)

Create MohrCoulomb3D material, as specified by CB-Geo MPM documentation.

Parameters
  • pset_id (int or list of ints) – Particle set id that will be made of this material

  • density (float) – Density of the material (\(kg/m^3\)). Default is 1000 \(kg/m^3\).

  • young_modulus (float) – Young’s modulus of the material (\(Pa\)). Default is 50 \(MPa\).

  • poisson_ratio (float) – Poisson’s ratio of the material. Default is 0.3 .

  • friction (float) – Friction angle of the material (\(^\circ\)). Default is 36 \(^\circ\).

  • dilation (float) – Dilation angle of the material (\(^\circ\)). Default is 0 \(^\circ\).

  • cohesion (float) – Cohesion in the material (\(Pa\)). Default is 0 \(Pa\).

  • tension_cutoff (float) – Tension strength of the material (\(Pa\)). Default is 0 \(Pa\).

  • softening (bool, optional) – Enable softening option. If True, one has to set peak_pdstrain, residual_pdstrain, residual_friction, residual_dilation and residual_cohesion. Default is False.

  • peak_pdstrain (float, optional) – Start point of strain softening. Default is 0.

  • residual_pdstrain (float, optional) – End point of strain softening. Default is 0.

  • residual_friction (float, optional) – Residual friction angle (\(^\circ\)). Default is 13 \(^\circ\).

  • residual_dilation (float, optional) – Residual dilation angle (\(^\circ\)). Default is 0 \(^\circ\).

  • residual_cohesion (float, optional) – Residual cohesion (\(Pa\)). Default is 0 \(Pa\).

create_Newtonian3D(pset_id=0, density=1.225, bulk_modulus=142000.0, dynamic_viscosity=1.81e-05)

Create Newtonian3D material, as specified by CB-Geo MPM documentation.

Parameters
  • pset_id (int or list of ints) – Particle set ids that will be made of this material

  • density (float, optional) – Density of the material (\(kg/m^3\)). Default is 1.225 \(kg/m^3\).

  • bulk_modulus (float, optional) – Bulk modulus of the material (\(Pa\)). Default is 142 \(kPa\).

  • dynamic_viscosity (float, otpional) – Dynamic viscosity of the material (\(Pa.s\)). Default is 18.1 \(\mu Pa.s\)

Notes

Defaults correspond to air’s properties.