MOOSE Workshop MOOSE-PF/MARMOT Training Mechanics Part Nashville, February 14th Daniel Schwen

Similar documents
Non-Linear Finite Element Methods in Solid Mechanics Attilio Frangi, Politecnico di Milano, February 17, 2017, Lesson 5

Sensitivity and Reliability Analysis of Nonlinear Frame Structures

DEVELOPMENT OF A CONTINUUM PLASTICITY MODEL FOR THE COMMERCIAL FINITE ELEMENT CODE ABAQUS

Final Project: Indentation Simulation Mohak Patel ENGN-2340 Fall 13

Fundamentals of Linear Elasticity

Project. First Saved Monday, June 27, 2011 Last Saved Wednesday, June 29, 2011 Product Version 13.0 Release

Non-linear and time-dependent material models in Mentat & MARC. Tutorial with Background and Exercises

ENGN 2290: Plasticity Computational plasticity in Abaqus

Lecture #6: 3D Rate-independent Plasticity (cont.) Pressure-dependent plasticity

Exercise: concepts from chapter 8

MODELING OF ELASTO-PLASTIC MATERIALS IN FINITE ELEMENT METHOD

Mathematical Background

ANSYS Mechanical Basic Structural Nonlinearities

Module-4. Mechanical Properties of Metals

MECHANICS OF MATERIALS. EQUATIONS AND THEOREMS

3-D Finite Element Analysis of Instrumented Indentation of Transversely Isotropic Materials

Finite Element Method in Geotechnical Engineering

Using MATLAB and. Abaqus. Finite Element Analysis. Introduction to. Amar Khennane. Taylor & Francis Croup. Taylor & Francis Croup,

Concept Question Comment on the general features of the stress-strain response under this loading condition for both types of materials

Settlement and Bearing Capacity of a Strip Footing. Nonlinear Analyses

Nonlinear Finite Element Modeling of Nano- Indentation Group Members: Shuaifang Zhang, Kangning Su. ME 563: Nonlinear Finite Element Analysis.

Load Cell Design Using COMSOL Multiphysics

Lecture 8. Stress Strain in Multi-dimension

Constitutive Equations

Elements of Continuum Elasticity. David M. Parks Mechanics and Materials II February 25, 2004

University of Sheffield The development of finite elements for 3D structural analysis in fire

3.22 Mechanical Properties of Materials Spring 2008

Chapter 2 Finite Element Formulations

Game Physics. Game and Media Technology Master Program - Utrecht University. Dr. Nicolas Pronost

Chapter 5. Vibration Analysis. Workbench - Mechanical Introduction ANSYS, Inc. Proprietary 2009 ANSYS, Inc. All rights reserved.

DYNAMIC ANALYSIS OF PILES IN SAND BASED ON SOIL-PILE INTERACTION

CAEFEM v9.5 Information

Prediction of the bilinear stress-strain curve of engineering material by nanoindentation test

ENGN 2340 Final Project Report. Optimization of Mechanical Isotropy of Soft Network Material

Strength of Material. Shear Strain. Dr. Attaullah Shah

Alternative numerical method in continuum mechanics COMPUTATIONAL MULTISCALE. University of Liège Aerospace & Mechanical Engineering

STRESS UPDATE ALGORITHM FOR NON-ASSOCIATED FLOW METAL PLASTICITY

ELASTOPLASTICITY THEORY by V. A. Lubarda

Seismic Response Analysis of Structure Supported by Piles Subjected to Very Large Earthquake Based on 3D-FEM

Chapter 6: Mechanical Properties of Metals. Dr. Feras Fraige

Performance Evaluation of Various Smoothed Finite Element Methods with Tetrahedral Elements in Large Deformation Dynamic Analysis

STANDARD SAMPLE. Reduced section " Diameter. Diameter. 2" Gauge length. Radius

Chapter 6: Plastic Theory

Outline. Tensile-Test Specimen and Machine. Stress-Strain Curve. Review of Mechanical Properties. Mechanical Behaviour

A Finite Element Study of Elastic-Plastic Hemispherical Contact Behavior against a Rigid Flat under Varying Modulus of Elasticity and Sphere Radius

Example-3. Title. Description. Cylindrical Hole in an Infinite Mohr-Coulomb Medium

EXPERIMENTAL IDENTIFICATION OF HYPERELASTIC MATERIAL PARAMETERS FOR CALCULATIONS BY THE FINITE ELEMENT METHOD

MATERIAL MECHANICS, SE2126 COMPUTER LAB 2 PLASTICITY

Lecture contents. Stress and strain Deformation potential. NNSE 618 Lecture #23

Advanced model for soft soils. Modified Cam-Clay (MCC)

Bulk Metal Forming II

SEMM Mechanics PhD Preliminary Exam Spring Consider a two-dimensional rigid motion, whose displacement field is given by

Brittle Deformation. Earth Structure (2 nd Edition), 2004 W.W. Norton & Co, New York Slide show by Ben van der Pluijm

Lecture 4 Implementing material models: using usermat.f. Implementing User-Programmable Features (UPFs) in ANSYS ANSYS, Inc.

Conservation of mass. Continuum Mechanics. Conservation of Momentum. Cauchy s Fundamental Postulate. # f body

A FINITE ELEMENT STUDY OF ELASTIC-PLASTIC HEMISPHERICAL CONTACT BEHAVIOR AGAINST A RIGID FLAT UNDER VARYING MODULUS OF ELASTICITY AND SPHERE RADIUS

The Finite Element Method II

Microstructural Randomness and Scaling in Mechanics of Materials. Martin Ostoja-Starzewski. University of Illinois at Urbana-Champaign

Linear Cosserat elasticity, conformal curvature and bounded stiffness

Mechanics of Earthquakes and Faulting

(MPa) compute (a) The traction vector acting on an internal material plane with normal n ( e1 e

Introduction to Engineering Materials ENGR2000. Dr. Coates

Mechanics PhD Preliminary Spring 2017

Constitutive models: Incremental plasticity Drücker s postulate

Practice Final Examination. Please initial the statement below to show that you have read it

An Energy Dissipative Constitutive Model for Multi-Surface Interfaces at Weld Defect Sites in Ultrasonic Consolidation

Discrete Element Modeling of Soils as Granular Materials

Numerical Modelling of Dynamic Earth Force Transmission to Underground Structures

1. A pure shear deformation is shown. The volume is unchanged. What is the strain tensor.

Course in. Geometric nonlinearity. Nonlinear FEM. Computational Mechanics, AAU, Esbjerg

Coupled Thermomechanical Contact Problems

Fundamentals of Fluid Dynamics: Elementary Viscous Flow

Chapter 2: Elasticity

FEM for elastic-plastic problems

The Finite Element Method for Computational Structural Mechanics

Finite Element Simulations of Microbeam Bending Experiments

Concrete Fracture Prediction Using Virtual Internal Bond Model with Modified Morse Functional Potential

Inverse Design (and a lightweight introduction to the Finite Element Method) Stelian Coros

Mechanics of Biomaterials

Constitutive Relations

A Constitutive Framework for the Numerical Analysis of Organic Soils and Directionally Dependent Materials

Continuum Mechanics and the Finite Element Method

Theory of Plasticity. Lecture Notes

MODELING OF CONCRETE MATERIALS AND STRUCTURES. Kaspar Willam. Uniaxial Model: Strain-Driven Format of Elastoplasticity

UNLOADING OF AN ELASTIC-PLASTIC LOADED SPHERICAL CONTACT

UNIVERSITY OF SASKATCHEWAN ME MECHANICS OF MATERIALS I FINAL EXAM DECEMBER 13, 2008 Professor A. Dolovich

Using the Timoshenko Beam Bond Model: Example Problem

INTRODUCTION TO THE EXPLICIT FINITE ELEMENT METHOD FOR NONLINEAR TRANSIENT DYNAMICS

Abstract. 1 Introduction

2D Liquefaction Analysis for Bridge Abutment

Mechanical analysis of timber connection using 3D finite element model

EQUIVALENT FRACTURE ENERGY CONCEPT FOR DYNAMIC RESPONSE ANALYSIS OF PROTOTYPE RC GIRDERS

Bending Load & Calibration Module

Supplementary Figures

Large Thermal Deflections of a Simple Supported Beam with Temperature-Dependent Physical Properties

Reference material Reference books: Y.C. Fung, "Foundations of Solid Mechanics", Prentice Hall R. Hill, "The mathematical theory of plasticity",

The University of Melbourne Engineering Mechanics

INCREASING RUPTURE PREDICTABILITY FOR ALUMINUM

Discrete Analysis for Plate Bending Problems by Using Hybrid-type Penalty Method

Plates and Shells: Theory and Computation. Dr. Mostafa Ranjbar

Transcription:

www.inl.gov MOOSE Workshop MOOSE-PF/MARMOT Training Mechanics Part Nashville, February 14th Daniel Schwen

www.inl.gov III. Mechanics

Mechanics Outline 1. Introduction 2. Tensor-based System 1. Compute Elasticity Tensor 2. Compute Strain 3. Compute Stress 3. Linear Elasticity 4. Finite Strain 1. Elasticity 2. J2 Plasticity 3. Crystal Plasticity 5. Eigen Strains 6. Contact

Modeling Mechanical Deformation The mechanical response of materials is a critical factor for all structural materials and many functional materials. Solid mechanics predicts deformation and motion under the action of forces, temperature changes, phase changes, and other external or internal agents. Inputs: material properties, boundary conditions, body forces Outputs: displacements, strains, stresses

Solid Mechanics Without going into any detail, we solve for the displacement vector u with the residual equation (with no acceleration): r + b = 0 in u = g in n = in g Where σ is the Cauchy stress tensor, u is the displacement vector, b is the body force, n is the unit normal to the boundary, g is the prescribed displacement on the boundary and ι is the prescribed traction on the boundary. The weak form of the residual is expressed as R =(, r m ) h, mi (b, m) =0 For a given material behavior, the constitutive model describes the stress response of the material, i.e. The constitutive model could be linear (linear elasticity) or nonlinear for both small and finite strains.

Module provides the tools necessary for solving solid mechanics using tensor forms, with emphasis on developing new models Anisotropic elasticity tensors that can change spatially Linear elasticity Eigen strains Finite strain mechanics J2 plasticity Crystal plasticity

Documentation The tensor mechanics module is documented on the mooseframework.org wiki: http://mooseframework.org/wiki/physicsmodules/tensormechanics/

Tensor Mechanics Objects To make the development of materials models as straight forward as possible, we represent stress, elasticity tensors, etc. as tensors. = C Thus, is written as: stress = elasticity_tensor*strain Rank two tensors are rotated according to stress_rot = R*stress*R.transpose() RankTwoTensor (stress, strain) /tensor_mechanics/src/utils/ranktwotensor.c 3 by 3, with indices accessed as A(i,j) Addition, subtraction, multiplication, transpose, inverse, etc. are all defined. RankFourTensor /tensor_mechanics/src/utils/rankfourtensor.c 3 by 3 by 3 by 3, with indices accessed as C(i,j,k,l) Addition, subtraction with RankFourTensors Muliplication defined with RankFourTensors and RankTwoTensor, as well as rotation. Values set assuming various levels of symmetry ElasticityTensorR4 /tensor_mechanics/src/utils/elasticitytensorr4.c Specialization of RankFourTensor Can be inverted for nonlinear solution RotationTensor /tensor_mechanics/src/utils/rotationtensor.c Defined in terms of three Euler angles

Tensor Mechanics Solution Vector variables do not exist in MOOSE, so three (or two) variables must be created, typically disp_x, disp_y and disp_z. Three kernels would also be necessary, however we have a custom kernel action called TensorMechanics that creates the kernels. [GlobalParams] displacements = disp_x disp_y disp_z [] [Kernels] [./TensorMechanics] [../] [] The kernel is defined in StressDivergenceTensors Weak form of the stress divergence equation is: Real StressDivergenceTensors::computeQpResidual() { return _stress[_qp].row(_component) * _grad_test[_i][_qp]; } //Taken from StressDivegenceTensors in MOOSE-tensor_mechanics (, r i )

Calculating the Stress The stress, used in the mechanics kernel, is calculated using the MOOSE material system. The elasticity tensor, strain, and stress are each calculated in their own block. Thus, three blocks are required in the input file: [Materials] [./elasticity_tensor] type = ComputeElasticityTensor block = 1 fill_method = symmetric_isotropic C_ijkl = '4.2e6 1.9e7' [../] [./strain] type = ComputeSmallStrain block = 1 # displacements in GlobalParams [../] [./stress] type = ComputeLinearElasticStress block = 1 [../] []

ComputeElasticityTensor This material creates the elasticity tensor from an input vector. Various symmetries are possible, defined by the fill_method Antisymmetric_isotropic Takes 1 input Symmetric_isotropic Takes 2 inputs [1 st Lame (bulk), 2 nd Lame (shear)] General_isotropic Takes 3 inputs [1 st Lame, 2 nd Lame, antisymmetric shear] Antisymmetric Takes 6 inputs [B 1212 B 1213 B 1223 B 1313 B 1323 B 2323 ] Symmetric9 Takes 9 inputs [C 1111 C 1122 C 1133 C 2222 C 2233 C 3333 C 2323 C 1313 C 1212 ] Symmetric21 Takes 21 (see.h file for list) General Assigns all 81 components Optionally, you can also pass in three Euler angles to rotate the elasticity tensor (see ComputeRotatedElasticityTensorBase) Users can define their own ways of calculating elasticity tensors by inheriting from ComputeElasticityTensorBase ComputeIsotropicElasticityTensor ComputeConcentrationDependentElasticityTensor CompositeElasticityTensor Provides derivatives!

ComputeIsotropicElasticityTensor Use ComputeIsotropicElasticityTensor For isotropy, there are various ways of defining the elastic constants This material creates an isotropic elasticity tensor from three possible combination of elastic constants. Possible combinations: First lame constant λ and shear modulus µ Young s modulus E and Poisson s ratio ν Bulk modulus K and shear modulus µ [./elasticity_tensor] type = ComputeIsotropicElasticityTensor block = 1 youngs_modulus = 240e9 #GPa poissons_ratio = 0.3 [../]

CompositeElasticityTensor Assemble arbitrary tensors with non-linear variable dependencies Combine a set of base tensors C i with a list of functions f i C = i f i C i The f i are Derivative Function Materials (recall Phase Field) All derivatives are built automatically [./C1_tensor] type = ComputeIsotropicElasticityTensor block = 1 base_name = C1 youngs_modulus = 240e9 poissons_ratio = 0.3 [../] [./f1_function] type = DerivativeParsedMaterial block = 0 args = 'c function = (1-c)^2 [../] [./elasticity_tensor] type = CompositeElasticityTensor block = 0 tensors = 'C1 C2' weights = 'f1 f2' args = 'c' [../]

Compute Strain The strain is calculated from the gradient of the displacement vector for a given strain formulation Users can define strains by inheriting from ComputeStrainBase ComputeSmallStrain (Cartesian coordinates) Assumes small strains Computes the total strain ComputeAxisymmetricRZSmallStrain ComputeFiniteStrain (Cartesian coordinates) Strains can be large Uses incremental form ComputeAxisymmetricRZFiniteStrain [./small_strain] type = ComputeSmallStrain block = 1 # displacements in GlobalParams [../] [./finite_strain] type = ComputeFiniteStrain block = 1 # displacements in GlobalParams [../]

Compute Stress The stress is calculated from the strain or strain increment according to a specific constitutive model Users can create new constitutive laws by inheriting from ComputeStressBase and overriding computeqpstress Linear elasticity directly calculates the stress from the strain Nonlinear models require a nested Newton solve to determine the stress [./stress] type = ComputeLinearElasticStress block = 1 [../]

Linear Elasticity Calculates the stress with and Uses ComputeSmallStrain and ComputeLinearElasticStress void ComputeSmallStrain::computeProperties() { for (_qp = 0; _qp < _qrule->n_points(); ++_qp) { RankTwoTensor grad_tensor(_grad_disp_x[_qp], _grad_disp_y[_qp], _grad_disp_z[_qp]); _total_strain[_qp] = (grad_tensor + grad_tensor.transpose()) / 2.0; } } //Taken from ComputeSmallStrain void ComputeLinearElasticStress::computeQpStress() { // stress = C*e _stress[_qp] = _elasticity_tensor[_qp] * _total_strain[_qp]; } //Taken from ComputeLinearElasticStress

Boundary Conditions MOOSE has all of the usual options for boundary conditions. The main boundary conditions for mechanics are: PresetBC Applies a specific constant displacement on a given boundary or node by setting the value of the displacement (Dirichlet). FunctionPresetBC Applies a displacement defined by a function. May vary spatially or with time. Ramped loading Pressure Applies a set pressure on a given boundary in the units of the simulation. NeumannBC Sets the value of the derivative of the solution on the boundary.

Linear Elasticity Example To demonstrate linear elasticity, we model a bridge with a body force (gravity) and an applied pressure on the top face See moose/tensor_mechanics/examples/bridge/bridge.i Problem Summary Bridge under gravity and a 0.5 MPa load Material properties: Steel Concrete Boundary conditions: Bottom of supports are constrained in all directions Solved using small strains and linear elasticity

Finite Strain Materials For finite strains, the material will deform and also rotate The deformation is defined in terms of the deformation gradient F The deformation gradient is divided into the rotation and the stretch F = RU σ = Rσ R T Stress calculation, σ We use a co-rotational form where the stress is calculated in the intermediate configuration, and then the rotation is applied ComputeFiniteStrain calculates strain_increment rotation_increment strain_rate deformation_gradient

Finite Strain Example Problem To demonstrate finite strain, we model a single element that is compressed and then rotated. There are finite strains, and large displacements. See moose/tensor_mechanics/tests/finite_strain_elastic/ elastic_rotation_test.i Finite strain version of the bridge example

Finite Strain Plastic Materials FiniteStrainPlasticMaterial: Rate independent von Mises plasticity Flow equations integrated using Backward Euler and Newton Raphson. Required input parameter yield stress which specifies hardening behavior and has to be provided as plastic strain-stress pair. yield_stress = 0 445 0.05 610 0.1 680 0.38 810 0.95 920 2 950 Example: /combined/tests/tensor_mechanics_j2plasticity/ tensor_mechanics_j2plasticity.i FiniteStrainRatePlasticMaterial: Rate dependent von Mises plasticity model. Perzyna model used to define the viscoplastic strain rate

Verification with ABAQUS Rate independent von Mises plasticity with large deformation Δu z = 0.01 mm used in both the simulations Equivalent Plastic Strain u z =0 u z =1 mm

Phenomenological vs. Mechanistic Plasticity J2 plasticity is phenomenological and based on empirical observation. A more mechanistic view considers dislocation motion In situ TEM video of deformation experiment Video from http://www.numodis.fr/tridis/tem/index.html

Crystal Plasticity Crystal plasticity mechanistically represents plastic deformation by representing dislocation slip along slip planes Slip contributions are summed across all slip planes Dislocation generation and pile-up accounted for by increasing slip resistance with a hardening law Crystal reorientation obtained from kinematics Plastic deformation due to slip along slip planes L c p = MX s=1 sb s 0 n s 0 Dislocation motion defined by a flow rule s = s ( s, s 0 )

Crystal Plasticity Materials FiniteStrainCrystalPlasticity: Rate dependent plasticity model driven by slip on every slip system Backward Euler time integration using Newton-Raphson. Required parameters: nss number of slip systems; varies for different crystal systems (fcc, bcc, hcp). gprops initial values of slip system resistances. hprops hardening properties flowprops flow properties Presently Euler angle for each element read from an input file Flow rule and hardness evolution can be modified by overriding functions get_slip_incr() and update_gss().

Example We have conducted various investigations with crystal plasticity solved with moose, see Chockalingam et al, Comp. Mech, (2013) 51:617-627 The results compared very well with those from an Abaqus Umat Compression of a polycrystalline cylinder: Stress (MPa) 200 150 100 600 50 Huang Abaqus Umat MOOSE JFNK Routine 0 0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 Strain 500 Stress Von Mises (MPa) 400 300 200 100 Grain 1 Grain 2 Grain 3 Grain 4 Grain 5 Grain 6 Grain 7 Grain 8 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 zz

Stress-Free Strains Local stress-free strains can be added to a model, i.e. = C ( 0 ) [Materials] This can be used to add volumetric strains (such as swelling), or strains due to lattice mismatch, etc. Stress-free strains are created in the material block. The base class is ComputeStressFreeStrainBase Constant Stress-free strains are build using ComputeEigenstrain Stress-free strains that are functions of other variables are built using ComputeVariableEigenstrain [./var_dependence] type = DerivativeParsedMaterial block = 0 function = 0.5*c^2 args = c f_name = var_dep enable_jit = true [../] [./eigen_strain] type = ComputeVariableEigenstrain block = 0 eigen_base = '1 1 1 0 0 0 args = c [../] []

Stress-Free Strain Example Secondary phase inclusion strains surrounding material See moose/modules/combined/tests/eigenstrain/variable.i

Visualizing the Stress and Strain Tensor material properties can not be directly outputted To output components of the stress, strain, or elastic constants, you must create an auxvariable and a corresponding auxkernel. Tensor auxkernels RankTwoAux: Outputs one component of a rank two tensor RankTwoScalarAux: Outputs scalar norms, Von Mises stress, equivalent plastic strain, trace, L2 norm RankFourAux: Outputs one component of a rank four tensor

Contact Module Contact algorithms in a solid mechanics finite element code prevent the penetration of one domain into another or the penetration of a domain into itself. It represents a critical capability to accurately model physical behavior It is also very difficult to accurately model physical contact using finite elements Ω (1) t (1) t (2) Ω (2)

Some Required Capabilities for Contact Search Exterior identification Nearby nodes Capture box Binarysearch,e.g. Contact existence More geometric work Penetration point Enforcement Formulation of contact force Formulation of Jacobian for nonlinear solve Interaction with other capabiities (e.g. kinematic boundary conditions) Development, testing, and application testing of contact require many, many man-months of effort. In fact, it is probably man years. A robust (though improving) contact capability is is available in the Contact Module

Contact Overview Contact is modeled by tracking interaction of a node on a face Nodes (green) may not penetrate faces (defined by orange nodes) No force is applied where the bodies are not in contact The contact forces must increase from zero as the bodies first come into contact

Contact Constraints g 0; the gap (penetration distance) must be non-positive t N 0; the contact force must push bodies apart t N g = 0; the contact force must be zero if the bodies are not in contact t N g = 0; the contact force must be zero when constraints are formed and released The gap in the normal direction for constraint i is (n is the normal, N denotes normal direction, d s is position of the slave node, d c is position of the contact point, and G is a matrix) g g i N = n i (d i (t) g i N = G i N (d(t)) t N d i c(t))

Contact Options Formulation:kinematic or penalty Kinematic is more accurate but also harder to solve. Model:frictionless, glued, or coulomb Frictionless enforces the normal constraint and allows nodes to come out of contact if they are in tension. Glued ties nodes where they come into contact with no release. Coulomb is frictional contact with release. friction coefficient Coulomb friction coefficient. penalty The penalty stiffness to be used in the constraint. Master The surface corresponding to the faces in the constraint. Slave The surface corresponding to the nodes in the constraint. normal smoothing distance Distance from face edge in parametric coordinates over which to smooth the normal. Helps with convergence. Try 0.1. tension release The tension value which will allow nodes to be released. Defaults to zero.

Contact Example Model of a hard spherical diamond indenter in contact with Cu using finite strain plasticity and frictionless contact. J2 plasticity with isotropic elasticity tensor J2 plasticity with anisotropic elasticity tensor Single crystal plasticity

Other Available Mechanics Capability There are users of the mechanics module across the world and they are all adding capability There are various available models Multi-yield surface plasticity Cosserat (Micropolar) Mechanics Mohr-Coulomb plasticity Weak plane tensile and shear behavior (for weakly bonded layers) Other capabilities will come soon Extended Finite Element