TaylorModel

Overview

This polycrystal homogenization model implements the standard Taylor approximation. Here the individual crystal receives the same deformation information and the resulting stresses are averaged.

Mathematically, each crystal receives the same, macroscopic \mathbf{D} and \mathbf{W} deformation rate objects

\mathbf{D}_i = \mathbf{D}

\mathbf{W}_i = \mathbf{W}

and the macroscale stress is:

\bf{\sigma} = \frac{1}{n}\sum_{i=1}^{n_{crystal}}\bm{\sigma}_{i}

The stress updates can be completed in parallel using OpenMP threads.

Parameters

Parameter

Object type

Description

Default

model

neml::SingleCrystalModel

Single crystal update

N

qs

std::vector<neml::Orientation>

Vector of orientations

N

nthreads

int

Number of threads to use

1

weights

std::vector<double>

Weights

1.0

Class description

class TaylorModel : public neml::PolycrystalModel

Public Functions

TaylorModel(ParameterSet &params)
virtual void update_ld_inc(const double *const d_np1, const double *const d_n, const double *const w_np1, const double *const w_n, double T_np1, double T_n, double t_np1, double t_n, double *const s_np1, const double *const s_n, double *const h_np1, const double *const h_n, double *const A_np1, double *const B_np1, double &u_np1, double u_n, double &p_np1, double p_n)

Large strain incremental update.

virtual double alpha(double T) const

Instantaneous thermal expansion coefficient as a function of temperature.

virtual void elastic_strains(const double *const s_np1, double T_np1, const double *const h_np1, double *const e_np1) const

Elastic strain for a given stress, temperature, and history state.

Public Static Functions

static std::string type()

Type for the object system.

static ParameterSet parameters()

Parameters for the object system.

static std::unique_ptr<NEMLObject> initialize(ParameterSet &params)

Setup from a ParameterSet.