OpenPisco.PhysicalSolvers.AMInherentStrainSolver module#

class OpenPisco.PhysicalSolvers.AMInherentStrainSolver.AMInherentStrainSolver[source]#

Bases: AMProcessBase

Class to simulate a AM process with the inherent strain method

Parameters

inherentStrainsCoefficients (3 np.ndarray) – _description_

ComputeStrain(numberingP0, mecaInherentPhysics, uFields, XliField, on, computationMesh)[source]#
ComputeStress(numberingP0, mecaInherentPhysics, uFields, XliField, on, computationMesh)[source]#
GetAuxiliaryField(name, on, index)[source]#

Retrieve an auxiliary field on the computational support specified by the keyword “on”

Parameters
  • name (name of the field to be retrieved) – _description_

  • on (FN, optional) – computational support of the field, by default FN.Nodes

  • index (Optional[int], optional) – index of the field to be retrieved (if needed), by default None

Raises

NotImplementedError – To be redefined in derived class if needed

GetAuxiliaryScalar(name)[source]#

Retrieve an auxiliary scalar quantity

Parameters

name (str) – name of the scalar to be retrieved

Raises

NotImplementedError – To be redefined in the derived class

GetMaterialPropertyCoefficient(name)[source]#
GetNodalSolution(i=0)[source]#

Retrieve the PDE solution at mesh nodes

Parameters

i (int, optional) – solution index, by default 0

Raises

NotImplementedError – to be redefined in derived class

GetNodalSolutionLayer(layer=0)[source]#
SetIStrains(vals)[source]#
SetUseSupport(vals)[source]#
Solve(_levelSet)[source]#
SolveByLevelSet(levelSet)[source]#
OpenPisco.PhysicalSolvers.AMInherentStrainSolver.CheckIntegrity(GUI=False)[source]#
OpenPisco.PhysicalSolvers.AMInherentStrainSolver.CheckIntegrityStructured(GUI=False)[source]#
OpenPisco.PhysicalSolvers.AMInherentStrainSolver.CheckIntegrityUnstructured(GUI=False)[source]#
OpenPisco.PhysicalSolvers.AMInherentStrainSolver.CreateStructuredAMProcess(ops)[source]#
Parameters
  • ops (dict) –

  • 'APProcess'. (Parameters to setup a) –

Notes

‘ops’ can be populated via a string of the form:

<AMProcess id=”1” type=”IStrains” IStrains=”-0.01 -0.01 -0.01” useSupport=”False” filename=”testAMProcess” > for the moment only constant properties are available 0.*<Material NotImplemented(ef=”*everyElement|EFExpression”) young=”1” poisson=”0.3” density=”1” /> by default we block U0, 0 1 2 0.*<Block on=”U0 Y0 Z0 U1 Y1 Z1” block=”0 1 2” /> </AMProcess>

by default we block U0, 0 1 2 0.*<Block on=”U0 Y0 Z0 U1 Y1 Z1” block=”0 1 2” /> </AMProcess>

class OpenPisco.PhysicalSolvers.AMInherentStrainSolver.MecaInherentStrain[source]#

Bases: MechPhysics

DeviatoricStress(stress, bulkAlpha)[source]#

Return a deviatoric stress FE field

Parameters

stress (FE field) –

Returns

the deviatoric stress tensor

Return type

FE field

GetStressVoigt(utGlobal, HookeLocalOperator=None, deltaTemperature=None, XLi=None, factor=None)[source]#

Function to compute the stress using the Inherent Strain, the XLi is the field where the inherent Strain is Active

GetVonMisesData(stress: Union[_SupportsArray[dtype[Any]], _NestedSequence[_SupportsArray[dtype[Any]]], bool, int, float, complex, str, bytes, _NestedSequence[Union[bool, int, float, complex, str, bytes]]])[source]#

Computes the VonMises for stress tensor S

Parameters

s (ArrayLike) – a 3x3 symmetric tensor

Returns

the von Mises for the stress tensor

Return type

scalar

Strain(u)[source]#
Stress(u, XLi, factor=None)[source]#
VonMises(stress, bulkAlpha)[source]#

Return a von Mises FE field

Parameters

stress (FE field) –

Returns

the von Mises for the stress tensor

Return type

FE field