NEML2 1.4.0
Loading...
Searching...
No Matches
neml2 Namespace Reference

Namespaces

namespace  crystallography
 
namespace  math
 
namespace  utils
 

Classes

class  ArrheniusParameter
 A scalar-valued parameter following an Arrhenius type relation. More...
 
class  AssociativeIsotropicPlasticHardening
 
class  AssociativeKinematicPlasticHardening
 
class  AssociativePlasticFlow
 
class  BackwardEulerTimeIntegration
 
class  BatchTensor
 
class  BatchTensorBase
 NEML2's enhanced tensor type. More...
 
class  BufferStore
 Interface for object which can store buffers. More...
 
class  ChabochePlasticHardening
 
class  ComposedModel
 
class  ConstantParameter
 A parameter that is actually just a constant. More...
 
class  CopyVariable
 Copy the value of a variable into another variable. More...
 
class  CrossRef
 The wrapper (decorator) for cross-referencing unresolved values at parse time. More...
 
class  Data
 
class  DependencyDefinition
 
class  DependencyResolver
 The DependencyResolver identifies and resolves the dependencies among a set of objects derived from DependencyDefinition. More...
 
class  Derivative
 
class  Diagnosis
 
class  Driver
 The Driver drives the execution of a NEML2 Model. More...
 
class  Eigenstrain
 
class  Elasticity
 
class  ElasticStrain
 
class  ElasticStrainRate
 Calculate the elastic strain rate from crystal model kinematics. More...
 
class  EmptyBatchTensor
 Create an empty BatchTensor from the input file. More...
 
class  EmptyFixedDimTensor
 Create an empty FixedDimTensor of type T from the input file. More...
 
class  Factory
 
class  FillR2
 Create a filled R2 from the input file. More...
 
class  FillRot
 Create a filled R2 from the input file. More...
 
class  FillSR2
 Create a filled SR2 from the input file. More...
 
class  FillWR2
 Create a filled WR2 from the input file. More...
 
class  FixedDimTensor
 FixedDimTensor inherits from BatchTensorBase and additionally templates on the base shape. More...
 
class  FixOrientation
 Swap orientation plane when the singularity at \( 2 \pi \) is met with the modified Rodrigues vector. More...
 
class  FlowRule
 
class  ForceRate
 
class  ForwardEulerTimeIntegration
 
class  FullBatchTensor
 Create a full BatchTensor from the input file. More...
 
class  FullFixedDimTensor
 Create a full FixedDimTensor of type T from the input file. More...
 
class  GTNYieldFunction
 
class  GursonCavitation
 
class  HITParser
 A parser is responsible for parsing an input file into a collection of options which can be used by the Factory to manufacture corresponding objects. More...
 
class  IdentityBatchTensor
 Create an identity BatchTensor from the input file. More...
 
class  ImplicitUpdate
 
class  Interpolation
 The base class for interpolated nonlinear parameter. More...
 
class  IsotropicHardening
 
class  IsotropicMandelStress
 
class  KinematicHardening
 
class  KocksMeckingActivationEnergy
 
class  KocksMeckingFlowSwitch
 
class  KocksMeckingFlowViscosity
 A scalar-valued parameter defined by (mu0 - D/(exp(T0/T)-1)) * exp(_C) More...
 
class  KocksMeckingRateSensitivity
 A scalar-valued parameter defined by (mu0 - D/(exp(T0/T)-1)) * exp(_C) More...
 
class  KocksMeckingYieldStress
 A scalar-valued parameter defined by (mu0 - D/(exp(T0/T)-1)) * exp(_C) More...
 
class  LabeledAxis
 A labeled axis used to associate layout of a tensor with human-interpretable names. More...
 
class  LabeledAxisAccessor
 The accessor containing all the information needed to access an item in a LabeledAxis. More...
 
class  LabeledMatrix
 A single-batched, logically 2D LabeledTensor. More...
 
class  LabeledTensor
 The primary data structure in NEML2 for working with labeled tensor views. More...
 
class  LabeledTensor3D
 A single-batched, logically 3D LabeledTensor. More...
 
class  LabeledVector
 A single-batched, logically 1D LabeledTensor. More...
 
class  LargeDeformationIncrementalSolidMechanicsDriver
 The transient driver specialized for solid mechanics problems. More...
 
class  LinearInterpolation
 Linearly interpolate the parameter along a single axis. More...
 
class  LinearIsotropicElasticity
 
class  LinearIsotropicHardening
 Simple linear map between equivalent strain and hardening. More...
 
class  LinearKinematicHardening
 Simple linear map between equivalent strain and hardening. More...
 
class  LinearSingleSlipHardeningRule
 Linear slip hardening of the type \(\dot{\bar{\tau}} = \theta \sum \left|\dot{\gamma}_i \right|\). More...
 
class  LinspaceBatchTensor
 Create a linspace BatchTensor from the input file. More...
 
class  LinspaceFixedDimTensor
 Create a linspace FixedDimTensor of type T from the input file. More...
 
class  LogspaceBatchTensor
 Create a logspace BatchTensor from the input file. More...
 
class  LogspaceFixedDimTensor
 Create a logspace FixedDimTensor of type T from the input file. More...
 
class  MandelStress
 
class  MillerIndex
 Represention of a crystal direction or plane a Miller Index. More...
 
class  MixedControlSetup
 
class  Model
 The base class for all constitutive models. More...
 
class  NEML2Object
 The base class of all "manufacturable" objects in the NEML2 library. More...
 
class  NEMLException
 
class  Newton
 The nonlinear solver solves a nonlinear system of equations. More...
 
class  NewtonWithLineSearch
 The nonlinear solver solves a nonlinear system of equations. More...
 
class  NewtonWithTrustRegion
 The nonlinear solver solves a nonlinear system of equations. More...
 
class  NonlinearParameter
 The base class for nonlinear parameters. More...
 
class  NonlinearSolver
 The nonlinear solver solves a nonlinear system of equations. More...
 
class  NonlinearSystem
 Definition of a nonlinear system of equations. More...
 
class  Normality
 
class  OlevskySinteringStress
 
class  OnesBatchTensor
 Create a ones BatchTensor from the input file. More...
 
class  OnesFixedDimTensor
 Create a ones FixedDimTensor of type T from the input file. More...
 
class  OptionCollection
 A data structure that holds options of multiple objects. More...
 
class  OptionSet
 A custom map-like data structure. The keys are strings, and the values can be nonhomogeneously typed. More...
 
class  Orientation
 Create batch of rotations, with various methods. More...
 
class  OrientationRate
 Calculate the orientation rate from the crystal model kinetics. More...
 
class  OverStress
 
class  ParameterStore
 Interface for object which can store parameters. More...
 
class  Parser
 A parser is responsible for parsing an input file into a collection of options which can be used by the Factory to manufacture corresponding objects. More...
 
class  ParserException
 
class  PerzynaPlasticFlowRate
 
class  PlasticDeformationRate
 Plastic deformation rate with the default kinetics. More...
 
class  PlasticFlowRate
 
class  PlasticVorticity
 Calculate the plastic vorticity with the default crystal kinetics. More...
 
class  PowerLawSlipRule
 Power law slip rate of the form \(\dot{\gamma}_i = \dot{\gamma}_0 \left| \frac{\tau_i}{\tau_{h,i}} \right| ^ {n-1} \frac{\tau_i}{\tau_{h,i}} \). More...
 
class  Quaternion
 A batched quaternion. More...
 
class  R2
 A basic R2. More...
 
class  R2Base
 The (logical) full second order tensor. More...
 
class  R3
 The (logical) full third order tensor. More...
 
class  R4
 The (logical) full fourth order tensor. More...
 
class  R5
 The (logical) full fifth order tensor. More...
 
class  RateIndependentPlasticFlowConstraint
 
class  Registry
 
class  ResolvedShear
 Calculate the resolved shears. More...
 
class  Rot
 Rotation stored as modified Rodrigues parameters. More...
 
class  RotationMatrix
 Convert a Rodrigues vector (Rot) to a second order tensor (R2). More...
 
class  Scalar
 The (logical) scalar. More...
 
class  SFFR4
 The logical fourth order tensor with minor symmetry in the 1st and 2nd dimensions. More...
 
class  SFR3
 The logical third order tensor with symmetry in the first two dimensions. More...
 
class  SingleSlipHardeningRule
 Any slip rule where all systems share the same strength. More...
 
class  SingleSlipStrengthMap
 A map between the internal variables and the slip strength, for the case where all systems share the same strength. More...
 
class  SlipRule
 Parent class of slip rules, mapping from resolved shear and internal state to slip rates. More...
 
class  SlipStrengthMap
 Parent class of maps between internal variables and the slip system strengths. More...
 
class  SolidMechanicsDriver
 The transient driver specialized for solid mechanics problems. More...
 
class  Solver
 The solver solves a system of equations. More...
 
class  SR2
 The (logical) symmetric second order tensor. More...
 
class  SR2Invariant
 
class  SSFR5
 The logical fifth order tensor with minor symmetry in the 1st and 2nd dimensions as well as in the 3rd and 4th dimensions. More...
 
class  SSR4
 The (logical) symmetric fourth order tensor, with symmetry in the first two dimensionss as well as in the last two dimensions. More...
 
class  StateRate
 
class  Storage
 
class  SumModel
 
class  SumSlipRates
 A helper model to calculate the sum of the absolute value of the slip rates. More...
 
class  SWR4
 The (logical) symmetric fourth order tensor, with symmetry in the first two dimensionss and skew-symmetry in the second two. More...
 
class  TensorValue
 Concrete definition of tensor value. More...
 
class  TensorValueBase
 The base class to allow us to set up a polymorphic container of BatchTensors. The concrete definitions will be templated on the actual tensor type. More...
 
class  ThermalEigenstrain
 
class  TotalStrain
 
class  Transformable
 Mixin class for things that can be transformed by a symmetry operator. More...
 
class  TransientDriver
 The driver for a transient initial-value problem. More...
 
class  TrustRegionSubProblem
 
class  UserBatchTensor
 Create raw BatchTensor from the input file. More...
 
class  UserFixedDimTensor
 Create raw tensor of type T from the input file. More...
 
class  UserTensor
 
class  Variable
 Concrete definition of a variable. More...
 
class  VariableBase
 
class  VariableStore
 
class  Vec
 The (logical) vector. More...
 
class  VecBase
 Base class for the (logical) vector. More...
 
class  VoceIsotropicHardening
 
class  VoceSingleSlipHardeningRule
 Voce slip hardening when all slip systems share the same hardening value, \(\dot{\bar{\tau}} = \theta_0 \left(1 - \frac{\bar{\tau}}{\tau_{sat}} \right) \sum \left|\dot{\gamma}_i \right|\). More...
 
class  WR2
 A skew rank 2, represented as an axial vector. More...
 
class  WR2ExplicitExponentialTimeIntegration
 Explicit exponential time integration for rotations. More...
 
class  WR2ImplicitExponentialTimeIntegration
 Implicit exponential time integration for rotations. More...
 
class  WSR4
 The (logical) symmetric fourth order tensor, with skew symmetry in the first two dimensionss and symmetry in the second two. More...
 
class  WWR4
 The (logical) symmetric fourth order tensor, with skew symmetry in the first two dimensions and last two dimensions. More...
 
class  YieldFunction
 
class  ZerosBatchTensor
 Create a zeros BatchTensor from the input file. More...
 
class  ZerosFixedDimTensor
 Create a zeros FixedDimTensor of type T from the input file. More...
 

Typedefs

using BuildPtr = std::shared_ptr<NEML2Object> (*)(const OptionSet & options)
 
typedef double Real
 
typedef int Integer
 
typedef int64_t TorchSize
 
typedef std::vector< TorchSizeTorchShape
 
typedef torch::IntArrayRef TorchShapeRef
 
typedef at::indexing::TensorIndex TorchIndex
 
typedef std::vector< at::indexing::TensorIndex > TorchSlice
 
typedef BackwardEulerTimeIntegration< ScalarScalarBackwardEulerTimeIntegration
 
typedef BackwardEulerTimeIntegration< VecVecBackwardEulerTimeIntegration
 
typedef BackwardEulerTimeIntegration< SR2SR2BackwardEulerTimeIntegration
 
typedef ForceRate< ScalarScalarForceRate
 
typedef ForceRate< SR2SR2ForceRate
 
typedef ForwardEulerTimeIntegration< ScalarScalarForwardEulerTimeIntegration
 
typedef ForwardEulerTimeIntegration< SR2SR2ForwardEulerTimeIntegration
 
typedef StateRate< ScalarScalarStateRate
 
typedef StateRate< SR2SR2StateRate
 
typedef SumModel< ScalarScalarSumModel
 
typedef SumModel< SR2SR2SumModel
 
using VariableName = LabeledAxisAccessor
 

Enumerations

enum  ParserType { HIT , XML , YAML , AUTO }
 

Functions

 FOR_ALL_FIXEDDIMTENSOR (CROSSREF_SPECIALIZE_FIXEDDIMTENSOR)
 
std::ostream & operator<< (std::ostream &os, const OptionCollection &p)
 
std::ostream & operator<< (std::ostream &os, const OptionSet &p)
 
void load_model (const std::string &path, const std::string &additional_input="", ParserType ptype=ParserType::AUTO)
 A convenient function to parse all options from an input file.
 
 register_NEML2_object (LargeDeformationIncrementalSolidMechanicsDriver)
 
 register_NEML2_object (SolidMechanicsDriver)
 
const torch::TensorOptions default_tensor_options ()
 
const torch::TensorOptions default_integer_tensor_options ()
 We similarly want to have a default integer scalar type for some types of tensors.
 
 register_NEML2_object (ArrheniusParameter)
 
 register_NEML2_object (ScalarBackwardEulerTimeIntegration)
 
 register_NEML2_object (VecBackwardEulerTimeIntegration)
 
 register_NEML2_object (SR2BackwardEulerTimeIntegration)
 
 register_NEML2_object (ComposedModel)
 
 FOR_ALL_FIXEDDIMTENSOR (CONSTANTPARAMETER_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (COPYVARIABLE_REGISTER_FIXEDDIMTENSOR)
 
 FOR_ALL_FIXEDDIMTENSOR (COPYVARIABLE_INSTANTIATE_FIXEDDIMTENSOR)
 
 register_NEML2_object (ScalarForceRate)
 
 register_NEML2_object (SR2ForceRate)
 
 register_NEML2_object (ScalarForwardEulerTimeIntegration)
 
 register_NEML2_object (SR2ForwardEulerTimeIntegration)
 
 register_NEML2_object (ImplicitUpdate)
 
 FOR_ALL_FIXEDDIMTENSOR (LINEARINTERPOLATION_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (LINEARINTERPOLATION_INSTANTIATE_FIXEDDIMTENSOR)
 
 FOR_ALL_FIXEDDIMTENSOR (NONLINEARPARAMETER_INSTANTIATE_FIXEDDIMTENSOR)
 
 FOR_ALL_FIXEDDIMTENSOR (PARAMETERSTORE_INTANTIATE_FIXEDDIMTENSOR)
 
 register_NEML2_object (RotationMatrix)
 
 register_NEML2_object (AssociativeIsotropicPlasticHardening)
 
 register_NEML2_object (AssociativeKinematicPlasticHardening)
 
 register_NEML2_object (AssociativePlasticFlow)
 
 register_NEML2_object (ChabochePlasticHardening)
 
 register_NEML2_object (ElasticStrainRate)
 
 register_NEML2_object (FixOrientation)
 
 register_NEML2_object (LinearSingleSlipHardeningRule)
 
 register_NEML2_object (OrientationRate)
 
 register_NEML2_object (PlasticDeformationRate)
 
 register_NEML2_object (PlasticVorticity)
 
 register_NEML2_object (PowerLawSlipRule)
 
 register_NEML2_object (ResolvedShear)
 
 register_NEML2_object (SingleSlipStrengthMap)
 
 register_NEML2_object (SumSlipRates)
 
 register_NEML2_object (VoceSingleSlipHardeningRule)
 
 register_NEML2_object (ElasticStrain)
 
 register_NEML2_object (GTNYieldFunction)
 
 register_NEML2_object (GursonCavitation)
 
 register_NEML2_object (IsotropicMandelStress)
 
 register_NEML2_object (KocksMeckingActivationEnergy)
 
 register_NEML2_object (KocksMeckingFlowSwitch)
 
 register_NEML2_object (KocksMeckingFlowViscosity)
 
 register_NEML2_object (KocksMeckingRateSensitivity)
 
 register_NEML2_object (KocksMeckingYieldStress)
 
 register_NEML2_object (LinearIsotropicElasticity)
 
 register_NEML2_object (LinearIsotropicHardening)
 
 register_NEML2_object (LinearKinematicHardening)
 
 register_NEML2_object (MixedControlSetup)
 
 register_NEML2_object (Normality)
 
 register_NEML2_object (OlevskySinteringStress)
 
 register_NEML2_object (OverStress)
 
 register_NEML2_object (PerzynaPlasticFlowRate)
 
 register_NEML2_object (RateIndependentPlasticFlowConstraint)
 
 register_NEML2_object (ThermalEigenstrain)
 
 register_NEML2_object (TotalStrain)
 
 register_NEML2_object (VoceIsotropicHardening)
 
 register_NEML2_object (YieldFunction)
 
 register_NEML2_object (SR2Invariant)
 
 register_NEML2_object (ScalarStateRate)
 
 register_NEML2_object (SR2StateRate)
 
 register_NEML2_object (ScalarSumModel)
 
 register_NEML2_object (SR2SumModel)
 
 register_NEML2_object (WR2ExplicitExponentialTimeIntegration)
 
 register_NEML2_object (WR2ImplicitExponentialTimeIntegration)
 
 register_NEML2_object (Newton)
 
 register_NEML2_object (NewtonWithLineSearch)
 
 register_NEML2_object (NewtonWithTrustRegion)
 
BatchTensor operator* (const BatchTensor &a, const BatchTensor &b)
 
 FOR_ALL_BATCHTENSORBASE (BATCHTENSORBASE_INSTANTIATE)
 
std::ostream & operator<< (std::ostream &os, const LabeledAxis &axis)
 
bool operator== (const LabeledAxis &a, const LabeledAxis &b)
 
bool operator!= (const LabeledAxis &a, const LabeledAxis &b)
 
 LabeledAxisAccessor::operator std::vector< std::string > () const
 
bool operator!= (const LabeledAxisAccessor &a, const LabeledAxisAccessor &b)
 Compare for equality between two LabeledAxisAccessor.
 
bool operator== (const LabeledAxisAccessor &a, const LabeledAxisAccessor &b)
 Compare for equality between two LabeledAxisAccessor.
 
bool operator< (const LabeledAxisAccessor &a, const LabeledAxisAccessor &b)
 The (strict) smaller than operator is created so as to use LabeledAxisAccessor in sorted data structures.
 
std::ostream & operator<< (std::ostream &os, const LabeledAxisAccessor &accessor)
 Serialize the accessor into a string. The format is simply the concatenation of all the item names delimited by "/".
 
template<class Derived1 , class Derived2 , typename , typename >
Vec operator* (const Derived1 &A, const Derived2 &b)
 matrix-vector product
 
template<class Derived1 , class Derived2 , typename , typename >
R2 operator* (const Derived1 &A, const Derived2 &B)
 matrix-matrix product
 
template Vec operator* (const R2 &A, const Vec &b)
 
template R2 operator* (const R2 &A, const R2 &B)
 
Rot operator* (const Rot &r1, const Rot &r2)
 Composition of rotations r3 = r1 * r2 (r2 first, then r1)
 
Scalar operator* (const Scalar &a, const Scalar &b)
 
Scalar abs (const Scalar &a)
 Absolute value.
 
SR2 operator* (const SSR4 &a, const SR2 &b)
 
SR2 operator* (const SR2 &a, const SSR4 &b)
 
SSR4 operator* (const SSR4 &a, const SSR4 &b)
 
R2 transform_from_quaternion (const Quaternion &q)
 Construct from quaternions, useful for comparison to old NEML.
 
R2 identity_transform (const torch::TensorOptions &options=default_tensor_options())
 The identity transformation, i.e.e the Rank2 identity tensor.
 
R2 proper_rotation_transform (const Rot &rot)
 A proper rotation, here provided by a Rot object.
 
R2 improper_rotation_transform (const Rot &rot)
 An improper rotation (rotation + reflection), here provided by a rot object giving the rotation and reflection axis.
 
R2 reflection_transform (const Vec &v)
 A reflection, defined by the reflection plane.
 
R2 inversion_transform (const torch::TensorOptions &options=default_tensor_options())
 An inversion center.
 
 register_NEML2_object (EmptyBatchTensor)
 
 FOR_ALL_FIXEDDIMTENSOR (EMPTYFIXEDDIMTENSOR_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (EMPTYFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR)
 
 register_NEML2_object (FillR2)
 
 register_NEML2_object (FillRot)
 
 register_NEML2_object (FillSR2)
 
 register_NEML2_object (FillWR2)
 
 register_NEML2_object (FullBatchTensor)
 
 FOR_ALL_FIXEDDIMTENSOR (FULLFIXEDDIMTENSOR_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (FULLFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR)
 
 register_NEML2_object (IdentityBatchTensor)
 
 register_NEML2_object (LinspaceBatchTensor)
 
 FOR_ALL_FIXEDDIMTENSOR (LINSPACEFIXEDDIMTENSOR_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (LINSPACEFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR)
 
 register_NEML2_object (LogspaceBatchTensor)
 
 FOR_ALL_FIXEDDIMTENSOR (LOGSPACEFIXEDDIMTENSOR_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (LOGSPACEFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR)
 
 register_NEML2_object (OnesBatchTensor)
 
 FOR_ALL_FIXEDDIMTENSOR (ONESFIXEDDIMTENSOR_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (ONESFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR)
 
 register_NEML2_object (Orientation)
 
 register_NEML2_object_alias (UserBatchTensor, "BatchTensor")
 
 FOR_ALL_FIXEDDIMTENSOR (USERFIXEDDIMTENSOR_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (USERFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR)
 
 register_NEML2_object (ZerosBatchTensor)
 
 FOR_ALL_FIXEDDIMTENSOR (ZEROSFIXEDDIMTENSOR_REGISTER)
 
 FOR_ALL_FIXEDDIMTENSOR (ZEROSFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR)
 
 FOR_ALL_VECBASE (VECBASE_INSTANTIATE)
 
template<typename T >
std::stringstream & operator>> (std::stringstream &, CrossRef< T > &)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const CrossRef< T > &cr)
 
template<>
void print_helper (std::ostream &os, const char *option)
 
template<>
void print_helper (std::ostream &os, const unsigned char *option)
 
template<typename... Args>
void neml_assert (bool assertion, Args &&... args)
 
template<typename... Args>
void neml_assert_dbg (bool assertion, Args &&... args)
 
template<typename... Args>
Diagnosis make_diagnosis (Args &&... args)
 
template<class... T>
bool broadcastable (T &&... tensors)
 
template<class... T>
TorchSize broadcast_batch_dim (T &&...)
 The batch dimension after broadcasting.
 
template<class... T>
void neml_assert_broadcastable (T &&...)
 A helper function to assert that all tensors are broadcastable.
 
template<class... T>
void neml_assert_broadcastable_dbg (T &&...)
 A helper function to assert (in Debug mode) that all tensors are broadcastable.
 
template<class... T>
void neml_assert_batch_broadcastable (T &&...)
 A helper function to assert that all tensors are batch-broadcastable.
 
template<class... T>
void neml_assert_batch_broadcastable_dbg (T &&...)
 A helper function to assert that (in Debug mode) all tensors are batch-broadcastable.
 
template<class... T>
TorchSize broadcast_batch_dim (T &&... tensor)
 
template<class... T>
void neml_assert_broadcastable (T &&... tensors)
 
template<class... T>
void neml_assert_broadcastable_dbg (T &&... tensors)
 
template<class... T>
void neml_assert_batch_broadcastable (T &&... tensors)
 
template<class... T>
void neml_assert_batch_broadcastable_dbg (T &&... tensors)
 
 FOR_ALL_FIXEDDIMTENSOR (CONSTANTPARAMETER_TYPEDEF_FIXEDDIMTENSOR)
 
 FOR_ALL_FIXEDDIMTENSOR (COPYVARIABLE_TYPEDEF_FIXEDDIMTENSOR)
 
 FOR_ALL_FIXEDDIMTENSOR (LINEARINTERPOLATION_TYPEDEF_FIXEDDIMTENSOR)
 
template<class Derived , typename = typename std::enable_if<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ (const Derived &a, const Real &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ (const Real &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ (const Derived &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- (const Derived &a, const Real &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- (const Real &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- (const Derived &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator* (const Derived &a, const Real &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator* (const Real &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ (const Derived &a, const Real &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ (const Real &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ (const Derived &a, const Derived &b)
 
template<typename F , typename T1 , typename T2 >
BatchTensor list_derivative_outer_product_a (F &&f, const T1 &a, const T2 &b)
 outer product on lists, where the first input is a list tensor
 
template<typename F , typename T1 , typename T2 >
BatchTensor list_derivative_outer_product_b (F &&f, const T1 &a, const T2 &b)
 outer product on lists, where the second input is a list tensor
 
template<typename F , typename T1 , typename T2 >
BatchTensor list_derivative_outer_product_ab (F &&f, const T1 &a, const T2 &b)
 outer product on lists where both inputs are list tensors
 
template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ (const Derived &a, const Scalar &b)
 
template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ (const Scalar &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- (const Derived &a, const Scalar &b)
 
template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- (const Scalar &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator* (const Derived &a, const Scalar &b)
 
template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator* (const Scalar &a, const Derived &b)
 
template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ (const Derived &a, const Scalar &b)
 
template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ (const Scalar &a, const Derived &b)
 
 FOR_ALL_FIXEDDIMTENSOR (EMPTYFIXEDDIMTENSOR_TYPEDEF)
 
 FOR_ALL_FIXEDDIMTENSOR (FULLFIXEDDIMTENSOR_TYPEDEF)
 
 FOR_ALL_FIXEDDIMTENSOR (LINSPACEFIXEDDIMTENSOR_TYPEDEF)
 
 FOR_ALL_FIXEDDIMTENSOR (LOGSPACEFIXEDDIMTENSOR_TYPEDEF)
 
 FOR_ALL_FIXEDDIMTENSOR (ONESFIXEDDIMTENSOR_TYPEDEF)
 
 FOR_ALL_FIXEDDIMTENSOR (USERFIXEDDIMTENSOR_TYPEDEF)
 
 FOR_ALL_FIXEDDIMTENSOR (ZEROSFIXEDDIMTENSOR_TYPEDEF)
 
template<typename T1 , typename T2 , typename = typename std::enable_if_t<std::is_base_of_v<VariableBase, T1> || std::is_base_of_v<VariableBase, T2>>>
auto operator+ (const T1 &a, const T2 &b)
 
template<typename T1 , typename T2 , typename = typename std::enable_if_t<std::is_base_of_v<VariableBase, T1> || std::is_base_of_v<VariableBase, T2>>>
auto operator- (const T1 &a, const T2 &b)
 
template<typename T1 , typename T2 , typename = typename std::enable_if_t<std::is_base_of_v<VariableBase, T1> || std::is_base_of_v<VariableBase, T2>>>
auto operator* (const T1 &a, const T2 &b)
 
template<typename T1 , typename T2 , typename = typename std::enable_if_t<std::is_base_of_v<VariableBase, T1> || std::is_base_of_v<VariableBase, T2>>>
auto operator/ (const T1 &a, const T2 &b)
 
template<typename P >
void print_helper (std::ostream &os, const P *)
 
template<typename P >
void print_helper (std::ostream &os, const std::vector< P > *)
 
template<typename P >
void print_helper (std::ostream &os, const std::vector< std::vector< P > > *)
 

Typedef Documentation

◆ BuildPtr

using BuildPtr = std::shared_ptr<NEML2Object> (*)(const OptionSet & options)

◆ Integer

◆ Real

◆ ScalarBackwardEulerTimeIntegration

◆ ScalarForceRate

◆ ScalarForwardEulerTimeIntegration

◆ ScalarStateRate

◆ ScalarSumModel

◆ SR2BackwardEulerTimeIntegration

◆ SR2ForceRate

◆ SR2ForwardEulerTimeIntegration

◆ SR2StateRate

◆ SR2SumModel

◆ TorchIndex

typedef at::indexing::TensorIndex TorchIndex

◆ TorchShape

◆ TorchShapeRef

typedef torch::IntArrayRef TorchShapeRef

◆ TorchSize

◆ TorchSlice

typedef std::vector<at::indexing::TensorIndex> TorchSlice

◆ VariableName

◆ VecBackwardEulerTimeIntegration

Enumeration Type Documentation

◆ ParserType

Enumerator
HIT 
XML 
YAML 
AUTO 

Function Documentation

◆ abs()

Scalar abs ( const Scalar & a)

Absolute value.

◆ broadcast_batch_dim() [1/2]

template<class... T>
TorchSize broadcast_batch_dim ( T &&... tensor)

◆ broadcast_batch_dim() [2/2]

template<class... T>
TorchSize broadcast_batch_dim ( T && ...)

The batch dimension after broadcasting.

This should be as simple as the maximum batch_dim() among all arguments.

◆ broadcastable()

template<class... T>
bool broadcastable ( T &&... tensors)

Two tensors are said to be broadcastable if

  1. Base shapes are the same
  2. Batch shapes are broadcastable (see sizes_broadcastable)

◆ default_integer_tensor_options()

const torch::TensorOptions default_integer_tensor_options ( )

We similarly want to have a default integer scalar type for some types of tensors.

◆ default_tensor_options()

const torch::TensorOptions default_tensor_options ( )

The factory methods like torch::arange, torch::ones, torch::zeros, torch::rand etc. accept a common argument to configure the properties of the tensor being created. We predefine a default tensor configuration in NEML2. This default configuration is consistently used throughout NEML2. This default can be configured by CMake.

See https://pytorch.org/cppdocs/notes/tensor_creation.html#configuring-properties-of-the-tensor for more details.

◆ FOR_ALL_BATCHTENSORBASE()

FOR_ALL_BATCHTENSORBASE ( BATCHTENSORBASE_INSTANTIATE )

◆ FOR_ALL_FIXEDDIMTENSOR() [1/32]

FOR_ALL_FIXEDDIMTENSOR ( CONSTANTPARAMETER_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [2/32]

FOR_ALL_FIXEDDIMTENSOR ( CONSTANTPARAMETER_TYPEDEF_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [3/32]

FOR_ALL_FIXEDDIMTENSOR ( COPYVARIABLE_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [4/32]

FOR_ALL_FIXEDDIMTENSOR ( COPYVARIABLE_REGISTER_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [5/32]

FOR_ALL_FIXEDDIMTENSOR ( COPYVARIABLE_TYPEDEF_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [6/32]

FOR_ALL_FIXEDDIMTENSOR ( CROSSREF_SPECIALIZE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [7/32]

FOR_ALL_FIXEDDIMTENSOR ( EMPTYFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [8/32]

FOR_ALL_FIXEDDIMTENSOR ( EMPTYFIXEDDIMTENSOR_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [9/32]

FOR_ALL_FIXEDDIMTENSOR ( EMPTYFIXEDDIMTENSOR_TYPEDEF )

◆ FOR_ALL_FIXEDDIMTENSOR() [10/32]

FOR_ALL_FIXEDDIMTENSOR ( FULLFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [11/32]

FOR_ALL_FIXEDDIMTENSOR ( FULLFIXEDDIMTENSOR_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [12/32]

FOR_ALL_FIXEDDIMTENSOR ( FULLFIXEDDIMTENSOR_TYPEDEF )

◆ FOR_ALL_FIXEDDIMTENSOR() [13/32]

FOR_ALL_FIXEDDIMTENSOR ( LINEARINTERPOLATION_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [14/32]

FOR_ALL_FIXEDDIMTENSOR ( LINEARINTERPOLATION_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [15/32]

FOR_ALL_FIXEDDIMTENSOR ( LINEARINTERPOLATION_TYPEDEF_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [16/32]

FOR_ALL_FIXEDDIMTENSOR ( LINSPACEFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [17/32]

FOR_ALL_FIXEDDIMTENSOR ( LINSPACEFIXEDDIMTENSOR_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [18/32]

FOR_ALL_FIXEDDIMTENSOR ( LINSPACEFIXEDDIMTENSOR_TYPEDEF )

◆ FOR_ALL_FIXEDDIMTENSOR() [19/32]

FOR_ALL_FIXEDDIMTENSOR ( LOGSPACEFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [20/32]

FOR_ALL_FIXEDDIMTENSOR ( LOGSPACEFIXEDDIMTENSOR_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [21/32]

FOR_ALL_FIXEDDIMTENSOR ( LOGSPACEFIXEDDIMTENSOR_TYPEDEF )

◆ FOR_ALL_FIXEDDIMTENSOR() [22/32]

FOR_ALL_FIXEDDIMTENSOR ( NONLINEARPARAMETER_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [23/32]

FOR_ALL_FIXEDDIMTENSOR ( ONESFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [24/32]

FOR_ALL_FIXEDDIMTENSOR ( ONESFIXEDDIMTENSOR_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [25/32]

FOR_ALL_FIXEDDIMTENSOR ( ONESFIXEDDIMTENSOR_TYPEDEF )

◆ FOR_ALL_FIXEDDIMTENSOR() [26/32]

FOR_ALL_FIXEDDIMTENSOR ( PARAMETERSTORE_INTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [27/32]

FOR_ALL_FIXEDDIMTENSOR ( USERFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [28/32]

FOR_ALL_FIXEDDIMTENSOR ( USERFIXEDDIMTENSOR_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [29/32]

FOR_ALL_FIXEDDIMTENSOR ( USERFIXEDDIMTENSOR_TYPEDEF )

◆ FOR_ALL_FIXEDDIMTENSOR() [30/32]

FOR_ALL_FIXEDDIMTENSOR ( ZEROSFIXEDDIMTENSOR_INSTANTIATE_FIXEDDIMTENSOR )

◆ FOR_ALL_FIXEDDIMTENSOR() [31/32]

FOR_ALL_FIXEDDIMTENSOR ( ZEROSFIXEDDIMTENSOR_REGISTER )

◆ FOR_ALL_FIXEDDIMTENSOR() [32/32]

FOR_ALL_FIXEDDIMTENSOR ( ZEROSFIXEDDIMTENSOR_TYPEDEF )

◆ FOR_ALL_VECBASE()

FOR_ALL_VECBASE ( VECBASE_INSTANTIATE )

◆ identity_transform()

R2 identity_transform ( const torch::TensorOptions & options)

The identity transformation, i.e.e the Rank2 identity tensor.

◆ improper_rotation_transform()

R2 improper_rotation_transform ( const Rot & rot)

An improper rotation (rotation + reflection), here provided by a rot object giving the rotation and reflection axis.

◆ inversion_transform()

R2 inversion_transform ( const torch::TensorOptions & option)

An inversion center.

◆ LabeledAxisAccessor::operator std::vector< std::string >()

LabeledAxisAccessor::operator std::vector< std::string > ( ) const

◆ list_derivative_outer_product_a()

template<typename F , typename T1 , typename T2 >
BatchTensor list_derivative_outer_product_a ( F && f,
const T1 & a,
const T2 & b )

outer product on lists, where the first input is a list tensor

◆ list_derivative_outer_product_ab()

template<typename F , typename T1 , typename T2 >
BatchTensor list_derivative_outer_product_ab ( F && f,
const T1 & a,
const T2 & b )

outer product on lists where both inputs are list tensors

◆ list_derivative_outer_product_b()

template<typename F , typename T1 , typename T2 >
BatchTensor list_derivative_outer_product_b ( F && f,
const T1 & a,
const T2 & b )

outer product on lists, where the second input is a list tensor

◆ load_model()

void load_model ( const std::string & path,
const std::string & additional_input = "",
ParserType ptype = ParserType::AUTO )

A convenient function to parse all options from an input file.

Parameters
pathPath to the input file to be parsed
additional_inputAdditional cliargs to pass to the parser
ptypeInput file format

◆ make_diagnosis()

template<typename... Args>
Diagnosis make_diagnosis ( Args &&... args)

◆ neml_assert()

template<typename... Args>
void neml_assert ( bool assertion,
Args &&... args )

◆ neml_assert_batch_broadcastable() [1/2]

template<class... T>
void neml_assert_batch_broadcastable ( T &&... tensors)

◆ neml_assert_batch_broadcastable() [2/2]

template<class... T>
void neml_assert_batch_broadcastable ( T && ...)

A helper function to assert that all tensors are batch-broadcastable.

In most cases, this assertion is necessary as libTorch will raise runtime_errors if things go wrong. Therefore, this function is just so that we can detect errors before libTorch does and emit some more mearningful error messages within the NEML2 context.

◆ neml_assert_batch_broadcastable_dbg() [1/2]

template<class... T>
void neml_assert_batch_broadcastable_dbg ( T &&... tensors)

◆ neml_assert_batch_broadcastable_dbg() [2/2]

template<class... T>
void neml_assert_batch_broadcastable_dbg ( T && ...)

A helper function to assert that (in Debug mode) all tensors are batch-broadcastable.

In most cases, this assertion is necessary as libTorch will raise runtime_errors if things go wrong. Therefore, this function is just so that we can detect errors before libTorch does and emit some more mearningful error messages within the NEML2 context.

◆ neml_assert_broadcastable() [1/2]

template<class... T>
void neml_assert_broadcastable ( T &&... tensors)

◆ neml_assert_broadcastable() [2/2]

template<class... T>
void neml_assert_broadcastable ( T && ...)

A helper function to assert that all tensors are broadcastable.

In most cases, this assertion is necessary as libTorch will raise runtime_errors if things go wrong. Therefore, this function is just so that we can detect errors before libTorch does and emit some more mearningful error messages within the NEML2 context.

◆ neml_assert_broadcastable_dbg() [1/2]

template<class... T>
void neml_assert_broadcastable_dbg ( T &&... tensors)

◆ neml_assert_broadcastable_dbg() [2/2]

template<class... T>
void neml_assert_broadcastable_dbg ( T && ...)

A helper function to assert (in Debug mode) that all tensors are broadcastable.

In most cases, this assertion is necessary as libTorch will raise runtime_errors if things go wrong. Therefore, this function is just so that we can detect errors before libTorch does and emit some more mearningful error messages within the NEML2 context.

◆ neml_assert_dbg()

template<typename... Args>
void neml_assert_dbg ( bool assertion,
Args &&... args )

◆ operator!=() [1/2]

◆ operator!=() [2/2]

Compare for equality between two LabeledAxisAccessor.

◆ operator*() [1/15]

◆ operator*() [2/15]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator* ( const Derived & a,
const Real & b )

◆ operator*() [3/15]

template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator* ( const Derived & a,
const Scalar & b )

◆ operator*() [4/15]

matrix-vector product

◆ operator*() [5/15]

matrix-matrix product

◆ operator*() [6/15]

template R2 operator* ( const R2 & A,
const R2 & B )

◆ operator*() [7/15]

template Vec operator* ( const R2 & A,
const Vec & b )

◆ operator*() [8/15]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator* ( const Real & a,
const Derived & b )

◆ operator*() [9/15]

Rot operator* ( const Rot & r1,
const Rot & r2 )

Composition of rotations r3 = r1 * r2 (r2 first, then r1)

◆ operator*() [10/15]

template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator* ( const Scalar & a,
const Derived & b )

◆ operator*() [11/15]

◆ operator*() [12/15]

SR2 operator* ( const SR2 & a,
const SSR4 & b )

◆ operator*() [13/15]

SR2 operator* ( const SSR4 & a,
const SR2 & b )

◆ operator*() [14/15]

SSR4 operator* ( const SSR4 & a,
const SSR4 & b )

◆ operator*() [15/15]

template<typename T1 , typename T2 , typename = typename std::enable_if_t<std::is_base_of_v<VariableBase, T1> || std::is_base_of_v<VariableBase, T2>>>
auto operator* ( const T1 & a,
const T2 & b )

◆ operator+() [1/6]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ ( const Derived & a,
const Derived & b )

◆ operator+() [2/6]

template<class Derived , typename = typename std::enable_if<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ ( const Derived & a,
const Real & b )

◆ operator+() [3/6]

template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ ( const Derived & a,
const Scalar & b )

◆ operator+() [4/6]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ ( const Real & a,
const Derived & b )

◆ operator+() [5/6]

template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator+ ( const Scalar & a,
const Derived & b )

◆ operator+() [6/6]

template<typename T1 , typename T2 , typename = typename std::enable_if_t<std::is_base_of_v<VariableBase, T1> || std::is_base_of_v<VariableBase, T2>>>
auto operator+ ( const T1 & a,
const T2 & b )

◆ operator-() [1/6]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- ( const Derived & a,
const Derived & b )

◆ operator-() [2/6]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- ( const Derived & a,
const Real & b )

◆ operator-() [3/6]

template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- ( const Derived & a,
const Scalar & b )

◆ operator-() [4/6]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- ( const Real & a,
const Derived & b )

◆ operator-() [5/6]

template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator- ( const Scalar & a,
const Derived & b )

◆ operator-() [6/6]

template<typename T1 , typename T2 , typename = typename std::enable_if_t<std::is_base_of_v<VariableBase, T1> || std::is_base_of_v<VariableBase, T2>>>
auto operator- ( const T1 & a,
const T2 & b )

◆ operator/() [1/6]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ ( const Derived & a,
const Derived & b )

◆ operator/() [2/6]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ ( const Derived & a,
const Real & b )

◆ operator/() [3/6]

template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ ( const Derived & a,
const Scalar & b )

◆ operator/() [4/6]

template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ ( const Real & a,
const Derived & b )

◆ operator/() [5/6]

template<class Derived , typename = typename std::enable_if_t<!std::is_same_v<Derived, Scalar>>, typename = typename std::enable_if_t<std::is_base_of_v<BatchTensorBase<Derived>, Derived>>>
Derived operator/ ( const Scalar & a,
const Derived & b )

◆ operator/() [6/6]

template<typename T1 , typename T2 , typename = typename std::enable_if_t<std::is_base_of_v<VariableBase, T1> || std::is_base_of_v<VariableBase, T2>>>
auto operator/ ( const T1 & a,
const T2 & b )

◆ operator<()

The (strict) smaller than operator is created so as to use LabeledAxisAccessor in sorted data structures.

◆ operator<<() [1/5]

template<typename T >
std::ostream & operator<< ( std::ostream & os,
const CrossRef< T > & cr )

◆ operator<<() [2/5]

std::ostream & operator<< ( std::ostream & os,
const LabeledAxis & axis )

◆ operator<<() [3/5]

std::ostream & operator<< ( std::ostream & os,
const LabeledAxisAccessor & accessor )

Serialize the accessor into a string. The format is simply the concatenation of all the item names delimited by "/".

◆ operator<<() [4/5]

std::ostream & operator<< ( std::ostream & os,
const OptionCollection & p )

◆ operator<<() [5/5]

std::ostream & operator<< ( std::ostream & os,
const OptionSet & p )

◆ operator==() [1/2]

◆ operator==() [2/2]

Compare for equality between two LabeledAxisAccessor.

◆ operator>>()

template<typename T >
std::stringstream & operator>> ( std::stringstream & ss,
CrossRef< T > & cr )

◆ print_helper() [1/5]

template<>
void print_helper ( std::ostream & os,
const char * option )
inline

◆ print_helper() [2/5]

template<typename P >
void print_helper ( std::ostream & os,
const P * option )

Helper functions for printing scalar, vector, vector of vector. Called from OptionSet::Option<T>::print(...).

◆ print_helper() [3/5]

template<typename P >
void print_helper ( std::ostream & os,
const std::vector< P > * option )

◆ print_helper() [4/5]

template<typename P >
void print_helper ( std::ostream & os,
const std::vector< std::vector< P > > * option )

◆ print_helper() [5/5]

template<>
void print_helper ( std::ostream & os,
const unsigned char * option )
inline

◆ proper_rotation_transform()

R2 proper_rotation_transform ( const Rot & rot)

A proper rotation, here provided by a Rot object.

◆ reflection_transform()

R2 reflection_transform ( const Vec & v)

A reflection, defined by the reflection plane.

◆ register_NEML2_object() [1/72]

register_NEML2_object ( ArrheniusParameter )

◆ register_NEML2_object() [2/72]

register_NEML2_object ( AssociativeIsotropicPlasticHardening )

◆ register_NEML2_object() [3/72]

register_NEML2_object ( AssociativeKinematicPlasticHardening )

◆ register_NEML2_object() [4/72]

register_NEML2_object ( AssociativePlasticFlow )

◆ register_NEML2_object() [5/72]

register_NEML2_object ( ChabochePlasticHardening )

◆ register_NEML2_object() [6/72]

register_NEML2_object ( ComposedModel )

◆ register_NEML2_object() [7/72]

register_NEML2_object ( ElasticStrain )

◆ register_NEML2_object() [8/72]

register_NEML2_object ( ElasticStrainRate )

◆ register_NEML2_object() [9/72]

register_NEML2_object ( EmptyBatchTensor )

◆ register_NEML2_object() [10/72]

register_NEML2_object ( FillR2 )

◆ register_NEML2_object() [11/72]

register_NEML2_object ( FillRot )

◆ register_NEML2_object() [12/72]

register_NEML2_object ( FillSR2 )

◆ register_NEML2_object() [13/72]

register_NEML2_object ( FillWR2 )

◆ register_NEML2_object() [14/72]

register_NEML2_object ( FixOrientation )

◆ register_NEML2_object() [15/72]

register_NEML2_object ( FullBatchTensor )

◆ register_NEML2_object() [16/72]

register_NEML2_object ( GTNYieldFunction )

◆ register_NEML2_object() [17/72]

register_NEML2_object ( GursonCavitation )

◆ register_NEML2_object() [18/72]

register_NEML2_object ( IdentityBatchTensor )

◆ register_NEML2_object() [19/72]

register_NEML2_object ( ImplicitUpdate )

◆ register_NEML2_object() [20/72]

register_NEML2_object ( IsotropicMandelStress )

◆ register_NEML2_object() [21/72]

register_NEML2_object ( KocksMeckingActivationEnergy )

◆ register_NEML2_object() [22/72]

register_NEML2_object ( KocksMeckingFlowSwitch )

◆ register_NEML2_object() [23/72]

register_NEML2_object ( KocksMeckingFlowViscosity )

◆ register_NEML2_object() [24/72]

register_NEML2_object ( KocksMeckingRateSensitivity )

◆ register_NEML2_object() [25/72]

register_NEML2_object ( KocksMeckingYieldStress )

◆ register_NEML2_object() [26/72]

◆ register_NEML2_object() [27/72]

register_NEML2_object ( LinearIsotropicElasticity )

◆ register_NEML2_object() [28/72]

register_NEML2_object ( LinearIsotropicHardening )

◆ register_NEML2_object() [29/72]

register_NEML2_object ( LinearKinematicHardening )

◆ register_NEML2_object() [30/72]

register_NEML2_object ( LinearSingleSlipHardeningRule )

◆ register_NEML2_object() [31/72]

register_NEML2_object ( LinspaceBatchTensor )

◆ register_NEML2_object() [32/72]

register_NEML2_object ( LogspaceBatchTensor )

◆ register_NEML2_object() [33/72]

register_NEML2_object ( MixedControlSetup )

◆ register_NEML2_object() [34/72]

register_NEML2_object ( Newton )

◆ register_NEML2_object() [35/72]

register_NEML2_object ( NewtonWithLineSearch )

◆ register_NEML2_object() [36/72]

register_NEML2_object ( NewtonWithTrustRegion )

◆ register_NEML2_object() [37/72]

register_NEML2_object ( Normality )

◆ register_NEML2_object() [38/72]

register_NEML2_object ( OlevskySinteringStress )

◆ register_NEML2_object() [39/72]

register_NEML2_object ( OnesBatchTensor )

◆ register_NEML2_object() [40/72]

register_NEML2_object ( Orientation )

◆ register_NEML2_object() [41/72]

register_NEML2_object ( OrientationRate )

◆ register_NEML2_object() [42/72]

register_NEML2_object ( OverStress )

◆ register_NEML2_object() [43/72]

register_NEML2_object ( PerzynaPlasticFlowRate )

◆ register_NEML2_object() [44/72]

register_NEML2_object ( PlasticDeformationRate )

◆ register_NEML2_object() [45/72]

register_NEML2_object ( PlasticVorticity )

◆ register_NEML2_object() [46/72]

register_NEML2_object ( PowerLawSlipRule )

◆ register_NEML2_object() [47/72]

register_NEML2_object ( RateIndependentPlasticFlowConstraint )

◆ register_NEML2_object() [48/72]

register_NEML2_object ( ResolvedShear )

◆ register_NEML2_object() [49/72]

register_NEML2_object ( RotationMatrix )

◆ register_NEML2_object() [50/72]

register_NEML2_object ( ScalarBackwardEulerTimeIntegration )

◆ register_NEML2_object() [51/72]

register_NEML2_object ( ScalarForceRate )

◆ register_NEML2_object() [52/72]

register_NEML2_object ( ScalarForwardEulerTimeIntegration )

◆ register_NEML2_object() [53/72]

register_NEML2_object ( ScalarStateRate )

◆ register_NEML2_object() [54/72]

register_NEML2_object ( ScalarSumModel )

◆ register_NEML2_object() [55/72]

register_NEML2_object ( SingleSlipStrengthMap )

◆ register_NEML2_object() [56/72]

register_NEML2_object ( SolidMechanicsDriver )

◆ register_NEML2_object() [57/72]

register_NEML2_object ( SR2BackwardEulerTimeIntegration )

◆ register_NEML2_object() [58/72]

register_NEML2_object ( SR2ForceRate )

◆ register_NEML2_object() [59/72]

register_NEML2_object ( SR2ForwardEulerTimeIntegration )

◆ register_NEML2_object() [60/72]

register_NEML2_object ( SR2Invariant )

◆ register_NEML2_object() [61/72]

register_NEML2_object ( SR2StateRate )

◆ register_NEML2_object() [62/72]

register_NEML2_object ( SR2SumModel )

◆ register_NEML2_object() [63/72]

register_NEML2_object ( SumSlipRates )

◆ register_NEML2_object() [64/72]

register_NEML2_object ( ThermalEigenstrain )

◆ register_NEML2_object() [65/72]

register_NEML2_object ( TotalStrain )

◆ register_NEML2_object() [66/72]

register_NEML2_object ( VecBackwardEulerTimeIntegration )

◆ register_NEML2_object() [67/72]

register_NEML2_object ( VoceIsotropicHardening )

◆ register_NEML2_object() [68/72]

register_NEML2_object ( VoceSingleSlipHardeningRule )

◆ register_NEML2_object() [69/72]

register_NEML2_object ( WR2ExplicitExponentialTimeIntegration )

◆ register_NEML2_object() [70/72]

register_NEML2_object ( WR2ImplicitExponentialTimeIntegration )

◆ register_NEML2_object() [71/72]

register_NEML2_object ( YieldFunction )

◆ register_NEML2_object() [72/72]

register_NEML2_object ( ZerosBatchTensor )

◆ register_NEML2_object_alias()

register_NEML2_object_alias ( UserBatchTensor ,
"BatchTensor"  )

◆ transform_from_quaternion()

R2 transform_from_quaternion ( const Quaternion & q)

Construct from quaternions, useful for comparison to old NEML.