HelicalChain

The HelicalChain class provides a class definition for a generation of unit cells with inclusions distributed in a helical chain. The class inherits from the InclusionRVE class and extends it in order to specify the remaining placeholder methods of the GenericModel.

Currently, the class is restricted to circular and spherical inclusions which are arranged in a helical chain that is parallel to one of the coordinate axes.

Class Definition

class gmshModel.Model.HelicalChain.HelicalChain(chainRadius=None, theta=None, inclusionRadius=None, numberCells=[1, 1, 1], size=None, inclusionType=None, chainDirection=[0, 0, 1], origin=[0, 0, 0], periodicityFlags=[1, 1, 1], domainGroup='domain', inclusionGroup='inclusions', gmshConfigChanges={})[source]

Bases: InclusionRVE

Class definition for helical chains (circular and spherical inclusions only)

This class provides required information for meshes of unit cells with helical chains. It inherits from the InclusionRVE class and extends its attributes and methods to handle the geometry generation, boolean operations and the definition of physical groups.

The HelicalChain class currently supports spherical and circular inclusions which are arranged in a chain that is parallel to one of the coordinate axes. The slope of the chain is determined from the passed size of the chain, the angle theta between neighboring inclusions (pi for circular inclusions, since it is the only reasonable choice) and the chain axis. One unit cell is supposed to contain one full helix.

Attributes:

dimension: int

dimension of the model instance

chainRadius: float

radius of the helical chain

inclusionRadius: float

radius of the helical chain inclusions

theta: float

angle (radian) between two inclusions of the helical chain

chainDirection: list/array

array defining the chain axis direction -> currently restricted to chains parallel to one of the coordinate axes

numberCells: list/array

array providing the number of cells in the individual axis directions -> numberCells=[nx, ny, (nz)]

size: list/array

size of the helical chains surrounding unit cell (box-shaped cell) -> if the angle alpha is passed, only the sizes perpendicular to the chain axis direction have to be passed -> size=[Lx, Ly, (Lz)]

origin: list/array

origin of the unit cell -> origin=[Ox, Oy, (Oz)]

inclusionType: string

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

relevantAxes: list/array

array defining the relevant axes for distance calculations

periodicityFlags: list/array

flags indicating the periodic axes of the unit cell -> 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 unit cells domain should belong to

inclusionGroup: string

name of the group the unit cells 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

defineGeometricObjects()[source]

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

definePhysicalGroups(**args)[source]

Overwritten method of the GenericModel class to define 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()[source]

Method to place the inclusions within a unit cell of a helical chain