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:
InclusionRVEClass 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