RandomInclusionRVE

The RandomInclusionRVE class provides a class definition for a generation of RVEs with randomly placed inclusions. The class inherits from the InclusionRVE class and extends it in order to specify the remaining placeholder methods of the GenericModel. Methods to create the geometry, define refinement information and additional information for required boolean operations and physical groups are part of the class.

Class Definition

class gmshModel.Model.RandomInclusionRVE.RandomInclusionRVE(inclusionSets=None, size=None, inclusionType=None, inclusionAxis=None, origin=[0, 0, 0], periodicityFlags=[1, 1, 1], domainGroup='domain', inclusionGroup='inclusions', gmshConfigChanges={})[source]

Bases: InclusionRVE

Class definition for box-shaped RVEs with randomly distributed inclusions

This class provides required information for box-shaped, RVEs with randomly distributed inclusions. It inherits from the InclusionRVE class and extends its attributes and methods to handle the inclusion placement as well as the definition of required boolean operations and physical groups.

Attributes:

dimension: int

dimension of the model instance

inclusionSets: list/array

array providing the necessary information for sets of inclusions to be placed -> inclusionSets=[radius, amount] (for the individual sets of inclusions)

size: list/array

size of the box-shaped RVE model -> size=[Lx, Ly, (Lz)]

origin: list/array

origin of the box-shaped RVE model -> origin=[Ox, Oy, (Oz)]

inclusionType: string

string defining the type of inclusion -> iunclusionType= “Sphere”/”Cylinder”/”Circle”

inclusionAxis:list/array

array defining the inclusion axis (only relevant for inclusionType “Cylinder”) -> currently restricted to Cylinders parallel to one of the coordinate axes -> inclusionAxes=[Ax, Ay, Az]

relevantAxes: list/array

array defining the relevant axes for distance calculations

periodicityFlags: list/array

flags indicating the periodic axes of the box-shaped RVE model -> periodicityFlags=[0/1, 0/1, 0/1]

inclusionInfo: array

array containing relevant inclusion information (center, radius) for distance calculations

domainGroup: string

name of the group the RVE domain should belong to

inclusionGroup: string

name of the group the inclusions should belong to

gmshConfigChanges: dict

dictionary for user updates of the default Gmsh configuration

defineBooleanOperations()[source]

Overwritten method of the GenericModel class to define the required boolean operations for the model generation

Normally, the definition of basic geometric objects is not sufficient to generate the RVE geometry. To this end, boolean operations can be used to generate more complex RVEs from the basic geometric objects. The required boolean operations for the generation of an RVE with randomly distributed inclusions is defined here.

defineGeometricObjects(placementOptions={})[source]

Overwritten method of the GenericModel class to define and create the required geometric objects for the model generation

Parameters:

placementOptions: dict

dictionary for user updates of the default placement options

definePhysicalGroups()[source]

Overwritten method of the GenericModel class to define and the required physical groups for the model mesh generation

In order to be able to assign different material properties to different regions in the generated mesh, physical groups are used in Gmsh to combine different regions into one group. The additional definition of a boundary group allows to identify the boundary of the mesh without searching for elements on the boundary within the solver.

placeInclusions(placementOptions)[source]

Method to place inclusions for the RVE geometry

Within this method, the inclusions for the user-defined inclusion sets (sets of inclusion radii and amounts) are placed in a - up to now - standard random-close-packing algorithm. This allows for moderate volume fractions of inclusions with identical radii. For high volume fractions, the algorithm needs to be refined. The applied method ensures periodicity in the user-defined directions and allows to define minimum distances between two inclusions as well as the inclusion surface and the surrounding domain boundaries (to facilitate meshing).

Parameters:

placementOptions: dict

dictionary with options for the inclusion placement

saveIncInfo(file)[source]

Method to save inclusion information to delimited ascii file

Parameters:

file: string

name of the file to save the inclusion information in

updatePlacementOptions(optionsUpdate)[source]

Method to updated the inclusion placement options

Parameters:

optionsUpdate: dict

dictionary storing the updates for the currently set placement options