Cellelements
CellElements are a mixture of classical finite elements and cells of the MPM: They work (and deform) like Elements, but the quadrature points are material points (MaterialPointBase). To this end, they provide an interface to get the number and locations of the material points, and the material point type, following a specific quadrature rule and order.
- class edelweissmeshfree.cellelements.base.cellelement.CellElementBase(cellElType, cellElNumber, nodes, quadratureType, quadratureOrder)[source]
MPM cells in EdelweissMPM should be derived from this base class in order to follow the general interface.
EdelweissMPM expects the layout of the internal and external load vectors, P, PExt, (and the stiffness) to be of the form
[ node 1 - dofs field 1, node 1 - dofs field 2, node 1 - ... , node 1 - dofs field n, node 2 - dofs field 1, ... , node N - dofs field n].
- Parameters:
cellType – A string identifying the requested element formulation.
cellNumber – A unique integer label used for all kinds of purposes.
nodes (list[Node]) – The list of Nodes assigned to this cell.
cellElType (str)
cellElNumber (int)
quadratureType (str)
quadratureOrder (int)
- Attributes:
assignedMaterialPointsThe shape of the element in Ensight Gold notation.
cellNumberThe unique number of this cell
dofIndicesPermutationThe permutation pattern for the residual vector and the stiffness matrix to aggregate all entries in order to resemble the defined fields nodewise.
ensightTypeThe shape of the element in Ensight Gold notation.
fieldsThe list of fields per grid nodes.
nDofThe total number of degrees of freedom this cell has
nMaterialPointsThe unique number of this cell
nNodesThe list of nodes this cell holds
Methods
Accept the last state of the CellElement.
assignMaterialPoints(materialPoints)Assign a list of material points which are currently residing within the cell.
computeBodyLoad(loadType, load, P, K, ...)Compute bulk loads (body loads) for given time based for all assigned MaterialPoints.
computeDistributedLoad(loadType, surfaceID, ...)Compute distributed (surface) a for given time based for a specific assigned material point.
computeMaterialPointKernels(dU, P, K, ...)Evaluate the kernel residual and stiffness for given time based for all assigned MaterialPoints.
getBoundingBox()Get the bounding box min.
getCoordinatesAtCenter()Compute the underlying MarmotElement centroid coordinates.
getInterpolationVector(coordinate)Get the interpolation vector for a given global coordinate.
Get the list of the requested material point coordinates.
Get the type of the requested material point.
Get the list of the requested material point volumes.
getVIJContributionSize()Return the number of entries this entity contributes to the VIJ (COO) system matrix.
initializeVIJContribution(idcs, I_, J_, offset)Fill the global
IandJindex arrays for this constraint's VIJ contribution.interpolateSolutionContributionToMaterialPoints(dU)Interpolate field solutions to the assigned MaterialPoints.
isCoordinateInCell(coordinate)Check if a given coordinate is located within this cell.
- abstractmethod acceptLastState()[source]
Accept the last state of the CellElement.
This method is called after a time step has been accepted.
- abstractmethod getRequestedMaterialPointCoordinates()[source]
Get the list of the requested material point coordinates.
- Returns:
The material point coordinates.
- Return type:
np.ndarray
- abstractmethod getRequestedMaterialPointType()[source]
Get the type of the requested material point.
- Returns:
The material point type.
- Return type:
type
- abstractmethod getRequestedMaterialPointVolumes()[source]
Get the list of the requested material point volumes.
- Returns:
The material point volumes.
- Return type:
np.ndarray
- abstract property nMaterialPoints: int
The unique number of this cell
MarmotCellElement class
- class edelweissmeshfree.cellelements.marmotcellelement.marmotcellelement.MarmotCellElementWrapper
This cell as a wrapper for MarmotCellElements. This class is not intended to be used directly, but to be subclassed by the actual cell element classes, such as LagrangianMarkerCellElement.
For the documentation of MarmotCellElements, please refer to Marmot.
- Parameters:
cellElementType – The Marmot element which should be represented, e.g., CPE4.
cellElementNumber – The (unique) label of this CellElement.
nodes – The list of nodes for this CellElement.
quadratureType – The type of quadrature to be used.
quadratureOrder – The order of the quadrature to be used.
- Attributes:
- assignedMaterialPoints
- cellNumber
- cellType
- dofIndicesPermutation
- elNumber
- ensightType
- fields
- nDof
- nMaterialPoints
- nNodes
- nodes
Methods
computeMaterialPointKernels(dUc, Pc, Kc, ...)Evaluate residual and stiffness for given time, field, and field increment.
Get the coordinates of the material points in the cell.
Get the type of the material points in the cell.
Get the volumes of the material points in the cell.
getVIJContributionSize()Return the number of entries this entity contributes to the VIJ (COO) system matrix.
initializeVIJContribution(idcs, I_, J_, offset)Initialize the I and J arrays for the VIJ (COO) system matrix assembly.
acceptLastState
assignMaterialPoints
computeBodyLoad
computeConsistentInertia
computeDistributedLoad
computeLumpedInertia
getBoundingBox
getInterpolationVector
interpolateFieldsToMaterialPoints
isCoordinateInCell
- getRequestedMaterialPointCoordinates()
Get the coordinates of the material points in the cell.
- getRequestedMaterialPointType()
Get the type of the material points in the cell.
- getRequestedMaterialPointVolumes()
Get the volumes of the material points in the cell.
LagrangianMarmotCellElement class
- class edelweissmeshfree.cellelements.marmotcellelement.lagrangianmarmotcellelement.LagrangianMarmotCellElementWrapper
This class is a wrapper for Lagrangian MarmotCellElements. It is used to create a MarmotCellElement from a list of nodes and to store the nodes of the cell element. It also provides a method to update the material points of the cell element.
- Attributes:
- assignedMaterialPoints
- cellNumber
- cellType
- dofIndicesPermutation
- elNumber
- ensightType
- fields
- nDof
- nMaterialPoints
- nNodes
- nodes
Methods
computeMaterialPointKernels(dUc, Pc, Kc, ...)Evaluate residual and stiffness for given time, field, and field increment.
getRequestedMaterialPointCoordinates()Get the coordinates of the material points in the cell.
getRequestedMaterialPointType()Get the type of the material points in the cell.
getRequestedMaterialPointVolumes()Get the volumes of the material points in the cell.
getVIJContributionSize()Return the number of entries this entity contributes to the VIJ (COO) system matrix.
initializeVIJContribution(idcs, I_, J_, offset)Initialize the I and J arrays for the VIJ (COO) system matrix assembly.
acceptLastState
assignMaterialPoints
computeBodyLoad
computeConsistentInertia
computeDistributedLoad
computeLumpedInertia
getBoundingBox
getInterpolationVector
interpolateFieldsToMaterialPoints
isCoordinateInCell