FFTMechanics

deGeus variational mechanics solve. Updates the coupled buffer holding the deformation gradient tensor.

Solve a heterogeneous mechanics problem using the approach by deGeus et al. de Geus et al. (2017).

Example Input File Syntax

[TensorComputes]
  [Solve]
    [root]
      [applied_strain]
        type = MacroscopicShearTensor
        buffer = applied_strain
        F = F
      []
      [hyper_elasticity]
        type = HyperElasticIsotropic
        buffer = stress
        F = Fnew
        K = K
        mu = mu
      []
      [mech]
        type = FFTMechanics
        buffer = Fnew
        F = F
        K = K
        mu = mu
        l_tol = 1e-2
        nl_rel_tol = 2e-2
        nl_abs_tol = 2e-2
        constitutive_model = hyper_elasticity
        stress = stress
        tangent_operator = dstressdstrain
        applied_macroscopic_strain = applied_strain
      []
    []
  []
[]
!listing-end

Notes: - Supplies and updates the deformation gradient buffer Fnew. - Requires a constitutive-model compute that provides stress and its tangent. - An optional macroscopic strain buffer lets you impose a prescribed average deformation.

See also: MacroscopicShearTensor, HyperElasticIsotropic, ComputeDisplacements.

Input Parameters

  • KBulk modulus

    C++ Type:std::string

    Controllable:No

    Description:Bulk modulus

  • bufferThe buffer this compute is writing to

    C++ Type:std::string

    Controllable:No

    Description:The buffer this compute is writing to

  • constitutive_modelTensor compute for the constitutive model (computes stress from displacement gradeint tensor)

    C++ Type:std::string

    Controllable:No

    Description:Tensor compute for the constitutive model (computes stress from displacement gradeint tensor)

Required Parameters

  • FFDeformation gradient tensor.

    Default:F

    C++ Type:std::string

    Controllable:No

    Description:Deformation gradient tensor.

  • applied_macroscopic_strainApplied macroscopic strain

    C++ Type:std::string

    Controllable:No

    Description:Applied macroscopic strain

  • l_max_itsMaximum number of congugate gradient solve iterations

    C++ Type:unsigned int

    Controllable:No

    Description:Maximum number of congugate gradient solve iterations

  • l_tol0.01Linear congugate gradient solve tolerance

    Default:0.01

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Linear congugate gradient solve tolerance

  • muShear modulus

    C++ Type:std::string

    Controllable:No

    Description:Shear modulus

  • nl_abs_tol1e-08Nonlinear solve relative tolerance

    Default:1e-08

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Nonlinear solve relative tolerance

  • nl_max_its100Maximum number of nonlinear solve iterations

    Default:100

    C++ Type:unsigned int

    Controllable:No

    Description:Maximum number of nonlinear solve iterations

  • nl_rel_tol1e-05Nonlinear solve absolute tolerance

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Nonlinear solve absolute tolerance

  • stressstressComputed stress

    Default:stress

    C++ Type:std::string

    Controllable:No

    Description:Computed stress

  • tangent_operatordstressdstrainTangent operator

    Default:dstressdstrain

    C++ Type:std::string

    Controllable:No

    Description:Tangent operator

  • verboseFalsePrint non-linear residuals.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Print non-linear residuals.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

Input Files

References

  1. T.W.J. de Geus, J. Vondřejc, J. Zeman, R.H.J. Peerlings, and M.G.D. Geers. Finite strain fft-based non-linear solvers made simple. Computer Methods in Applied Mechanics and Engineering, 318:412–430, 2017. URL: https://www.sciencedirect.com/science/article/pii/S0045782516318709, doi:https://doi.org/10.1016/j.cma.2016.12.032.[BibTeX]