classDiagram
class vpscParameters{
fromfile(fname)
tofile(fname)
set.doNormalizePhaseFrac(flag)
}
class vpscParametersDefaults{
nElement : int = 1
nPhase : int = 1
phaseFrac : int = 1
gShapeControl : int = 0
fragmentation : int = 0
critAspectRatio : int = 25
ellipsoidAspect : intArray = [1 1 1]
ellipsoidAxesAngles : intArray = [0 0 0]
fnameTEX : Cell[Char] = 'phase1.tex'
fnameSX : Cell[Char] = 'phase1.sx'
fnameMORPH : Cell[Char] = 'phase1.morph'
errStress : double = 0.001
errStrRateD : double = 0.001
errModuli : double = 0.001
errSecondOrder : double = 0.001
itMaxTot : int = 100
itMaxExternal : int = 25
itMaxInternalSO : int = 25
irsvar : int = 0
jrsini : int = 2
jrsfin : int = 10
jrstep : int = 2
iBCinv : int = 1
iRecover : int = 0
iSave : int = 0
iCubeComp : int = 0
nWrite : int = 0
interactionType : int = 3
iUpdateOri : int = 1
iUpdateMorph : int = 1
iUpdateHardening : int = 1
nNeighbor : int = 0
iFluctuation : int = 0
nProcess : int = 1
processType : int = 0
processDetail : Cell[Char] = 'process1.def'
pcysSection : double = [1 2]
lankfordInc : double = 10
set.phaseFrac(phaseFrac) : double
}
class vpscSingleCrystalDefaults{
matName : char = 'placeholder'
CS : crystalSymmetry = 'triclinic'
C : Tensor[rank-4]
alpha : double = [0 0 0 0 0 0]
nModesTotal : int = 0
nModesActive : int = 0
activeModes : int = [0]
Modes : vpscPlasticityMode
constitutive : int = 0
iRateSens : int = 1
grainSize : int = 25
nRSX : int = 20
/crystalSym(CS)
/crystalAxes(CS)
/crystalAngles(CS)
}
class vpscSingleCrystal{
fromfile(fname)
tofile(fname)
}
class vpscPlasticityMode{
modename : char
systems : slipSystem
iOpSysX : logical
twinType : int
twinShear : double
nRSX : double
voceParams : [1x4]double
hpFactor : double
latentHard : [1xParent.nModesActive]double
iSecondTwin : double
twThresh1 : double
twThresh2 : double
modeX : int
/nsmx(systems) : int
}
class slipSystem{
+burgersVector : Miller
+normalVector : Miller
+CS : crystalSymmetry
}
vpscParameters --|> vpscParametersDefaults : Inherits
vpscSingleCrystal --|> vpscSingleCrystalDefaults : Inherits
vpscSingleCrystalDefaults --> "nModes" vpscPlasticityMode : Contains
vpscPlasticityMode --> "nSystems" slipSystem : Contains
vpscRun <-- "1" vpscParameters : Input
vpscRun <-- "nPhases" vpscSingleCrystal : Input
vpscRun <-- "1" vpscTexture : Input
vpscRun <-- "nDeformationProcess" vpscDeformation : Input
vpscRun <-- "1" vpscMorphology : Optional
vpscRun --> "1" vpscStressStrain : Output
vpscRun --> "nWrite" vpscTexture : Output
vpscRun --> "nWrite" vpscMorphology : Output
vpscJob <-- "1..many" vpscRun : Sequence
vpscSingleCrystal <-- "1" sx_file
vpscSingleCrystal --> "1" sx_file
vpscParameters <-- "1" vpsc7_in_file
vpscParameters --> "1" vpsc7_in_file
Builds classes vpscParameters and vpscParametersDefaults to generate objects that represent vpsc7.in. Implements methods to create a vpscParameters object from a stored vpsc7.in text file and to write a vpsc7.in text file to disk from a vpscParameters object.
Builds classes vpscSingleCrystaland vpscSingleCrystalDefaults generate objects that represent phase.sx. Implements methods to create a vpscSingleCrystal object from a stored phase.sx text file and to write a phase.sx text file to disk from a vpscSingleCrystal object.
Builds class vpscPlasticityMode to represent families of slip/twinning systems and the necessary CRSS/hardening parameters for VPSC. vpscPlasticityMode will eventually contain code to generate symmetrically unique families for a crystal symmetry, but for now is mostly limited to reading from file.
Sets up general VPSC-MTEX API class hierarchy:
Builds classes
vpscParameters
andvpscParametersDefaults
to generate objects that represent vpsc7.in. Implements methods to create avpscParameters
object from a stored vpsc7.in text file and to write a vpsc7.in text file to disk from avpscParameters
object.Builds classes
vpscSingleCrystal
andvpscSingleCrystalDefaults
generate objects that represent phase.sx. Implements methods to create avpscSingleCrystal
object from a stored phase.sx text file and to write a phase.sx text file to disk from avpscSingleCrystal
object.Builds class
vpscPlasticityMode
to represent families of slip/twinning systems and the necessary CRSS/hardening parameters for VPSC.vpscPlasticityMode
will eventually contain code to generate symmetrically unique families for a crystal symmetry, but for now is mostly limited to reading from file.