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

Namespaces

namespace  crystallography
 
namespace  discretization
 
namespace  indexing
 
namespace  jit
 
namespace  linalg
 
namespace  utils
 

Classes

class  AdvectiveStress
 Variational advective stress associated with swelling induced volume change. More...
 
class  AnisotropicElasticity
 
class  ArrheniusParameter
 A scalar-valued parameter following an Arrhenius type relation. More...
 
class  AssociativeIsotropicPlasticHardening
 
class  AssociativeJ2FlowDirection
 The plastic flow direction assuming an associative J2 flow. More...
 
class  AssociativeKinematicPlasticHardening
 
class  AssociativePlasticFlow
 
class  AvramiErofeevNucleation
 Avrami-Erofeev nucleation model. More...
 
class  BackwardEulerTimeIntegration
 
class  BilinearInterpolation
 Linearly interpolate the parameter along on a 2D grid. More...
 
class  BrooksCoreyCapillaryPressure
 Define the Brooks-Corey correlation for capillary pressure. More...
 
class  BufferStore
 Interface for object which can store buffers. More...
 
class  CapillaryPressure
 Base class for capillary pressure models in porous flow. More...
 
class  ChabochePlasticHardening
 
class  ComposedModel
 
struct  concat_seq
 
struct  concat_seq< std::integer_sequence< Size, A... >, std::integer_sequence< Size, B... > >
 
class  ConstantParameter
 A parameter that is actually just a constant. More...
 
class  ContractingGeometry
 Contracting geometry model in the context of solid-state reaction kinetics. More...
 
class  CopyVariable
 Copy the value of a variable into another variable. More...
 
class  CrackGeometricFunction
 
class  CrackGeometricFunctionAT1
 
class  CrackGeometricFunctionAT2
 
class  CubicElasticityConverter
 Converter for linearized elastic constants assuming cubic symmetry. More...
 
class  CubicElasticityTensor
 Define an cubic symmetry elasticity tensor in various ways. More...
 
class  CylindricalChannelGeometry
 
class  Data
 
class  DegradationFunction
 
class  DependencyDefinition
 
class  DependencyResolver
 The DependencyResolver identifies and resolves the dependencies among a set of objects derived from DependencyDefinition. More...
 
class  Derivative
 Derivative wrapper. More...
 
class  Determinant
 Determinant of a rank two tensor. More...
 
struct  Diagnosing
 
class  Diagnosis
 Exception type reserved for diagnostics, so as to not conceptually clash with other exceptions. More...
 
class  DiagnosticsInterface
 Interface for object making diagnostics about common setup errors. More...
 
struct  DiagnosticState
 
class  DiffusionLimitedReaction
 
class  Driver
 The Driver drives the execution of a NEML2 Model. More...
 
class  DTensor
 Abstract representation of the derivative of a primitive tensor with respect to another primitive tensor. More...
 
struct  DTensorBase
 
struct  DTensorBase< Derived, std::integer_sequence< Size, S... > >
 
class  DynamicMean
 
class  DynamicSum
 
class  EffectiveSaturation
 Define the effective saturation. More...
 
class  EffectiveVolume
 Update the effective volume of a control mass composite during reaction. More...
 
class  Eigenstrain
 
class  Elasticity
 
class  ElasticityConverter
 Base class for converters responsible for converting between different parameterizations of the linear elasticity tensor in different symmetry groups. More...
 
class  ElasticityInterface
 Interface for objects defining elasticity tensors in terms of other parameters. More...
 
class  ElasticStrainRate
 Calculate the elastic strain rate from crystal model kinematics. More...
 
class  EnumSelection
 Selection of an enum value from a list of choices. More...
 
class  EnumSelectionBase
 
class  ExponentialLawPermeability
 
class  Factory
 
class  FactoryException
 
class  FactoryMethodBase
 Create an empty tensor of type T from the input file. More...
 
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  FischerBurmeister
 Define the Fischer Burmeister Complementary Conditions. More...
 
class  FixedSizeWorkGenerator
 Interface for work generators that generate a fixed number of batches, i.e., the total amount of work is known at construction time. More...
 
class  FixOrientation
 Swap orientation plane when the singularity at \( 2 \pi \) is met with the modified Rodrigues vector. More...
 
class  FlowRule
 
class  ForwardEulerTimeIntegration
 
class  FredrickArmstrongPlasticHardening
 
class  FromTorchScript
 Read the tensors provided by a torch script file. More...
 
class  FullTensorTmpl
 Create a full tensor of type T from the input file. More...
 
class  GeneralElasticity
 
class  GreenLagrangeStrain
 
class  GTNYieldFunction
 
class  GursonCavitation
 
class  HermiteSmoothStep
 
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  IdentityTensor
 Create an identity Tensor from the input file. More...
 
struct  imap_t
 
struct  imap_t< R2 >
 
struct  imap_t< Scalar >
 
struct  imap_t< SR2 >
 
struct  imap_t< Vec >
 
class  ImplicitUpdate
 
class  IncrementToRate
 
class  InputFile
 A data structure that holds options of multiple objects. More...
 
class  InputParameter
 A parameter that is defined by an input variable. More...
 
class  IntermediateMean
 
class  IntermediateSum
 
class  Interpolation
 The base class for interpolated variable. More...
 
class  IsotropicElasticityConverter
 Converter for linearized elastic constants assuming isotropic symmetry. More...
 
class  IsotropicElasticityTensor
 Define an isotropoic elasticity tensor in various ways. More...
 
class  IsotropicHardening
 
class  IsotropicHardeningStaticRecovery
 
class  IsotropicMandelStress
 
class  KinematicHardening
 
class  KinematicHardeningStaticRecovery
 
class  KocksMeckingActivationEnergy
 
class  KocksMeckingFlowSwitch
 
class  KocksMeckingFlowViscosity
 A scalar-valued parameter defined by (mu0 - D/(exp(T0/T)-1)) * exp(_C) More...
 
class  KocksMeckingIntercept
 A scalar-valued parameter defined by (C-B) / A. 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  KozenyCarmanPermeability
 The Kozeny-Carman porosity-permeability relation. More...
 
class  LabeledAxis
 A labeled axis is 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  LDISolidMechanicsDriver
 Large deformation incremental solid mechanics driver. More...
 
class  LinearCombination
 
class  LinearInterpolation
 Linearly interpolate the parameter along an intermediate axis. More...
 
class  LinearIsotropicElasticity
 
class  LinearIsotropicElasticJ2TrialStressUpdate
 Update the trial stress under the assumptions of J2 plasticity and isotropic linear elasticity. More...
 
class  LinearIsotropicHardening
 Simple linear map between equivalent strain and isotropic hardening. More...
 
class  LinearIsotropicStrainEnergyDensity
 
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  LinspaceTensorTmpl
 Create a linspace tensor of type T from the input file. More...
 
class  LogspaceTensorTmpl
 Create a logspace tensor of type T from the input file. More...
 
class  MandelStress
 
class  MatrixAssembler
 Helper to assemble a matrix of tensors into a single tensor and also to split a tensor into a map of map of tensors. More...
 
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  ModelDriver
 A general-purpose driver that does something with a model. More...
 
class  MultiEnumSelection
 Selection of multiple enum value from a list of choices. More...
 
class  NEML2Object
 The base class of all "manufacturable" objects in the NEML2 library. More...
 
struct  NEML2ObjectInfo
 Information on a NEML2Object that is registered in the Registry. 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...
 
struct  NonlinearParameter
 Nonlinear parameter. 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  Option
 
class  OptionBase
 
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  ParameterStore
 Interface for object which can store parameters. More...
 
class  ParameterToState
 Convert a parameter to a state variable. 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  PhaseTransformationEigenstrain
 Define the phase transformation eigenstrain. More...
 
class  PlasticDeformationRate
 Plastic deformation rate with the default kinetics. More...
 
class  PlasticFlowRate
 
class  PlasticSpatialVelocityGradient
 Plastic spatial velocity gradient with the default kinetics. More...
 
class  PlasticVorticity
 Calculate the plastic vorticity with the default crystal kinetics. More...
 
class  PorosityPermeabilityRelation
 Base class for the porosity - permeability relations. More...
 
class  PowerDegradationFunction
 
class  PowerLawIsotropicHardeningStaticRecovery
 
class  PowerLawKinematicHardeningStaticRecovery
 
class  PowerLawPermeability
 power law porosity-permeability relation. 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  PrimitiveTensor
 PrimitiveTensor inherits from TensorBase and additionally templates on the base shape. More...
 
class  ProjectileAcceleration
 
class  Quaternion
 Quaternion. More...
 
class  R2
 Base class for second order tensor. More...
 
class  R2Multiplication
 Multiplication of two R2 variables. More...
 
class  R2toSR2
 Get the symmetric part of a full rank two tensor. More...
 
class  R2toWR2
 Get the skew symmetric part of a full rank two tensor. More...
 
class  R3
 Third order tensor without symmetry. More...
 
class  R4
 Fourth order tensor without symmetry. More...
 
class  RandomTensorImpl
 Create a random tensor of type T from the input file. More...
 
class  RateIndependentPlasticFlowConstraint
 
class  RationalDegradationFunction
 
class  ReactionMechanism
 Define the mechanism reaction function. More...
 
class  Reduction
 
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
 Scalar. More...
 
class  ScalarMultiplication
 Define the multiplication of arbitrary number of state variables. More...
 
class  ScalarToDiagonalSR2
 Create a diagonal symmetric rank 2 tensor with values filled by a scalar. More...
 
class  SDTSolidMechanicsDriver
 Small deformation total solid mechanics driver. More...
 
class  Settings
 
class  SetupException
 
class  SFFR4
 The fourth order tensor with minor symmetry in the 1st and 2nd dimensions. More...
 
class  SFR3
 The third order tensor with symmetry in the first two dimensions. More...
 
class  SimpleMPIScheduler
 A simple MPI scheduler. More...
 
class  SimpleScheduler
 A very simple scheduler. 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  SliceGenerator
 
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  SlopeSaturationVoceIsotropicHardening
 
class  SolidMechanicsDriver
 The transient driver specialized for solid mechanics problems. More...
 
class  Solver
 The solver solves a system of equations. More...
 
struct  SolvingNonlinearSystem
 
class  SR2
 The symmetric second order tensor. More...
 
class  SR2Invariant
 
class  SR2toR2
 Convert symmetric rank two tensor to full. More...
 
class  SSR4
 The symmetric fourth order tensor, with symmetry in the first two dimensionss as well as in the last two dimensions. More...
 
class  StaticHybridScheduler
 A scheduler for multiple devices with static priority management. More...
 
class  StrainEnergyDensity
 
class  SumSlipRates
 A helper model to calculate the sum of the absolute value of the slip rates. More...
 
class  SwellingAndPhaseChangeDeformationJacobian
 
class  SWR4
 The symmetric fourth order tensor, with symmetry in the first two dimensionss and skew-symmetry in the second two. More...
 
class  SymmetricHermiteInterpolation
 
class  SymmetryFromOrbifold
 Provide the correct symmetry operators for a given crystal class. More...
 
class  Tensor
 
class  TensorBase
 NEML2's enhanced tensor type. More...
 
struct  TensorCache
 
class  TensorLoader
 
struct  TensorName
 The name of a tensor object that can be referenced in the input files. More...
 
struct  TensorTypeEnum
 
class  TensorValue
 Concrete definition of tensor value. More...
 
class  TensorValueBase
 The base class to allow us to set up a polymorphic container of Tensors. The concrete definitions will be templated on the actual tensor type. More...
 
class  ThermalDeformationJacobian
 
class  ThermalEigenstrain
 
struct  TimedSection
 
struct  TraceableSize
 Traceable size. More...
 
struct  TraceableTensorShape
 Traceable tensor shape. More...
 
struct  TracerPrivilege
 A passkey to allow trusted classes to perform raw assignment to variables and parameters. More...
 
struct  TraceWriter
 
class  TracingInterface
 
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  TwoStageThermalAnnealing
 
class  UserTensorBase
 
class  UserTensorTmpl
 Create raw tensor of type T from the input file. More...
 
class  ValueMapLoader
 
class  VanGenuchtenCapillaryPressure
 van Genuchten correlation for capillary pressure More...
 
class  Variable
 Concrete definition of a variable. More...
 
class  VariableBase
 Base class of variable. More...
 
class  VariableRate
 
class  VariableStore
 
class  Vec
 3-vector. More...
 
class  VecBase
 Base class 3-vector. More...
 
class  VectorAssembler
 Helper to assemble a vector of tensors into a single tensor and also to split a tensor into a map of tensors. 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  VolumeAdjustDeformationGradient
 Calculate the volume-adjusted deformation gradient. More...
 
class  VolumeChangeEigenstrain
 Define the volume change eigenstrain. More...
 
class  WFFR4
 The fourth order tensor with skew symmetry in the first two dimensions. More...
 
class  WorkDispatcher
 The work dispatcher who dispatches work to a worker and reduces the results. More...
 
class  WorkGenerator
 
class  WorkScheduler
 Scheduler for work dispatching. More...
 
class  WR2
 A skew-symmetric second order tensor, 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 symmetric fourth order tensor, with skew symmetry in the first two dimensionss and symmetry in the second two. More...
 
class  WWR4
 The symmetric fourth order tensor, with skew symmetry in the first two dimensions and last two dimensions. More...
 
class  YieldFunction
 

Typedefs

using ScalarBackwardEulerTimeIntegration = BackwardEulerTimeIntegration<Scalar>
 
using VecBackwardEulerTimeIntegration = BackwardEulerTimeIntegration<Vec>
 
using SR2BackwardEulerTimeIntegration = BackwardEulerTimeIntegration<SR2>
 
using R2BackwardEulerTimeIntegration = BackwardEulerTimeIntegration<R2>
 
using ScalarBilinearInterpolation = BilinearInterpolation<Scalar>
 
using VecBilinearInterpolation = BilinearInterpolation<Vec>
 
using SR2BilinearInterpolation = BilinearInterpolation<SR2>
 
using R2Determinant = Determinant<R2>
 
using SR2Determinant = Determinant<SR2>
 
using ScalarForwardEulerTimeIntegration = ForwardEulerTimeIntegration<Scalar>
 
using VecForwardEulerTimeIntegration = ForwardEulerTimeIntegration<Vec>
 
using SR2ForwardEulerTimeIntegration = ForwardEulerTimeIntegration<SR2>
 
using ScalarIncrementToRate = IncrementToRate<Scalar>
 
using VecIncrementToRate = IncrementToRate<Vec>
 
using SR2IncrementToRate = IncrementToRate<SR2>
 
using R2IncrementToRate = IncrementToRate<R2>
 
using ScalarLinearCombination = LinearCombination<Scalar>
 
using VecLinearCombination = LinearCombination<Vec>
 
using SR2LinearCombination = LinearCombination<SR2>
 
using R2LinearCombination = LinearCombination<R2>
 
using ScalarLinearInterpolation = LinearInterpolation<Scalar>
 
using VecLinearInterpolation = LinearInterpolation<Vec>
 
using SR2LinearInterpolation = LinearInterpolation<SR2>
 
using ScalarTwoStageThermalAnnealing = TwoStageThermalAnnealing<Scalar>
 
using SR2TwoStageThermalAnnealing = TwoStageThermalAnnealing<SR2>
 
using ScalarVariableRate = VariableRate<Scalar>
 
using VecVariableRate = VariableRate<Vec>
 
using SR2VariableRate = VariableRate<SR2>
 
using VariableName = LabeledAxisAccessor
 
using SubaxisName = LabeledAxisAccessor
 
using BuildPtr = std::shared_ptr<NEML2Object> (*)(const OptionSet & options)
 
using ATensor = at::Tensor
 
using CScalar = c10::Scalar
 
template<typename T , unsigned N>
using SmallVector = c10::SmallVector<T, N>
 
template<typename T >
using ArrayRef = c10::ArrayRef<T>
 
using TensorOptions = c10::TensorOptions
 
using Dtype = c10::ScalarType
 
using DeviceIndex = c10::DeviceIndex
 
using Device = c10::Device
 
using Size = int64_t
 
using TensorShape = c10::SmallVector<Size, 8>
 
using TensorShapeRef = c10::ArrayRef<Size>
 
using ValueMap = std::map<LabeledAxisAccessor, Tensor>
 
using DerivMap = std::map<LabeledAxisAccessor, ValueMap>
 
using SecDerivMap = std::map<LabeledAxisAccessor, DerivMap>
 
template<class Seq1 , class Seq2 >
using concat_seq_t = typename concat_seq<Seq1, Seq2>::type
 
template<class Derived , class Seq >
using DTensorBase_t = typename DTensorBase<Derived, Seq>::type
 
using TensorDataContainer = torch::detail::TensorDataContainer
 
using TensorList = c10::ArrayRef<neml2::Tensor>
 

Enumerations

enum class  FType : int8_t {
  NONE = 0 , INPUT = 1 << 0 , OUTPUT = 1 << 1 , PARAMETER = 1 << 2 ,
  BUFFER = 1 << 3
}
 Role in a function definition. More...
 
enum class  ElasticConstant : std::uint8_t {
  INVALID = 0 , LAME_LAMBDA = 1 , BULK_MODULUS = 2 , SHEAR_MODULUS = 3 ,
  YOUNGS_MODULUS = 4 , POISSONS_RATIO = 5 , P_WAVE_MODULUS = 6 , CUBIC_C1 = 7 ,
  CUBIC_C2 = 8 , CUBIC_C3 = 9
}
 
enum class  TensorType : int8_t { FOR_ALL_TENSORBASE_COMMA =(_tensor_type_enum) , kUknown }
 

Functions

DiagnosticStatecurrent_diagnostic_state ()
 Get the current diagnostic state.
 
std::vector< Diagnosis > & current_diagnoses ()
 Get the current diagnoses.
 
std::vector< Diagnosisdiagnose (const DiagnosticsInterface &)
 A helper function to diagnose common setup errors.
 
void diagnose_and_throw (const DiagnosticsInterface &)
 A helper function to diagnose common setup errors and throw an exception if any errors are found.
 
std::ostream & operator<< (std::ostream &os, const EnumSelection &es)
 
std::stringstream & operator>> (std::stringstream &ss, EnumSelection &es)
 
std::unique_ptr< Factoryload_input (const std::filesystem::path &path, const std::string &additional_input="")
 A convenient function to parse all options from an input file.
 
std::map< std::string, std::map< std::string, unsigned long > > & timed_sections ()
 
std::ostream & operator<< (std::ostream &os, const InputFile &p)
 
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)
 
std::vector< std::string > reserved_subaxis_names ()
 
 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 "/".
 
std::ostream & operator<< (std::ostream &os, const MultiEnumSelection &es)
 
std::stringstream & operator>> (std::stringstream &ss, MultiEnumSelection &es)
 
 FOR_ALL_TENSORBASE (NEML2OBJECT_INSTANTIATE)
 
 FOR_ALL_TENSORBASE (INSTANTIATE_TENSORNAME)
 
std::ostream & operator<< (std::ostream &os, const OptionBase &opt)
 
bool options_compatible (const OptionSet &opts, const OptionSet &additional_opts)
 
std::ostream & operator<< (std::ostream &os, const OptionSet &p)
 
 FOR_ALL_TENSORBASE (INSTANTIATE)
 
std::unordered_map< std::string, std::unique_ptr< TraceWriter > > & event_trace_writers ()
 All trace writers.
 
DerivMap derivmap_cat_reduce (std::vector< DerivMap > &&results, Size dynamic_dim)
 Concatenate the tensors in the DerivMap along the batch dimension.
 
DerivMap derivmap_move_device (DerivMap &&x, Device device)
 Move all tensors in a DerivMap to a device.
 
DerivMap derivmap_no_operation (DerivMap &&x)
 No operation.
 
 register_NEML2_object (SimpleMPIScheduler)
 
 register_NEML2_object (SimpleScheduler)
 
 register_NEML2_object (StaticHybridScheduler)
 
ValueMap valuemap_cat_reduce (const std::vector< ValueMap > &results, Size dynamic_dim)
 Concatenate the tensors in the ValueMap along the batch dimension.
 
ValueMap valuemap_move_device (ValueMap &&x, Device device)
 Move all tensors in a ValueMap to a device.
 
ValueMap valuemap_no_operation (ValueMap &&x)
 No operation.
 
 register_NEML2_object (LDISolidMechanicsDriver)
 
 register_NEML2_object (SDTSolidMechanicsDriver)
 
 register_NEML2_object (TransientDriver)
 
double machine_precision (Dtype dtype)
 
std::ostream & operator<< (std::ostream &os, FType f)
 
 register_NEML2_object (ArrheniusParameter)
 
 register_NEML2_object (ScalarBackwardEulerTimeIntegration)
 
 register_NEML2_object (VecBackwardEulerTimeIntegration)
 
 register_NEML2_object (SR2BackwardEulerTimeIntegration)
 
 register_NEML2_object (R2BackwardEulerTimeIntegration)
 
 register_NEML2_object (ScalarBilinearInterpolation)
 
 register_NEML2_object (VecBilinearInterpolation)
 
 register_NEML2_object (SR2BilinearInterpolation)
 
 FOR_ALL_TENSORBASE (BUFFERSTORE_INTANTIATE_TENSORBASE)
 
 register_NEML2_object (AvramiErofeevNucleation)
 
 register_NEML2_object (ContractingGeometry)
 
 register_NEML2_object (CylindricalChannelGeometry)
 
 register_NEML2_object (DiffusionLimitedReaction)
 
 register_NEML2_object (EffectiveVolume)
 
 register_NEML2_object (ComposedModel)
 
 FOR_ALL_PRIMITIVETENSOR (REGISTER_CONSTANTPARAMETER)
 
 FOR_ALL_PRIMITIVETENSOR (REGISTER_COPYVARIABLE)
 
 register_NEML2_object (R2Determinant)
 
 register_NEML2_object (SR2Determinant)
 
 FOR_ALL_PRIMITIVETENSOR (REGISTER_DYNAMICMEAN)
 
 FOR_ALL_PRIMITIVETENSOR (REGISTER_DYNAMICSUM)
 
 register_NEML2_object (FischerBurmeister)
 
 register_NEML2_object (ScalarForwardEulerTimeIntegration)
 
 register_NEML2_object (VecForwardEulerTimeIntegration)
 
 register_NEML2_object (SR2ForwardEulerTimeIntegration)
 
 register_NEML2_object (HermiteSmoothStep)
 
 register_NEML2_object (ImplicitUpdate)
 
 register_NEML2_object (ScalarIncrementToRate)
 
 register_NEML2_object (VecIncrementToRate)
 
 register_NEML2_object (SR2IncrementToRate)
 
 register_NEML2_object (R2IncrementToRate)
 
 FOR_ALL_PRIMITIVETENSOR (REGISTER)
 
 FOR_ALL_PRIMITIVETENSOR (REGISTER_INTERMEDIATEMEAN)
 
 FOR_ALL_PRIMITIVETENSOR (REGISTER_INTERMEDIATESUM)
 
std::tuple< Scalar, Scalar, Scalarparametric_coordinates (const Scalar &X, const Scalar &x)
 
 FOR_ALL_PRIMITIVETENSOR (INSTANTIATE)
 
 register_NEML2_object (ScalarLinearCombination)
 
 register_NEML2_object (VecLinearCombination)
 
 register_NEML2_object (SR2LinearCombination)
 
 register_NEML2_object (R2LinearCombination)
 
 register_NEML2_object (ScalarLinearInterpolation)
 
 register_NEML2_object (VecLinearInterpolation)
 
 register_NEML2_object (SR2LinearInterpolation)
 
 register_NEML2_object (MixedControlSetup)
 
std::shared_ptr< Modelload_model (const std::filesystem::path &path, const std::string &mname)
 A convenient function to load an input file and get a model.
 
std::ostream & operator<< (std::ostream &os, const Model &model)
 
template<typename T >
const T & resolve_tensor_name (const TensorName< T > &tn, Model *caller, const std::string &pname)
 
 FOR_ALL_TENSORBASE (PARAMETERSTORE_INTANTIATE_TENSORBASE)
 
 FOR_ALL_PRIMITIVETENSOR (PARAMETERSTORE_INTANTIATE_PRIMITIVETENSOR)
 
 register_NEML2_object (CrackGeometricFunctionAT1)
 
 register_NEML2_object (CrackGeometricFunctionAT2)
 
 register_NEML2_object (LinearIsotropicStrainEnergyDensity)
 
 register_NEML2_object (PowerDegradationFunction)
 
 register_NEML2_object (RationalDegradationFunction)
 
 register_NEML2_object (AdvectiveStress)
 
 register_NEML2_object (BrooksCoreyCapillaryPressure)
 
 register_NEML2_object (EffectiveSaturation)
 
 register_NEML2_object (ExponentialLawPermeability)
 
 register_NEML2_object (KozenyCarmanPermeability)
 
 register_NEML2_object (PowerLawPermeability)
 
 register_NEML2_object (VanGenuchtenCapillaryPressure)
 
 register_NEML2_object (R2Multiplication)
 
 register_NEML2_object (R2toSR2)
 
 register_NEML2_object (R2toWR2)
 
 FOR_ALL_PRIMITIVETENSOR (INSTANTIATE_REDUCTION)
 
 register_NEML2_object (RotationMatrix)
 
 register_NEML2_object (ScalarMultiplication)
 
 register_NEML2_object (ScalarToDiagonalSR2)
 
 register_NEML2_object (AssociativeIsotropicPlasticHardening)
 
 register_NEML2_object (AssociativeJ2FlowDirection)
 
 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 (PlasticSpatialVelocityGradient)
 
 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 (CubicElasticityTensor)
 
std::string name (ElasticConstant p)
 
 register_NEML2_object (GeneralElasticity)
 
 register_NEML2_object (GreenLagrangeStrain)
 
 register_NEML2_object (IsotropicElasticityTensor)
 
 register_NEML2_object (LinearIsotropicElasticity)
 
 register_NEML2_object (FredrickArmstrongPlasticHardening)
 
 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 (KocksMeckingIntercept)
 
 register_NEML2_object (KocksMeckingRateSensitivity)
 
 register_NEML2_object (KocksMeckingYieldStress)
 
 register_NEML2_object (LinearIsotropicElasticJ2TrialStressUpdate)
 
 register_NEML2_object (LinearIsotropicHardening)
 
 register_NEML2_object (LinearKinematicHardening)
 
 register_NEML2_object (Normality)
 
 register_NEML2_object (OlevskySinteringStress)
 
 register_NEML2_object (PerzynaPlasticFlowRate)
 
 register_NEML2_object (PhaseTransformationEigenstrain)
 
 register_NEML2_object (PowerLawIsotropicHardeningStaticRecovery)
 
 register_NEML2_object (PowerLawKinematicHardeningStaticRecovery)
 
 register_NEML2_object (RateIndependentPlasticFlowConstraint)
 
 register_NEML2_object (SlopeSaturationVoceIsotropicHardening)
 
 register_NEML2_object (SwellingAndPhaseChangeDeformationJacobian)
 
 register_NEML2_object (ThermalDeformationJacobian)
 
 register_NEML2_object (ThermalEigenstrain)
 
 register_NEML2_object (ScalarTwoStageThermalAnnealing)
 
 register_NEML2_object (SR2TwoStageThermalAnnealing)
 
 register_NEML2_object (VoceIsotropicHardening)
 
 register_NEML2_object (VolumeAdjustDeformationGradient)
 
 register_NEML2_object (VolumeChangeEigenstrain)
 
 register_NEML2_object (YieldFunction)
 
 register_NEML2_object (SR2Invariant)
 
 register_NEML2_object (SR2toR2)
 
 register_NEML2_object (SymmetricHermiteInterpolation)
 
 FOR_ALL_PRIMITIVETENSOR (INSTANTIATE_VARIABLE)
 
 register_NEML2_object (ScalarVariableRate)
 
 register_NEML2_object (VecVariableRate)
 
 register_NEML2_object (SR2VariableRate)
 
 FOR_ALL_PRIMITIVETENSOR (INSTANTIATE_DECLARE_INPUT_VARIABLE)
 
 FOR_ALL_PRIMITIVETENSOR (INSTANTIATE_DECLARE_OUTPUT_VARIABLE)
 
 FOR_ALL_PRIMITIVETENSOR (INSTANTIATE_CREATE_VARIABLE)
 
 register_NEML2_object (WR2ExplicitExponentialTimeIntegration)
 
 register_NEML2_object (WR2ImplicitExponentialTimeIntegration)
 
 register_NEML2_object (Newton)
 
 register_NEML2_object (NewtonWithLineSearch)
 
 register_NEML2_object (NewtonWithTrustRegion)
 
bool & currently_solving_nonlinear_system ()
 
 FOR_ALL_TENSORBASE (DEFINE_ABS)
 
 FOR_ALL_TENSORBASE (DEFINE_ARCCOS)
 
 FOR_ALL_TENSORBASE (DEFINE_ARGMAX)
 
 FOR_ALL_TENSORBASE (DEFINE_ARGMIN)
 
 FOR_ALL_TENSORBASE (DEFINE_ARCSIN)
 
 FOR_ALL_TENSORBASE (DEFINE_ARCTAN)
 
 FOR_ALL_TENSORBASE (DEFINE_CAT)
 
Tensor base_cat (const std::vector< Tensor > &tensors, Size d)
 
 FOR_ALL_TENSORBASE (DEFINE_CBRT)
 
 FOR_ALL_TENSORBASE (DEFINE_CLAMP)
 
 FOR_ALL_TENSORBASE (DEFINE_CLIP)
 
 FOR_ALL_TENSORBASE (DEFINE_COS)
 
 FOR_ALL_TENSORBASE (DEFINE_COSH)
 
Vec cross (const Vec &u, const Vec &v)
 
 FOR_ALL_TENSORBASE (DEFINE_DEG2RAD)
 
 FOR_ALL_TENSORBASE (DEFINE_DIAGONALIZE)
 
Tensor base_diagonalize (const Tensor &a, Size d)
 
 FOR_ALL_TENSORBASE (DEFINE_DIFF)
 
Tensor base_diff (const Tensor &a, Size n, Size dim)
 
Tensor einsum (c10::string_view equation, TensorList tensors)
 Einstein summation along base dimensions.
 
 FOR_ALL_TENSORBASE (DEFINE_EXP)
 
 FOR_ALL_TENSORBASE (DEFINE_FMOD)
 
template<std::size_t N>
Tensor from_assembly (const Tensor &from, const std::array< TensorShapeRef, N > &intmd_shapes, const std::array< TensorShapeRef, N > &base_shapes, const std::string &debug_name)
 
template Tensor from_assembly< 1 > (const Tensor &, const std::array< TensorShapeRef, 1 > &, const std::array< TensorShapeRef, 1 > &, const std::string &)
 
template Tensor from_assembly< 2 > (const Tensor &, const std::array< TensorShapeRef, 2 > &, const std::array< TensorShapeRef, 2 > &, const std::string &)
 
template Tensor from_assembly< 3 > (const Tensor &, const std::array< TensorShapeRef, 3 > &, const std::array< TensorShapeRef, 3 > &, const std::string &)
 
 FOR_ALL_TENSORBASE (DEFINE_GCD)
 
 FOR_ALL_TENSORBASE (DEFINE_HEAVISIDE)
 
Scalar inner (const Tensor &a, const Tensor &b)
 Inner product.
 
Tensor inv (const Tensor &)
 Inverse of a second order or fourth order tensor.
 
Rot inv (const Rot &)
 Inverse of a rotation (MRP)
 
std::vector< Tensorjacrev (const Tensor &y, const std::vector< Tensor > &xs, bool retain_graph=false, bool create_graph=false, bool allow_unused=false)
 Use automatic differentiation (AD) to calculate the derivatives of a Tensor w.r.t. another Tensor.
 
Tensor jacrev (const Tensor &y, const Tensor &x, bool retain_graph=false, bool create_graph=false, bool allow_unused=false)
 Similar to the other jacrev, but for a single input.
 
 FOR_ALL_TENSORBASE (DEFINE_LINSPACE)
 
 FOR_ALL_TENSORBASE (DEFINE_LOG)
 
 FOR_ALL_TENSORBASE (DEFINE_LOG10)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_LOGICAL_SELF)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_LOGICAL_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_LOGICAL_SYM_CSCALAR)
 
Tensor operator> (const Tensor &a, const Tensor &b)
 
Tensor operator< (const Tensor &a, const Tensor &b)
 
Tensor operator>= (const Tensor &a, const Tensor &b)
 
Tensor operator<= (const Tensor &a, const Tensor &b)
 
Tensor operator&& (const Tensor &a, const Tensor &b)
 
Tensor operator|| (const Tensor &a, const Tensor &b)
 
Tensor operator== (const Tensor &a, const Tensor &b)
 
Tensor operator!= (const Tensor &a, const Tensor &b)
 
Tensor gt (const Tensor &a, const Tensor &b)
 
Tensor lt (const Tensor &a, const Tensor &b)
 
Tensor ge (const Tensor &a, const Tensor &b)
 
Tensor le (const Tensor &a, const Tensor &b)
 
Tensor logical_and (const Tensor &a, const Tensor &b)
 
Tensor logical_or (const Tensor &a, const Tensor &b)
 
Tensor logical_xor (const Tensor &a, const Tensor &b)
 
Tensor eq (const Tensor &a, const Tensor &b)
 
Tensor ne (const Tensor &a, const Tensor &b)
 
Tensor operator! (const Tensor &a)
 
Tensor logical_not (const Tensor &a)
 
Tensor operator> (const Tensor &a, const Scalar &b)
 
Tensor operator> (const Scalar &a, const Tensor &b)
 
Tensor operator< (const Tensor &a, const Scalar &b)
 
Tensor operator< (const Scalar &a, const Tensor &b)
 
Tensor operator>= (const Tensor &a, const Scalar &b)
 
Tensor operator>= (const Scalar &a, const Tensor &b)
 
Tensor operator<= (const Tensor &a, const Scalar &b)
 
Tensor operator<= (const Scalar &a, const Tensor &b)
 
Tensor operator&& (const Tensor &a, const Scalar &b)
 
Tensor operator&& (const Scalar &a, const Tensor &b)
 
Tensor operator|| (const Tensor &a, const Scalar &b)
 
Tensor operator|| (const Scalar &a, const Tensor &b)
 
Tensor operator== (const Tensor &a, const Scalar &b)
 
Tensor operator== (const Scalar &a, const Tensor &b)
 
Tensor operator!= (const Tensor &a, const Scalar &b)
 
Tensor operator!= (const Scalar &a, const Tensor &b)
 
Tensor gt (const Tensor &a, const Scalar &b)
 
Tensor gt (const Scalar &a, const Tensor &b)
 
Tensor lt (const Tensor &a, const Scalar &b)
 
Tensor lt (const Scalar &a, const Tensor &b)
 
Tensor ge (const Tensor &a, const Scalar &b)
 
Tensor ge (const Scalar &a, const Tensor &b)
 
Tensor le (const Tensor &a, const Scalar &b)
 
Tensor le (const Scalar &a, const Tensor &b)
 
Tensor logical_and (const Tensor &a, const Scalar &b)
 
Tensor logical_and (const Scalar &a, const Tensor &b)
 
Tensor logical_or (const Tensor &a, const Scalar &b)
 
Tensor logical_or (const Scalar &a, const Tensor &b)
 
Tensor logical_xor (const Tensor &a, const Scalar &b)
 
Tensor logical_xor (const Scalar &a, const Tensor &b)
 
Tensor eq (const Tensor &a, const Scalar &b)
 
Tensor eq (const Scalar &a, const Tensor &b)
 
Tensor ne (const Tensor &a, const Scalar &b)
 
Tensor ne (const Scalar &a, const Tensor &b)
 
Tensor operator> (const Tensor &a, const CScalar &b)
 
Tensor operator> (const CScalar &a, const Tensor &b)
 
Tensor operator< (const Tensor &a, const CScalar &b)
 
Tensor operator< (const CScalar &a, const Tensor &b)
 
Tensor operator>= (const Tensor &a, const CScalar &b)
 
Tensor operator>= (const CScalar &a, const Tensor &b)
 
Tensor operator<= (const Tensor &a, const CScalar &b)
 
Tensor operator<= (const CScalar &a, const Tensor &b)
 
Tensor operator&& (const Tensor &a, const CScalar &b)
 
Tensor operator&& (const CScalar &a, const Tensor &b)
 
Tensor operator|| (const Tensor &a, const CScalar &b)
 
Tensor operator|| (const CScalar &a, const Tensor &b)
 
Tensor operator== (const Tensor &a, const CScalar &b)
 
Tensor operator== (const CScalar &a, const Tensor &b)
 
Tensor operator!= (const Tensor &a, const CScalar &b)
 
Tensor operator!= (const CScalar &a, const Tensor &b)
 
Tensor gt (const Tensor &a, const CScalar &b)
 
Tensor gt (const CScalar &a, const Tensor &b)
 
Tensor lt (const Tensor &a, const CScalar &b)
 
Tensor lt (const CScalar &a, const Tensor &b)
 
Tensor ge (const Tensor &a, const CScalar &b)
 
Tensor ge (const CScalar &a, const Tensor &b)
 
Tensor le (const Tensor &a, const CScalar &b)
 
Tensor le (const CScalar &a, const Tensor &b)
 
Tensor logical_and (const Tensor &a, const CScalar &b)
 
Tensor logical_and (const CScalar &a, const Tensor &b)
 
Tensor logical_or (const Tensor &a, const CScalar &b)
 
Tensor logical_or (const CScalar &a, const Tensor &b)
 
Tensor logical_xor (const Tensor &a, const CScalar &b)
 
Tensor logical_xor (const CScalar &a, const Tensor &b)
 
Tensor eq (const Tensor &a, const CScalar &b)
 
Tensor eq (const CScalar &a, const Tensor &b)
 
Tensor ne (const Tensor &a, const CScalar &b)
 
Tensor ne (const CScalar &a, const Tensor &b)
 
Scalar operator> (const Scalar &a, const Scalar &b)
 
Scalar operator< (const Scalar &a, const Scalar &b)
 
Scalar operator>= (const Scalar &a, const Scalar &b)
 
Scalar operator<= (const Scalar &a, const Scalar &b)
 
Scalar operator&& (const Scalar &a, const Scalar &b)
 
Scalar operator|| (const Scalar &a, const Scalar &b)
 
Scalar operator== (const Scalar &a, const Scalar &b)
 
Scalar operator!= (const Scalar &a, const Scalar &b)
 
Scalar gt (const Scalar &a, const Scalar &b)
 
Scalar lt (const Scalar &a, const Scalar &b)
 
Scalar ge (const Scalar &a, const Scalar &b)
 
Scalar le (const Scalar &a, const Scalar &b)
 
Scalar logical_and (const Scalar &a, const Scalar &b)
 
Scalar logical_or (const Scalar &a, const Scalar &b)
 
Scalar logical_xor (const Scalar &a, const Scalar &b)
 
Scalar eq (const Scalar &a, const Scalar &b)
 
Scalar ne (const Scalar &a, const Scalar &b)
 
Scalar operator! (const Scalar &a)
 
Scalar logical_not (const Scalar &a)
 
Scalar operator> (const Scalar &a, const CScalar &b)
 
Scalar operator> (const CScalar &a, const Scalar &b)
 
Scalar operator< (const Scalar &a, const CScalar &b)
 
Scalar operator< (const CScalar &a, const Scalar &b)
 
Scalar operator>= (const Scalar &a, const CScalar &b)
 
Scalar operator>= (const CScalar &a, const Scalar &b)
 
Scalar operator<= (const Scalar &a, const CScalar &b)
 
Scalar operator<= (const CScalar &a, const Scalar &b)
 
Scalar operator&& (const Scalar &a, const CScalar &b)
 
Scalar operator&& (const CScalar &a, const Scalar &b)
 
Scalar operator|| (const Scalar &a, const CScalar &b)
 
Scalar operator|| (const CScalar &a, const Scalar &b)
 
Scalar operator== (const Scalar &a, const CScalar &b)
 
Scalar operator== (const CScalar &a, const Scalar &b)
 
Scalar operator!= (const Scalar &a, const CScalar &b)
 
Scalar operator!= (const CScalar &a, const Scalar &b)
 
Scalar gt (const Scalar &a, const CScalar &b)
 
Scalar gt (const CScalar &a, const Scalar &b)
 
Scalar lt (const Scalar &a, const CScalar &b)
 
Scalar lt (const CScalar &a, const Scalar &b)
 
Scalar ge (const Scalar &a, const CScalar &b)
 
Scalar ge (const CScalar &a, const Scalar &b)
 
Scalar le (const Scalar &a, const CScalar &b)
 
Scalar le (const CScalar &a, const Scalar &b)
 
Scalar logical_and (const Scalar &a, const CScalar &b)
 
Scalar logical_and (const CScalar &a, const Scalar &b)
 
Scalar logical_or (const Scalar &a, const CScalar &b)
 
Scalar logical_or (const CScalar &a, const Scalar &b)
 
Scalar logical_xor (const Scalar &a, const CScalar &b)
 
Scalar logical_xor (const CScalar &a, const Scalar &b)
 
Scalar eq (const Scalar &a, const CScalar &b)
 
Scalar eq (const CScalar &a, const Scalar &b)
 
Scalar ne (const Scalar &a, const CScalar &b)
 
Scalar ne (const CScalar &a, const Scalar &b)
 
 FOR_ALL_TENSORBASE (DEFINE_LOGSPACE)
 
 FOR_ALL_TENSORBASE (DEFINE_MACAULAY)
 
 FOR_ALL_TENSORBASE (DEFINE_MEAN)
 
Tensor base_mean (const Tensor &a, Size d)
 
 FOR_ALL_TENSORBASE (DEFINE_MINIMUM)
 
Tensor mm (const Tensor &a, const Tensor &b)
 Batched matrix-matrix product.
 
Tensor mv (const Tensor &a, const Tensor &v)
 Batched matrix-vector product.
 
Scalar norm (const Tensor &a, const std::optional< CScalar > &eps=std::nullopt)
 Frobenius norm of a tensor.
 
Scalar norm_sq (const Tensor &a)
 Squared Frobenius norm of a tensor.
 
 FOR_ALL_TENSORBASE (DEFINE_NORMALIZE_GCD)
 
Tensor operator+ (const Tensor &a, const Tensor &b)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_ADD_SELF)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_ADD_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_ADD_SYM_CSCALAR)
 
Tensor operator+ (const Tensor &a, const Scalar &b)
 
Tensor operator+ (const Scalar &a, const Tensor &b)
 
Tensor operator+ (const Tensor &a, const CScalar &b)
 
Tensor operator+ (const CScalar &a, const Tensor &b)
 
Scalar operator+ (const Scalar &a, const Scalar &b)
 
Scalar operator+ (const Scalar &a, const CScalar &b)
 
Scalar operator+ (const CScalar &a, const Scalar &b)
 
Tensor operator- (const Tensor &a, const Tensor &b)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_SUB_SELF)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_SUB_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_SUB_SYM_CSCALAR)
 
Tensor operator- (const Tensor &a, const Scalar &b)
 
Tensor operator- (const Scalar &a, const Tensor &b)
 
Tensor operator- (const Tensor &a, const CScalar &b)
 
Tensor operator- (const CScalar &a, const Tensor &b)
 
Scalar operator- (const Scalar &a, const Scalar &b)
 
Scalar operator- (const Scalar &a, const CScalar &b)
 
Scalar operator- (const CScalar &a, const Scalar &b)
 
Tensor operator* (const Tensor &a, const Tensor &b)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_MUL_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_MUL_SYM_CSCALAR)
 
Tensor operator* (const Tensor &a, const Scalar &b)
 
Tensor operator* (const Scalar &a, const Tensor &b)
 
Tensor operator* (const Tensor &a, const CScalar &b)
 
Tensor operator* (const CScalar &a, const Tensor &b)
 
Scalar operator* (const Scalar &a, const Scalar &b)
 
Scalar operator* (const Scalar &a, const CScalar &b)
 
Scalar operator* (const CScalar &a, const Scalar &b)
 
Tensor operator/ (const Tensor &a, const Tensor &b)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_DIV_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_DIV_SYM_CSCALAR)
 
Tensor operator/ (const Tensor &a, const Scalar &b)
 
Tensor operator/ (const Scalar &a, const Tensor &b)
 
Tensor operator/ (const Tensor &a, const CScalar &b)
 
Tensor operator/ (const CScalar &a, const Tensor &b)
 
Scalar operator/ (const Scalar &a, const Scalar &b)
 
Scalar operator/ (const Scalar &a, const CScalar &b)
 
Scalar operator/ (const CScalar &a, const Scalar &b)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_ADD_EQ)
 
Tensoroperator+= (Tensor &a, const CScalar &b)
 
Scalaroperator+= (Scalar &a, const CScalar &b)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_SUB_EQ)
 
Tensoroperator-= (Tensor &a, const CScalar &b)
 
Scalaroperator-= (Scalar &a, const CScalar &b)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_MUL_EQ)
 
Tensoroperator*= (Tensor &a, const CScalar &b)
 
Scalaroperator*= (Scalar &a, const CScalar &b)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DEFINE_DIV_EQ)
 
Tensoroperator/= (Tensor &a, const CScalar &b)
 
Scalaroperator/= (Scalar &a, const CScalar &b)
 
 FOR_ALL_NONSCALAR_TENSORBASE (DEFINE_POW)
 
Scalar pow (const Scalar &a, const CScalar &n)
 
Scalar pow (const Scalar &a, const Scalar &n)
 
Scalar pow (const CScalar &a, const Scalar &n)
 
Tensor pow (const Tensor &a, const Tensor &n)
 Element-wise pow.
 
Tensor pow (const CScalar &a, const Tensor &n)
 Element-wise pow.
 
 FOR_ALL_TENSORBASE (DEFINE_SIGN)
 
 FOR_ALL_TENSORBASE (DEFINE_SIN)
 
 FOR_ALL_TENSORBASE (DEFINE_SINH)
 
 FOR_ALL_TENSORBASE (DEFINE_SQRT)
 
 FOR_ALL_TENSORBASE (DEFINE_STACK)
 
Tensor base_stack (const std::vector< Tensor > &tensors, Size d)
 
 FOR_ALL_TENSORBASE (DEFINE_SUM)
 
Tensor base_sum (const Tensor &a, Size d, bool keepdim)
 
 FOR_ALL_TENSORBASE (DEFINE_SUM_TO_SIZE)
 
Tensor base_sum_to_size (const Tensor &a, TensorShapeRef shape)
 
Tensor full_to_mandel (const Tensor &full, Size dim=0)
 Convert a Tensor from full notation to Mandel notation.
 
Tensor mandel_to_full (const Tensor &mandel, Size dim=0)
 Convert a Tensor from Mandel notation to full notation.
 
Tensor full_to_skew (const Tensor &full, Size dim=0)
 Convert a Tensor from full notation to skew vector notation.
 
Tensor skew_to_full (const Tensor &skew, Size dim=0)
 Convert a Tensor from skew vector notation to full notation.
 
 FOR_ALL_TENSORBASE (DEFINE_TAN)
 
 FOR_ALL_TENSORBASE (DEFINE_TANH)
 
template<std::size_t N>
Tensor to_assembly (const Tensor &from, const std::array< TensorShapeRef, N > &intmd_shapes, const std::array< TensorShapeRef, N > &base_shapes, const std::string &debug_name)
 
template Tensor to_assembly< 1 > (const Tensor &, const std::array< TensorShapeRef, 1 > &, const std::array< TensorShapeRef, 1 > &, const std::string &)
 
template Tensor to_assembly< 2 > (const Tensor &, const std::array< TensorShapeRef, 2 > &, const std::array< TensorShapeRef, 2 > &, const std::string &)
 
template Tensor to_assembly< 3 > (const Tensor &, const std::array< TensorShapeRef, 3 > &, const std::array< TensorShapeRef, 3 > &, const std::string &)
 
 FOR_ALL_TENSORBASE (DEFINE_UNIT)
 
Scalar vdot (const Tensor &u, const Tensor &v)
 Vector-vector dot product.
 
 FOR_ALL_TENSORBASE (DEFINE_WHERE)
 
void neml_assert_tracing ()
 Assert that we are currently tracing.
 
void neml_assert_not_tracing ()
 Assert that we are currently NOT tracing.
 
void neml_assert_tracing_dbg ()
 Assert that we are currently tracing (only effective in debug mode)
 
void neml_assert_not_tracing_dbg ()
 Assert that we are currently NOT tracing (only effective in debug mode)
 
R2 operator* (const R2 &, const R2 &)
 matrix-matrix product
 
Vec operator* (const R2 &, const Vec &)
 matrix-vector product
 
Rot operator* (const Rot &r1, const Rot &r2)
 Composition of rotations r3 = r1 * r2 (r2 first, then r1)
 
SSR4 operator* (const SSR4 &a, const SSR4 &b)
 
SR2 operator* (const SSR4 &a, const SR2 &b)
 
 FOR_ALL_TENSORBASE (INSTANTIATE_TENSORBASE)
 
std::ostream & operator<< (std::ostream &os, const TensorType &t)
 
 FOR_ALL_TENSORBASE (INSTANTIATE_TENSORVALUE)
 
std::ostream & operator<< (std::ostream &os, const TraceableSize &s)
 Streaming operator.
 
R2 transform_from_quaternion (const Quaternion &q)
 Construct from quaternions, useful for comparison to old NEML.
 
R2 identity_transform (const 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 TensorOptions &options=default_tensor_options())
 An inversion center.
 
 FOR_ALL_VECBASE (VECBASE_INSTANTIATE)
 
 FOR_ALL_TENSORBASE (INSTANTIATE_FACTORYMETHODBASE)
 
 register_NEML2_object (FillR2)
 
 register_NEML2_object (FillRot)
 
 register_NEML2_object (FillSR2)
 
 register_NEML2_object (FillWR2)
 
 FOR_ALL_PRIMITIVETENSOR (REGISTER_FROMTORCHSCRIPT)
 
 FOR_ALL_TENSORBASE (FULLTENSOR_REGISTER)
 
 register_NEML2_object (IdentityTensor)
 
 FOR_ALL_TENSORBASE (LINSPACETENSOR_REGISTER)
 
 FOR_ALL_TENSORBASE (LOGSPACETENSOR_REGISTER)
 
 register_NEML2_object (Orientation)
 
 FOR_ALL_TENSORBASE (RANDOMTENSOR_REGISTER)
 
 register_NEML2_object (SymmetryFromOrbifold)
 
 FOR_ALL_TENSORBASE (USERTENSOR_REGISTER)
 
 FOR_ALL_TENSORBASE (INSTANTIATE_USERTENSORBASE)
 
template<typename... Args>
void diagnostic_assert (bool, Args &&...)
 Helper assertion function for diagnostics.
 
template<typename... Args>
void diagnostic_assert (bool assertion, Args &&... args)
 
 FOR_ALL_TENSORBASE (EXPORT_TENSORNAME)
 
template<typename T >
std::stringstream & operator>> (std::stringstream &ss, TensorName< T > &t)
 Stream into a TensorName (used by Parsers to extract input options)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const TensorName< T > &t)
 Stream out a TensorName (used for printing OptionSet)
 
template<typename... Args>
void neml_assert (bool assertion, Args &&... args)
 
template<typename... Args>
void neml_assert_dbg (bool assertion, Args &&... args)
 
template<typename T >
apply_mask (const T &a, const Scalar &m, std::size_t mdim)
 
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 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 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<class... T>
void neml_assert_broadcastable (const T &... tensors)
 
template<class... T>
void neml_assert_broadcastable_dbg (const T &... tensors)
 
template<class... T>
void neml_assert_dynamic_broadcastable (const T &... tensors)
 
template<class... T>
void neml_assert_dynamic_broadcastable_dbg (const T &... tensors)
 
template<class... T>
void neml_assert_intmd_broadcastable (const T &... tensors)
 
template<class... T>
void neml_assert_intmd_broadcastable_dbg (const T &... tensors)
 
template<class... T>
void neml_assert_batch_broadcastable (const T &... tensors)
 
template<class... T>
void neml_assert_batch_broadcastable_dbg (const T &... tensors)
 
template<class... T>
void neml_assert_base_broadcastable (const T &... tensors)
 
template<class... T>
void neml_assert_base_broadcastable_dbg (const T &... tensors)
 
template<class... T>
void neml_assert_static_broadcastable (const T &... tensors)
 
template<class... T>
void neml_assert_static_broadcastable_dbg (const T &... tensors)
 
 FOR_ALL_TENSORBASE (DECLARE_ABS)
 
 FOR_ALL_TENSORBASE (DECLARE_ACOS)
 
 FOR_ALL_TENSORBASE (DECLARE_ARGMAX)
 
 FOR_ALL_TENSORBASE (DECLARE_ARGMIN)
 
 FOR_ALL_TENSORBASE (DECLARE_ASIN)
 
 FOR_ALL_TENSORBASE (DECLARE_ATAN)
 
 FOR_ALL_TENSORBASE (DECLARE_CAT)
 
 FOR_ALL_TENSORBASE (DECLARE_CBRT)
 
 FOR_ALL_TENSORBASE (DECLARE_CLAMP)
 
 FOR_ALL_TENSORBASE (DECLARE_CLIP)
 
 FOR_ALL_TENSORBASE (DECLARE_COS)
 
 FOR_ALL_TENSORBASE (DECLARE_COSH)
 
 FOR_ALL_TENSORBASE (DECLARE_DEG2RAD)
 
 FOR_ALL_TENSORBASE (DECLARE_DIAG_EMBED)
 
 FOR_ALL_TENSORBASE (DECLARE_DIFF)
 
 FOR_ALL_TENSORBASE (DECLARE_EXP)
 
 FOR_ALL_TENSORBASE (DECLARE_FMOD)
 
 FOR_ALL_TENSORBASE (DECLARE_GCD)
 
 FOR_ALL_TENSORBASE (DECLARE_HEAVISIDE)
 
template<typename T >
DTensor< T, T, typename imap_t< T >::type > imap (const TensorOptions &options=default_tensor_options())
 Identity map.
 
template<typename T >
imap_t< T >::type imap_v (const TensorOptions &options=default_tensor_options())
 Get the identity map interpreted as the concrete primitive tensor type.
 
template<>
DTensor< Scalar, Scalar, typename imap_t< Scalar >::type > imap (const TensorOptions &options)
 
template<>
DTensor< Vec, Vec, typename imap_t< Vec >::type > imap (const TensorOptions &options)
 
template<>
DTensor< R2, R2, typename imap_t< R2 >::type > imap (const TensorOptions &options)
 
template<>
DTensor< SR2, SR2, typename imap_t< SR2 >::type > imap (const TensorOptions &options)
 
template<>
DTensor< SSR4, SSR4, typename imap_t< SSR4 >::type > imap (const TensorOptions &options)
 
 FOR_ALL_TENSORBASE (DECLARE_LOG)
 
 FOR_ALL_TENSORBASE (DECLARE_LOG10)
 
 FOR_ALL_TENSORBASE (FORWARD_DECLARATION)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_LOGICAL_SELF)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_LOGICAL_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_LOGICAL_CSCALAR)
 
 FOR_ALL_TENSORBASE (DECLARE_MACAULAY)
 
 FOR_ALL_TENSORBASE (DECLARE_BATCH_MEAN)
 
 FOR_ALL_TENSORBASE (DECLARE_MINIMUM)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_ADD_SELF)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_ADD_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_ADD_SYM_CSCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_SUB_SELF)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_SUB_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_SUB_SYM_CSCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_MUL_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_MUL_SYM_CSCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_DIV_SYM_SCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_DIV_SYM_CSCALAR)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_ADD_EQ)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_SUB_EQ)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_MUL_EQ)
 
 FOR_ALL_NONSCALAR_PRIMITIVETENSOR (DECLARE_DIV_EQ)
 
 FOR_ALL_TENSORBASE (DECLARE_POW)
 
 FOR_ALL_TENSORBASE (DECLARE_SIGN)
 
 FOR_ALL_TENSORBASE (DECLARE_SIN)
 
 FOR_ALL_TENSORBASE (DECLARE_SINH)
 
 FOR_ALL_TENSORBASE (DECLARE_SQRT)
 
 FOR_ALL_TENSORBASE (DECLARE_STACK)
 
 FOR_ALL_TENSORBASE (DECLARE_SUM)
 
 FOR_ALL_TENSORBASE (DECLARE_SUM_TO_SIZE)
 
constexpr double mandel_factor (Size i)
 
 FOR_ALL_TENSORBASE (DECLARE_TAN)
 
 FOR_ALL_TENSORBASE (DECLARE_TANH)
 
 FOR_ALL_TENSORBASE (DECLARE_WHERE)
 
template<class Tuple , std::size_t... I>
auto make_tensors (Tuple &&t, std::index_sequence< I... >, const TensorOptions &options)
 
 FOR_ALL_TENSORBASE (EXPORT_TENSORBASE)
 
 FOR_ALL_TENSORBASE (SPECIALIZE_TENSORTYPEENUM)
 
 FOR_ALL_TENSORBASE (DECLARE_TENSOR)
 
 register_NEML2_object (ProjectileAcceleration)
 
RAII style default tensor options

The factory methods like at::arange, at::ones, at::zeros, at::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.

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

void set_default_dtype (Dtype dtype)
 
Dtype get_default_dtype ()
 Get default dtype.
 
TensorOptions default_tensor_options ()
 Default floating point tensor options.
 
void set_default_integer_dtype (Dtype dtype)
 Set default integer dtype.
 
Dtype get_default_integer_dtype ()
 Get default integer dtype.
 
TensorOptions default_integer_tensor_options ()
 Default integral tensor options.
 
Scalar det (const Tensor &A)
 
Scalar det (const R2 &A)
 
Scalar det (const SR2 &A)
 
Scalar det (const WR2 &A)
 
Tensor dev (const Tensor &A)
 
R2 dev (const R2 &A)
 
SR2 dev (const SR2 &A)
 
WR2 dev (const WR2 &A)
 
R2 inv (const R2 &A)
 
SR2 inv (const SR2 &A)
 
R4 inv (const R4 &A)
 
SSR4 inv (const SSR4 &A)
 
Tensor base_linspace (const Tensor &start, const Tensor &end, Size nstep, Size dim)
 
 FOR_ALL_TENSORBASE (DECLARE_LINSPACE)
 
Tensor base_logspace (const Tensor &start, const Tensor &end, Size nstep, Size dim, const CScalar &base)
 
 FOR_ALL_TENSORBASE (DECLARE_LOGSPACE)
 
Tensor outer (const Tensor &u, const Tensor &v)
 
Tensor outer (const Tensor &u)
 
R2 outer (const Vec &u, const Vec &v)
 
R2 outer (const Vec &u)
 
R4 outer (const R2 &u, const R2 &v)
 
R4 outer (const R2 &u)
 
SSR4 outer (const SR2 &u, const SR2 &v)
 
SSR4 outer (const SR2 &u)
 
Scalar tr (const Tensor &A)
 
Scalar tr (const R2 &A)
 
Scalar tr (const SR2 &A)
 
Scalar tr (const WR2 &A)
 
Tensor vol (const Tensor &A)
 
R2 vol (const R2 &A)
 
SR2 vol (const SR2 &A)
 
WR2 vol (const WR2 &A)
 
TraceableSize operator* (const TraceableSize &lhs, const TraceableSize &rhs)
 
bool operator== (const TraceableSize &lhs, const TraceableSize &rhs)
 
bool operator!= (const TraceableSize &lhs, const TraceableSize &rhs)
 
bool operator== (const TraceableTensorShape &lhs, const TraceableTensorShape &rhs)
 
bool operator!= (const TraceableTensorShape &lhs, const TraceableTensorShape &rhs)
 
template<class... T>
void neml_assert_broadcastable (const T &...)
 
template<class... T>
void neml_assert_broadcastable_dbg (const T &...)
 
template<class... T>
void neml_assert_dynamic_broadcastable (const T &...)
 
template<class... T>
void neml_assert_dynamic_broadcastable_dbg (const T &...)
 
template<class... T>
void neml_assert_intmd_broadcastable (const T &...)
 
template<class... T>
void neml_assert_intmd_broadcastable_dbg (const T &...)
 
template<class... T>
void neml_assert_batch_broadcastable (const T &...)
 
template<class... T>
void neml_assert_batch_broadcastable_dbg (const T &...)
 
template<class... T>
void neml_assert_base_broadcastable (const T &...)
 
template<class... T>
void neml_assert_base_broadcastable_dbg (const T &...)
 
template<class... T>
void neml_assert_static_broadcastable (const T &...)
 
template<class... T>
void neml_assert_static_broadcastable_dbg (const T &...)
 
 FOR_ALL_TENSORBASE (DECLARE_NORMALIZE_GCD)
 Normalize a tensor by its greatest common denominator.
 
 FOR_ALL_TENSORBASE (DECLARE_UNIT)
 

Variables

const std::string STATE = "state"
 
const std::string OLD_STATE = "old_state"
 
const std::string FORCES = "forces"
 
const std::string OLD_FORCES = "old_forces"
 
const std::string RESIDUAL = "residual"
 
const std::string PARAMETERS = "parameters"
 
constexpr auto kInt8 = c10::kChar
 Fixed width dtypes (mirroring the definition in <torch/csrc/api/include/torch/types.h>)
 
constexpr auto kInt16 = c10::kShort
 
constexpr auto kInt32 = c10::kInt
 
constexpr auto kInt64 = c10::kLong
 
constexpr auto kFloat16 = c10::kHalf
 
constexpr auto kFloat32 = c10::kFloat
 
constexpr auto kFloat64 = c10::kDouble
 
constexpr auto kCPU = c10::DeviceType::CPU
 
constexpr auto kCUDA = c10::DeviceType::CUDA
 
constexpr std::array< std::array< Size, 3 >, 3 > mandel_reverse_index
 
constexpr std::array< std::array< Size, 2 >, 6 > mandel_index
 
constexpr std::array< std::array< Size, 3 >, 3 > skew_reverse_index
 
constexpr std::array< std::array< double, 3 >, 3 > skew_factor
 
constexpr auto eps = std::numeric_limits<double>::epsilon()
 Constants.
 
constexpr double sqrt2 = 1.4142135623730951
 
constexpr double invsqrt2 = 0.7071067811865475
 

Typedef Documentation

◆ ArrayRef

template<typename T >
using ArrayRef = c10::ArrayRef<T>

◆ ATensor

using ATensor = at::Tensor

◆ BuildPtr

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

◆ concat_seq_t

template<class Seq1 , class Seq2 >
using concat_seq_t = typename concat_seq<Seq1, Seq2>::type

◆ CScalar

using CScalar = c10::Scalar

◆ DerivMap

◆ Device

using Device = c10::Device

◆ DeviceIndex

using DeviceIndex = c10::DeviceIndex

◆ DTensorBase_t

template<class Derived , class Seq >
using DTensorBase_t = typename DTensorBase<Derived, Seq>::type

◆ Dtype

using Dtype = c10::ScalarType

◆ R2BackwardEulerTimeIntegration

◆ R2Determinant

◆ R2IncrementToRate

◆ R2LinearCombination

◆ ScalarBackwardEulerTimeIntegration

◆ ScalarBilinearInterpolation

◆ ScalarForwardEulerTimeIntegration

◆ ScalarIncrementToRate

◆ ScalarLinearCombination

◆ ScalarLinearInterpolation

◆ ScalarTwoStageThermalAnnealing

◆ ScalarVariableRate

◆ SecDerivMap

◆ Size

using Size = int64_t

◆ SmallVector

template<typename T , unsigned N>
using SmallVector = c10::SmallVector<T, N>

◆ SR2BackwardEulerTimeIntegration

◆ SR2BilinearInterpolation

◆ SR2Determinant

◆ SR2ForwardEulerTimeIntegration

◆ SR2IncrementToRate

◆ SR2LinearCombination

◆ SR2LinearInterpolation

◆ SR2TwoStageThermalAnnealing

◆ SR2VariableRate

◆ SubaxisName

◆ TensorDataContainer

typedef torch::detail::TensorDataContainer TensorDataContainer = torch::detail::TensorDataContainer

◆ TensorList

using TensorList = c10::ArrayRef<neml2::Tensor>

◆ TensorOptions

using TensorOptions = c10::TensorOptions

◆ TensorShape

using TensorShape = c10::SmallVector<Size, 8>

◆ TensorShapeRef

using TensorShapeRef = c10::ArrayRef<Size>

◆ ValueMap

using ValueMap = std::map<LabeledAxisAccessor, Tensor>

◆ VariableName

◆ VecBackwardEulerTimeIntegration

◆ VecBilinearInterpolation

◆ VecForwardEulerTimeIntegration

◆ VecIncrementToRate

◆ VecLinearCombination

◆ VecLinearInterpolation

◆ VecVariableRate

Enumeration Type Documentation

◆ ElasticConstant

enum class ElasticConstant : std::uint8_t
strong
Enumerator
INVALID 
LAME_LAMBDA 
BULK_MODULUS 
SHEAR_MODULUS 
YOUNGS_MODULUS 
POISSONS_RATIO 
P_WAVE_MODULUS 
CUBIC_C1 
CUBIC_C2 
CUBIC_C3 

◆ FType

enum class FType : int8_t
strong

Role in a function definition.

NONE is the default value, INPUT stands for input variable, OUTPUT stands for output variable, PARAMETER stands for parameter (could request AD), BUFFER stands for buffer.

Enumerator
NONE 
INPUT 
OUTPUT 
PARAMETER 
BUFFER 

◆ TensorType

enum class TensorType : int8_t
strong
Enumerator
FOR_ALL_TENSORBASE_COMMA 
kUknown 

Function Documentation

◆ apply_mask()

template<typename T >
T apply_mask ( const T & a,
const Scalar & m,
std::size_t mdim )

◆ base_cat()

Tensor base_cat ( const std::vector< Tensor > & tensors,
Size d )

◆ base_diagonalize()

Tensor base_diagonalize ( const Tensor & a,
Size d )

◆ base_diff()

neml2::Tensor base_diff ( const Tensor & a,
Size n,
Size dim )

◆ base_linspace()

Tensor base_linspace ( const Tensor & start,
const Tensor & end,
Size nstep,
Size dim )

◆ base_logspace()

Tensor base_logspace ( const Tensor & start,
const Tensor & end,
Size nstep,
Size dim,
const CScalar & base )

◆ base_mean()

Tensor base_mean ( const Tensor & a,
Size d )

◆ base_stack()

neml2::Tensor base_stack ( const std::vector< Tensor > & tensors,
Size d )

◆ base_sum()

Tensor base_sum ( const Tensor & a,
Size d,
bool keepdim )

◆ base_sum_to_size()

Tensor base_sum_to_size ( const Tensor & a,
TensorShapeRef shape )

◆ cross()

Vec cross ( const Vec & u,
const Vec & v )

◆ current_diagnoses()

std::vector< Diagnosis > & current_diagnoses ( )

Get the current diagnoses.

◆ current_diagnostic_state()

DiagnosticState & current_diagnostic_state ( )

Get the current diagnostic state.

◆ currently_solving_nonlinear_system()

bool & currently_solving_nonlinear_system ( )

A model can be _implicit. An implicit model need to be "solved": the state variables should be iteratively updated until the residual becomes zero. During the solve, we only need derivatives with respect to the input state. Therefore, the model can/should avoid unnecessary computations by examining whether the current evaluation is part of the solve.

◆ default_integer_tensor_options()

TensorOptions default_integer_tensor_options ( )

Default integral tensor options.

◆ default_tensor_options()

TensorOptions default_tensor_options ( )

Default floating point tensor options.

◆ derivmap_cat_reduce()

DerivMap derivmap_cat_reduce ( std::vector< DerivMap > && results,
Size dynamic_dim )

Concatenate the tensors in the DerivMap along the batch dimension.

Parameters
resultsThe results to concatenate
dynamic_dimThe dynamic dimension along which to concatenate
Returns
DerivMap with the tensors concatenated along the dynamic dimension

◆ derivmap_move_device()

DerivMap derivmap_move_device ( DerivMap && x,
Device device )

Move all tensors in a DerivMap to a device.

Parameters
xinput DerivMap
devicetarget device
Returns
DerivMap with all tensors moved

◆ derivmap_no_operation()

DerivMap derivmap_no_operation ( DerivMap && x)

No operation.

◆ det() [1/4]

Scalar det ( const R2 & A)

◆ det() [2/4]

Scalar det ( const SR2 & A)

◆ det() [3/4]

Scalar det ( const Tensor & )

Determinant of a second order tensor

◆ det() [4/4]

Scalar det ( const WR2 & A)

◆ dev() [1/4]

R2 dev ( const R2 & A)

◆ dev() [2/4]

SR2 dev ( const SR2 & A)

◆ dev() [3/4]

Tensor dev ( const Tensor & )

Deviatoric part of a second order tensor

◆ dev() [4/4]

WR2 dev ( const WR2 & A)

◆ diagnose()

std::vector< Diagnosis > diagnose ( const DiagnosticsInterface & patient)

A helper function to diagnose common setup errors.

◆ diagnose_and_throw()

void diagnose_and_throw ( const DiagnosticsInterface & patient)

A helper function to diagnose common setup errors and throw an exception if any errors are found.

◆ diagnostic_assert() [1/2]

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

◆ diagnostic_assert() [2/2]

template<typename... Args>
void diagnostic_assert ( bool ,
Args && ... )

Helper assertion function for diagnostics.

◆ einsum()

Tensor einsum ( c10::string_view equation,
TensorList tensors )

Einstein summation along base dimensions.

◆ eq() [1/8]

Scalar eq ( const CScalar & a,
const Scalar & b )

◆ eq() [2/8]

Tensor eq ( const CScalar & a,
const Tensor & b )

◆ eq() [3/8]

Scalar eq ( const Scalar & a,
const CScalar & b )

◆ eq() [4/8]

Scalar eq ( const Scalar & a,
const Scalar & b )

◆ eq() [5/8]

Tensor eq ( const Scalar & a,
const Tensor & b )

◆ eq() [6/8]

Tensor eq ( const Tensor & a,
const CScalar & b )

◆ eq() [7/8]

Tensor eq ( const Tensor & a,
const Scalar & b )

◆ eq() [8/8]

Tensor eq ( const Tensor & a,
const Tensor & b )

◆ event_trace_writers()

std::unordered_map< std::string, std::unique_ptr< TraceWriter > > & event_trace_writers ( )

All trace writers.

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [1/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_ADD_EQ )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [2/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_ADD_SELF )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [3/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_ADD_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [4/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_ADD_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [5/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_DIV_EQ )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [6/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_DIV_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [7/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_DIV_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [8/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_LOGICAL_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [9/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_LOGICAL_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [10/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_LOGICAL_SELF )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [11/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_MUL_EQ )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [12/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_MUL_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [13/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_MUL_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [14/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_SUB_EQ )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [15/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_SUB_SELF )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [16/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_SUB_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [17/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DECLARE_SUB_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [18/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_ADD_EQ )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [19/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_ADD_SELF )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [20/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_ADD_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [21/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_ADD_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [22/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_DIV_EQ )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [23/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_DIV_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [24/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_DIV_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [25/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_LOGICAL_SELF )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [26/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_LOGICAL_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [27/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_LOGICAL_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [28/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_MUL_EQ )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [29/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_MUL_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [30/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_MUL_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [31/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_SUB_EQ )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [32/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_SUB_SELF )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [33/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_SUB_SYM_CSCALAR )

◆ FOR_ALL_NONSCALAR_PRIMITIVETENSOR() [34/34]

FOR_ALL_NONSCALAR_PRIMITIVETENSOR ( DEFINE_SUB_SYM_SCALAR )

◆ FOR_ALL_NONSCALAR_TENSORBASE()

FOR_ALL_NONSCALAR_TENSORBASE ( DEFINE_POW )

◆ FOR_ALL_PRIMITIVETENSOR() [1/15]

FOR_ALL_PRIMITIVETENSOR ( INSTANTIATE )

◆ FOR_ALL_PRIMITIVETENSOR() [2/15]

FOR_ALL_PRIMITIVETENSOR ( INSTANTIATE_CREATE_VARIABLE )

◆ FOR_ALL_PRIMITIVETENSOR() [3/15]

FOR_ALL_PRIMITIVETENSOR ( INSTANTIATE_DECLARE_INPUT_VARIABLE )

◆ FOR_ALL_PRIMITIVETENSOR() [4/15]

FOR_ALL_PRIMITIVETENSOR ( INSTANTIATE_DECLARE_OUTPUT_VARIABLE )

◆ FOR_ALL_PRIMITIVETENSOR() [5/15]

FOR_ALL_PRIMITIVETENSOR ( INSTANTIATE_REDUCTION )

◆ FOR_ALL_PRIMITIVETENSOR() [6/15]

FOR_ALL_PRIMITIVETENSOR ( INSTANTIATE_VARIABLE )

◆ FOR_ALL_PRIMITIVETENSOR() [7/15]

FOR_ALL_PRIMITIVETENSOR ( PARAMETERSTORE_INTANTIATE_PRIMITIVETENSOR )

◆ FOR_ALL_PRIMITIVETENSOR() [8/15]

FOR_ALL_PRIMITIVETENSOR ( REGISTER )

◆ FOR_ALL_PRIMITIVETENSOR() [9/15]

FOR_ALL_PRIMITIVETENSOR ( REGISTER_CONSTANTPARAMETER )

◆ FOR_ALL_PRIMITIVETENSOR() [10/15]

FOR_ALL_PRIMITIVETENSOR ( REGISTER_COPYVARIABLE )

◆ FOR_ALL_PRIMITIVETENSOR() [11/15]

FOR_ALL_PRIMITIVETENSOR ( REGISTER_DYNAMICMEAN )

◆ FOR_ALL_PRIMITIVETENSOR() [12/15]

FOR_ALL_PRIMITIVETENSOR ( REGISTER_DYNAMICSUM )

◆ FOR_ALL_PRIMITIVETENSOR() [13/15]

FOR_ALL_PRIMITIVETENSOR ( REGISTER_FROMTORCHSCRIPT )

◆ FOR_ALL_PRIMITIVETENSOR() [14/15]

FOR_ALL_PRIMITIVETENSOR ( REGISTER_INTERMEDIATEMEAN )

◆ FOR_ALL_PRIMITIVETENSOR() [15/15]

FOR_ALL_PRIMITIVETENSOR ( REGISTER_INTERMEDIATESUM )

◆ FOR_ALL_TENSORBASE() [1/96]

FOR_ALL_TENSORBASE ( BUFFERSTORE_INTANTIATE_TENSORBASE )

◆ FOR_ALL_TENSORBASE() [2/96]

FOR_ALL_TENSORBASE ( DECLARE_ABS )

◆ FOR_ALL_TENSORBASE() [3/96]

FOR_ALL_TENSORBASE ( DECLARE_ACOS )

◆ FOR_ALL_TENSORBASE() [4/96]

FOR_ALL_TENSORBASE ( DECLARE_ARGMAX )

◆ FOR_ALL_TENSORBASE() [5/96]

FOR_ALL_TENSORBASE ( DECLARE_ARGMIN )

◆ FOR_ALL_TENSORBASE() [6/96]

FOR_ALL_TENSORBASE ( DECLARE_ASIN )

◆ FOR_ALL_TENSORBASE() [7/96]

FOR_ALL_TENSORBASE ( DECLARE_ATAN )

◆ FOR_ALL_TENSORBASE() [8/96]

FOR_ALL_TENSORBASE ( DECLARE_BATCH_MEAN )

◆ FOR_ALL_TENSORBASE() [9/96]

FOR_ALL_TENSORBASE ( DECLARE_CAT )

◆ FOR_ALL_TENSORBASE() [10/96]

FOR_ALL_TENSORBASE ( DECLARE_CBRT )

◆ FOR_ALL_TENSORBASE() [11/96]

FOR_ALL_TENSORBASE ( DECLARE_CLAMP )

◆ FOR_ALL_TENSORBASE() [12/96]

FOR_ALL_TENSORBASE ( DECLARE_CLIP )

◆ FOR_ALL_TENSORBASE() [13/96]

FOR_ALL_TENSORBASE ( DECLARE_COS )

◆ FOR_ALL_TENSORBASE() [14/96]

FOR_ALL_TENSORBASE ( DECLARE_COSH )

◆ FOR_ALL_TENSORBASE() [15/96]

FOR_ALL_TENSORBASE ( DECLARE_DEG2RAD )

◆ FOR_ALL_TENSORBASE() [16/96]

FOR_ALL_TENSORBASE ( DECLARE_DIAG_EMBED )

◆ FOR_ALL_TENSORBASE() [17/96]

FOR_ALL_TENSORBASE ( DECLARE_DIFF )

◆ FOR_ALL_TENSORBASE() [18/96]

FOR_ALL_TENSORBASE ( DECLARE_EXP )

◆ FOR_ALL_TENSORBASE() [19/96]

FOR_ALL_TENSORBASE ( DECLARE_FMOD )

◆ FOR_ALL_TENSORBASE() [20/96]

FOR_ALL_TENSORBASE ( DECLARE_GCD )

◆ FOR_ALL_TENSORBASE() [21/96]

FOR_ALL_TENSORBASE ( DECLARE_HEAVISIDE )

◆ FOR_ALL_TENSORBASE() [22/96]

FOR_ALL_TENSORBASE ( DECLARE_LINSPACE )

◆ FOR_ALL_TENSORBASE() [23/96]

FOR_ALL_TENSORBASE ( DECLARE_LOG )

◆ FOR_ALL_TENSORBASE() [24/96]

FOR_ALL_TENSORBASE ( DECLARE_LOG10 )

◆ FOR_ALL_TENSORBASE() [25/96]

FOR_ALL_TENSORBASE ( DECLARE_LOGSPACE )

◆ FOR_ALL_TENSORBASE() [26/96]

FOR_ALL_TENSORBASE ( DECLARE_MACAULAY )

◆ FOR_ALL_TENSORBASE() [27/96]

FOR_ALL_TENSORBASE ( DECLARE_MINIMUM )

◆ FOR_ALL_TENSORBASE() [28/96]

FOR_ALL_TENSORBASE ( DECLARE_NORMALIZE_GCD )

Normalize a tensor by its greatest common denominator.

Note
If the tensor has only one element, return a tensor of ones of the same shape
If the tensor is not of integer type, it will be converted to the default integer type

◆ FOR_ALL_TENSORBASE() [29/96]

FOR_ALL_TENSORBASE ( DECLARE_POW )

◆ FOR_ALL_TENSORBASE() [30/96]

FOR_ALL_TENSORBASE ( DECLARE_SIGN )

◆ FOR_ALL_TENSORBASE() [31/96]

FOR_ALL_TENSORBASE ( DECLARE_SIN )

◆ FOR_ALL_TENSORBASE() [32/96]

FOR_ALL_TENSORBASE ( DECLARE_SINH )

◆ FOR_ALL_TENSORBASE() [33/96]

FOR_ALL_TENSORBASE ( DECLARE_SQRT )

◆ FOR_ALL_TENSORBASE() [34/96]

FOR_ALL_TENSORBASE ( DECLARE_STACK )

◆ FOR_ALL_TENSORBASE() [35/96]

FOR_ALL_TENSORBASE ( DECLARE_SUM )

◆ FOR_ALL_TENSORBASE() [36/96]

FOR_ALL_TENSORBASE ( DECLARE_SUM_TO_SIZE )

◆ FOR_ALL_TENSORBASE() [37/96]

FOR_ALL_TENSORBASE ( DECLARE_TAN )

◆ FOR_ALL_TENSORBASE() [38/96]

FOR_ALL_TENSORBASE ( DECLARE_TANH )

◆ FOR_ALL_TENSORBASE() [39/96]

FOR_ALL_TENSORBASE ( DECLARE_TENSOR )

◆ FOR_ALL_TENSORBASE() [40/96]

FOR_ALL_TENSORBASE ( DECLARE_UNIT )

Normalize a tensor by its Frobenius norm

◆ FOR_ALL_TENSORBASE() [41/96]

FOR_ALL_TENSORBASE ( DECLARE_WHERE )

◆ FOR_ALL_TENSORBASE() [42/96]

FOR_ALL_TENSORBASE ( DEFINE_ABS )

◆ FOR_ALL_TENSORBASE() [43/96]

FOR_ALL_TENSORBASE ( DEFINE_ARCCOS )

◆ FOR_ALL_TENSORBASE() [44/96]

FOR_ALL_TENSORBASE ( DEFINE_ARCSIN )

◆ FOR_ALL_TENSORBASE() [45/96]

FOR_ALL_TENSORBASE ( DEFINE_ARCTAN )

◆ FOR_ALL_TENSORBASE() [46/96]

FOR_ALL_TENSORBASE ( DEFINE_ARGMAX )

◆ FOR_ALL_TENSORBASE() [47/96]

FOR_ALL_TENSORBASE ( DEFINE_ARGMIN )

◆ FOR_ALL_TENSORBASE() [48/96]

FOR_ALL_TENSORBASE ( DEFINE_CAT )

◆ FOR_ALL_TENSORBASE() [49/96]

FOR_ALL_TENSORBASE ( DEFINE_CBRT )

◆ FOR_ALL_TENSORBASE() [50/96]

FOR_ALL_TENSORBASE ( DEFINE_CLAMP )

◆ FOR_ALL_TENSORBASE() [51/96]

FOR_ALL_TENSORBASE ( DEFINE_CLIP )

◆ FOR_ALL_TENSORBASE() [52/96]

FOR_ALL_TENSORBASE ( DEFINE_COS )

◆ FOR_ALL_TENSORBASE() [53/96]

FOR_ALL_TENSORBASE ( DEFINE_COSH )

◆ FOR_ALL_TENSORBASE() [54/96]

FOR_ALL_TENSORBASE ( DEFINE_DEG2RAD )

◆ FOR_ALL_TENSORBASE() [55/96]

FOR_ALL_TENSORBASE ( DEFINE_DIAGONALIZE )

◆ FOR_ALL_TENSORBASE() [56/96]

FOR_ALL_TENSORBASE ( DEFINE_DIFF )

◆ FOR_ALL_TENSORBASE() [57/96]

FOR_ALL_TENSORBASE ( DEFINE_EXP )

◆ FOR_ALL_TENSORBASE() [58/96]

FOR_ALL_TENSORBASE ( DEFINE_FMOD )

◆ FOR_ALL_TENSORBASE() [59/96]

FOR_ALL_TENSORBASE ( DEFINE_GCD )

◆ FOR_ALL_TENSORBASE() [60/96]

FOR_ALL_TENSORBASE ( DEFINE_HEAVISIDE )

◆ FOR_ALL_TENSORBASE() [61/96]

FOR_ALL_TENSORBASE ( DEFINE_LINSPACE )

◆ FOR_ALL_TENSORBASE() [62/96]

FOR_ALL_TENSORBASE ( DEFINE_LOG )

◆ FOR_ALL_TENSORBASE() [63/96]

FOR_ALL_TENSORBASE ( DEFINE_LOG10 )

◆ FOR_ALL_TENSORBASE() [64/96]

FOR_ALL_TENSORBASE ( DEFINE_LOGSPACE )

◆ FOR_ALL_TENSORBASE() [65/96]

FOR_ALL_TENSORBASE ( DEFINE_MACAULAY )

◆ FOR_ALL_TENSORBASE() [66/96]

FOR_ALL_TENSORBASE ( DEFINE_MEAN )

◆ FOR_ALL_TENSORBASE() [67/96]

FOR_ALL_TENSORBASE ( DEFINE_MINIMUM )

◆ FOR_ALL_TENSORBASE() [68/96]

FOR_ALL_TENSORBASE ( DEFINE_NORMALIZE_GCD )

◆ FOR_ALL_TENSORBASE() [69/96]

FOR_ALL_TENSORBASE ( DEFINE_SIGN )

◆ FOR_ALL_TENSORBASE() [70/96]

FOR_ALL_TENSORBASE ( DEFINE_SIN )

◆ FOR_ALL_TENSORBASE() [71/96]

FOR_ALL_TENSORBASE ( DEFINE_SINH )

◆ FOR_ALL_TENSORBASE() [72/96]

FOR_ALL_TENSORBASE ( DEFINE_SQRT )

◆ FOR_ALL_TENSORBASE() [73/96]

FOR_ALL_TENSORBASE ( DEFINE_STACK )

◆ FOR_ALL_TENSORBASE() [74/96]

FOR_ALL_TENSORBASE ( DEFINE_SUM )

◆ FOR_ALL_TENSORBASE() [75/96]

FOR_ALL_TENSORBASE ( DEFINE_SUM_TO_SIZE )

◆ FOR_ALL_TENSORBASE() [76/96]

FOR_ALL_TENSORBASE ( DEFINE_TAN )

◆ FOR_ALL_TENSORBASE() [77/96]

FOR_ALL_TENSORBASE ( DEFINE_TANH )

◆ FOR_ALL_TENSORBASE() [78/96]

FOR_ALL_TENSORBASE ( DEFINE_UNIT )

◆ FOR_ALL_TENSORBASE() [79/96]

FOR_ALL_TENSORBASE ( DEFINE_WHERE )

◆ FOR_ALL_TENSORBASE() [80/96]

FOR_ALL_TENSORBASE ( EXPORT_TENSORBASE )

◆ FOR_ALL_TENSORBASE() [81/96]

FOR_ALL_TENSORBASE ( EXPORT_TENSORNAME )

◆ FOR_ALL_TENSORBASE() [82/96]

FOR_ALL_TENSORBASE ( FORWARD_DECLARATION )

◆ FOR_ALL_TENSORBASE() [83/96]

FOR_ALL_TENSORBASE ( FULLTENSOR_REGISTER )

◆ FOR_ALL_TENSORBASE() [84/96]

FOR_ALL_TENSORBASE ( INSTANTIATE )

◆ FOR_ALL_TENSORBASE() [85/96]

FOR_ALL_TENSORBASE ( INSTANTIATE_FACTORYMETHODBASE )

◆ FOR_ALL_TENSORBASE() [86/96]

FOR_ALL_TENSORBASE ( INSTANTIATE_TENSORBASE )

◆ FOR_ALL_TENSORBASE() [87/96]

FOR_ALL_TENSORBASE ( INSTANTIATE_TENSORNAME )

◆ FOR_ALL_TENSORBASE() [88/96]

FOR_ALL_TENSORBASE ( INSTANTIATE_TENSORVALUE )

◆ FOR_ALL_TENSORBASE() [89/96]

FOR_ALL_TENSORBASE ( INSTANTIATE_USERTENSORBASE )

◆ FOR_ALL_TENSORBASE() [90/96]

FOR_ALL_TENSORBASE ( LINSPACETENSOR_REGISTER )

◆ FOR_ALL_TENSORBASE() [91/96]

FOR_ALL_TENSORBASE ( LOGSPACETENSOR_REGISTER )

◆ FOR_ALL_TENSORBASE() [92/96]

FOR_ALL_TENSORBASE ( NEML2OBJECT_INSTANTIATE )

◆ FOR_ALL_TENSORBASE() [93/96]

FOR_ALL_TENSORBASE ( PARAMETERSTORE_INTANTIATE_TENSORBASE )

◆ FOR_ALL_TENSORBASE() [94/96]

FOR_ALL_TENSORBASE ( RANDOMTENSOR_REGISTER )

◆ FOR_ALL_TENSORBASE() [95/96]

FOR_ALL_TENSORBASE ( SPECIALIZE_TENSORTYPEENUM )

◆ FOR_ALL_TENSORBASE() [96/96]

FOR_ALL_TENSORBASE ( USERTENSOR_REGISTER )

◆ FOR_ALL_VECBASE()

FOR_ALL_VECBASE ( VECBASE_INSTANTIATE )

◆ from_assembly()

template<std::size_t N>
Tensor from_assembly ( const Tensor & from,
const std::array< TensorShapeRef, N > & intmd_shapes,
const std::array< TensorShapeRef, N > & base_shapes,
const std::string & debug_name )

◆ from_assembly< 1 >()

template Tensor from_assembly< 1 > ( const Tensor & ,
const std::array< TensorShapeRef, 1 > & ,
const std::array< TensorShapeRef, 1 > & ,
const std::string &  )

◆ from_assembly< 2 >()

template Tensor from_assembly< 2 > ( const Tensor & ,
const std::array< TensorShapeRef, 2 > & ,
const std::array< TensorShapeRef, 2 > & ,
const std::string &  )

◆ from_assembly< 3 >()

template Tensor from_assembly< 3 > ( const Tensor & ,
const std::array< TensorShapeRef, 3 > & ,
const std::array< TensorShapeRef, 3 > & ,
const std::string &  )

◆ full_to_mandel()

Tensor full_to_mandel ( const Tensor & full,
Size dim = 0 )

Convert a Tensor from full notation to Mandel notation.

The tensor in full notation full can have arbitrary batch shape. The optional argument dim denotes the base dimension starting from which the conversion should take place.

For example, a full tensor has shape (2, 3, 1, 5; 2, 9, 3, 3, 2, 3) where the semicolon separates batch and base shapes. The symmetric axes have base dim 2 and 3. After converting to Mandel notation, the resulting tensor will have shape (2, 3, 1, 5; 2, 9, 6, 2, 3). Note how the shape of the symmetric dimensions (3, 3) becomes (6). In this example, the base dim (the second argument to this function) should be 2.

Parameters
fullThe input tensor in full notation
dimThe base dimension where the symmetric axes start
Returns
Tensor The resulting tensor using Mandel notation to represent the symmetric axes.

◆ full_to_skew()

Tensor full_to_skew ( const Tensor & full,
Size dim = 0 )

Convert a Tensor from full notation to skew vector notation.

The tensor in full notation full can have arbitrary batch shape. The optional argument dim denotes the base dimension starting from which the conversion should take place.

For example, a full tensor has shape (2, 3, 1, 5; 2, 9, 3, 3, 2, 3) where the semicolon separates batch and base shapes. The symmetric axes have base dim 2 and 3. After converting to skew notation, the resulting tensor will have shape (2, 3, 1, 5; 2, 9, 3, 2, 3). Note how the shape of the symmetric dimensions (3, 3) becomes (3). In this example, the base dim (the second argument to this function) should be 2.

Parameters
fullThe input tensor in full notation
dimThe base dimension where the symmetric axes start
Returns
Tensor The resulting tensor using skew notation to represent the skew-symmetric axes.

◆ ge() [1/8]

Scalar ge ( const CScalar & a,
const Scalar & b )

◆ ge() [2/8]

Tensor ge ( const CScalar & a,
const Tensor & b )

◆ ge() [3/8]

Scalar ge ( const Scalar & a,
const CScalar & b )

◆ ge() [4/8]

Scalar ge ( const Scalar & a,
const Scalar & b )

◆ ge() [5/8]

Tensor ge ( const Scalar & a,
const Tensor & b )

◆ ge() [6/8]

Tensor ge ( const Tensor & a,
const CScalar & b )

◆ ge() [7/8]

Tensor ge ( const Tensor & a,
const Scalar & b )

◆ ge() [8/8]

Tensor ge ( const Tensor & a,
const Tensor & b )

◆ get_default_dtype()

Dtype get_default_dtype ( )

Get default dtype.

◆ get_default_integer_dtype()

Dtype get_default_integer_dtype ( )

Get default integer dtype.

◆ gt() [1/8]

Scalar gt ( const CScalar & a,
const Scalar & b )

◆ gt() [2/8]

Tensor gt ( const CScalar & a,
const Tensor & b )

◆ gt() [3/8]

Scalar gt ( const Scalar & a,
const CScalar & b )

◆ gt() [4/8]

Scalar gt ( const Scalar & a,
const Scalar & b )

◆ gt() [5/8]

Tensor gt ( const Scalar & a,
const Tensor & b )

◆ gt() [6/8]

Tensor gt ( const Tensor & a,
const CScalar & b )

◆ gt() [7/8]

Tensor gt ( const Tensor & a,
const Scalar & b )

◆ gt() [8/8]

Tensor gt ( const Tensor & a,
const Tensor & b )

◆ identity_transform()

R2 identity_transform ( const TensorOptions & options)

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

◆ imap() [1/6]

template<>
DTensor< Scalar, Scalar, typename imap_t< Scalar >::type > imap ( const TensorOptions & options)
inline

◆ imap() [2/6]

template<>
DTensor< Vec, Vec, typename imap_t< Vec >::type > imap ( const TensorOptions & options)
inline

◆ imap() [3/6]

template<>
DTensor< R2, R2, typename imap_t< R2 >::type > imap ( const TensorOptions & options)
inline

◆ imap() [4/6]

template<>
DTensor< SR2, SR2, typename imap_t< SR2 >::type > imap ( const TensorOptions & options)
inline

◆ imap() [5/6]

template<>
DTensor< SSR4, SSR4, typename imap_t< SSR4 >::type > imap ( const TensorOptions & options)
inline

◆ imap() [6/6]

template<typename T >
DTensor< T, T, typename imap_t< T >::type > imap ( const TensorOptions & options = default_tensor_options())

Identity map.

◆ imap_v()

template<typename T >
imap_t< T >::type imap_v ( const TensorOptions & options = default_tensor_options())

Get the identity map interpreted as the concrete primitive tensor type.

◆ 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.

◆ inner()

Scalar inner ( const Tensor & a,
const Tensor & b )

Inner product.

◆ inv() [1/6]

R2 inv ( const R2 & )

Inverse of a second order tensor

◆ inv() [2/6]

R4 inv ( const R4 & )

Inverse of a fourth order tensor, i.e., $A^{-1}_{ijmn} A_{mnkl} = \delta_{il} \delta_{jk}$

◆ inv() [3/6]

Rot inv ( const Rot & R)

Inverse of a rotation (MRP)

◆ inv() [4/6]

SR2 inv ( const SR2 & A)

◆ inv() [5/6]

SSR4 inv ( const SSR4 & A)

◆ inv() [6/6]

Tensor inv ( const Tensor & A)

Inverse of a second order or fourth order tensor.

◆ inversion_transform()

R2 inversion_transform ( const TensorOptions & option)

An inversion center.

◆ jacrev() [1/2]

std::vector< Tensor > jacrev ( const Tensor & y,
const std::vector< Tensor > & xs,
bool retain_graph = false,
bool create_graph = false,
bool allow_unused = false )

Use automatic differentiation (AD) to calculate the derivatives of a Tensor w.r.t. another Tensor.

Warning
Torch (and hence NEML2) AD wasn't designed to compute the full Jacobian from the very beginning. Using this method to calculate the full Jacobian is inefficient and is subjected to some restrictions on batch shapes.
Parameters
yThe Tensor to to be differentiated
xsThe arguments to take derivatives with respect to
retain_graphWhether to retain the computation graph (necessary if y has base storage size>1)
create_graphWhether to create the computation graph (necessary if you want to differentiate the returned Jacobian)
allow_unusedWhether to allow unused input argument x
Returns
Tensor \(\partial y/\partial p\)

◆ jacrev() [2/2]

Tensor jacrev ( const Tensor & y,
const Tensor & x,
bool retain_graph,
bool create_graph,
bool allow_unused )

Similar to the other jacrev, but for a single input.

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

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

◆ le() [1/8]

Scalar le ( const CScalar & a,
const Scalar & b )

◆ le() [2/8]

Tensor le ( const CScalar & a,
const Tensor & b )

◆ le() [3/8]

Scalar le ( const Scalar & a,
const CScalar & b )

◆ le() [4/8]

Scalar le ( const Scalar & a,
const Scalar & b )

◆ le() [5/8]

Tensor le ( const Scalar & a,
const Tensor & b )

◆ le() [6/8]

Tensor le ( const Tensor & a,
const CScalar & b )

◆ le() [7/8]

Tensor le ( const Tensor & a,
const Scalar & b )

◆ le() [8/8]

Tensor le ( const Tensor & a,
const Tensor & b )

◆ load_input()

std::unique_ptr< Factory > load_input ( const std::filesystem::path & path,
const std::string & additional_input = "" )

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

Previously loaded input options will be discarded!

Warning
All threads share the same input options, so in principle this function is not intended to be called inside a threaded region.
Parameters
pathPath to the input file to be parsed
additional_inputAdditional cliargs to pass to the parser

◆ load_model()

std::shared_ptr< Model > load_model ( const std::filesystem::path & path,
const std::string & mname )

A convenient function to load an input file and get a model.

Parameters
pathPath to the input file to be parsed
mnameName of the model

◆ logical_and() [1/8]

Scalar logical_and ( const CScalar & a,
const Scalar & b )

◆ logical_and() [2/8]

Tensor logical_and ( const CScalar & a,
const Tensor & b )

◆ logical_and() [3/8]

Scalar logical_and ( const Scalar & a,
const CScalar & b )

◆ logical_and() [4/8]

Scalar logical_and ( const Scalar & a,
const Scalar & b )

◆ logical_and() [5/8]

Tensor logical_and ( const Scalar & a,
const Tensor & b )

◆ logical_and() [6/8]

Tensor logical_and ( const Tensor & a,
const CScalar & b )

◆ logical_and() [7/8]

Tensor logical_and ( const Tensor & a,
const Scalar & b )

◆ logical_and() [8/8]

Tensor logical_and ( const Tensor & a,
const Tensor & b )

◆ logical_not() [1/2]

Scalar logical_not ( const Scalar & a)

◆ logical_not() [2/2]

Tensor logical_not ( const Tensor & a)

◆ logical_or() [1/8]

Scalar logical_or ( const CScalar & a,
const Scalar & b )

◆ logical_or() [2/8]

Tensor logical_or ( const CScalar & a,
const Tensor & b )

◆ logical_or() [3/8]

Scalar logical_or ( const Scalar & a,
const CScalar & b )

◆ logical_or() [4/8]

Scalar logical_or ( const Scalar & a,
const Scalar & b )

◆ logical_or() [5/8]

Tensor logical_or ( const Scalar & a,
const Tensor & b )

◆ logical_or() [6/8]

Tensor logical_or ( const Tensor & a,
const CScalar & b )

◆ logical_or() [7/8]

Tensor logical_or ( const Tensor & a,
const Scalar & b )

◆ logical_or() [8/8]

Tensor logical_or ( const Tensor & a,
const Tensor & b )

◆ logical_xor() [1/8]

Scalar logical_xor ( const CScalar & a,
const Scalar & b )

◆ logical_xor() [2/8]

Tensor logical_xor ( const CScalar & a,
const Tensor & b )

◆ logical_xor() [3/8]

Scalar logical_xor ( const Scalar & a,
const CScalar & b )

◆ logical_xor() [4/8]

Scalar logical_xor ( const Scalar & a,
const Scalar & b )

◆ logical_xor() [5/8]

Tensor logical_xor ( const Scalar & a,
const Tensor & b )

◆ logical_xor() [6/8]

Tensor logical_xor ( const Tensor & a,
const CScalar & b )

◆ logical_xor() [7/8]

Tensor logical_xor ( const Tensor & a,
const Scalar & b )

◆ logical_xor() [8/8]

Tensor logical_xor ( const Tensor & a,
const Tensor & b )

◆ lt() [1/8]

Scalar lt ( const CScalar & a,
const Scalar & b )

◆ lt() [2/8]

Tensor lt ( const CScalar & a,
const Tensor & b )

◆ lt() [3/8]

Scalar lt ( const Scalar & a,
const CScalar & b )

◆ lt() [4/8]

Scalar lt ( const Scalar & a,
const Scalar & b )

◆ lt() [5/8]

Tensor lt ( const Scalar & a,
const Tensor & b )

◆ lt() [6/8]

Tensor lt ( const Tensor & a,
const CScalar & b )

◆ lt() [7/8]

Tensor lt ( const Tensor & a,
const Scalar & b )

◆ lt() [8/8]

Tensor lt ( const Tensor & a,
const Tensor & b )

◆ machine_precision()

double machine_precision ( Dtype dtype)

◆ make_tensors()

template<class Tuple , std::size_t... I>
auto make_tensors ( Tuple && t,
std::index_sequence< I... > ,
const TensorOptions & options )

◆ mandel_factor()

double mandel_factor ( Size i)
inlineconstexpr

◆ mandel_to_full()

Tensor mandel_to_full ( const Tensor & mandel,
Size dim = 0 )

Convert a Tensor from Mandel notation to full notation.

See full_to_mandel for a detailed explanation.

Parameters
mandelThe input tensor in Mandel notation
dimThe base dimension where the symmetric axes start
Returns
Tensor The resulting tensor in full notation.

◆ mm()

Tensor mm ( const Tensor & a,
const Tensor & b )

Batched matrix-matrix product.

The input matrices a and b must have exactly 2 base dimensions.

◆ mv()

Tensor mv ( const Tensor & a,
const Tensor & v )

Batched matrix-vector product.

The input tensor a must have exactly 2 base dimensions. The input tensor v must have exactly 1 base dimension.

◆ name()

std::string name ( ElasticConstant p)

◆ ne() [1/8]

Scalar ne ( const CScalar & a,
const Scalar & b )

◆ ne() [2/8]

Tensor ne ( const CScalar & a,
const Tensor & b )

◆ ne() [3/8]

Scalar ne ( const Scalar & a,
const CScalar & b )

◆ ne() [4/8]

Scalar ne ( const Scalar & a,
const Scalar & b )

◆ ne() [5/8]

Tensor ne ( const Scalar & a,
const Tensor & b )

◆ ne() [6/8]

Tensor ne ( const Tensor & a,
const CScalar & b )

◆ ne() [7/8]

Tensor ne ( const Tensor & a,
const Scalar & b )

◆ ne() [8/8]

Tensor ne ( const Tensor & a,
const Tensor & b )

◆ neml_assert()

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

◆ neml_assert_base_broadcastable() [1/2]

template<class... T>
void neml_assert_base_broadcastable ( const T &... tensors)

◆ neml_assert_base_broadcastable() [2/2]

template<class... T>
void neml_assert_base_broadcastable ( const T & ...)

Assert that all tensors are base-broadcastable

◆ neml_assert_base_broadcastable_dbg() [1/2]

template<class... T>
void neml_assert_base_broadcastable_dbg ( const T &... tensors)

◆ neml_assert_base_broadcastable_dbg() [2/2]

template<class... T>
void neml_assert_base_broadcastable_dbg ( const T & ...)

◆ neml_assert_batch_broadcastable() [1/2]

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

◆ neml_assert_batch_broadcastable() [2/2]

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

Assert that all tensors are batch-broadcastable

◆ neml_assert_batch_broadcastable_dbg() [1/2]

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

◆ neml_assert_batch_broadcastable_dbg() [2/2]

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

◆ neml_assert_broadcastable() [1/2]

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

◆ neml_assert_broadcastable() [2/2]

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

Assert that all tensors are broadcastable

◆ neml_assert_broadcastable_dbg() [1/2]

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

◆ neml_assert_broadcastable_dbg() [2/2]

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

◆ neml_assert_dbg()

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

◆ neml_assert_dynamic_broadcastable() [1/2]

template<class... T>
void neml_assert_dynamic_broadcastable ( const T &... tensors)

◆ neml_assert_dynamic_broadcastable() [2/2]

template<class... T>
void neml_assert_dynamic_broadcastable ( const T & ...)

Assert that all tensors are dynamic-broadcastable

◆ neml_assert_dynamic_broadcastable_dbg() [1/2]

template<class... T>
void neml_assert_dynamic_broadcastable_dbg ( const T &... tensors)

◆ neml_assert_dynamic_broadcastable_dbg() [2/2]

template<class... T>
void neml_assert_dynamic_broadcastable_dbg ( const T & ...)

◆ neml_assert_intmd_broadcastable() [1/2]

template<class... T>
void neml_assert_intmd_broadcastable ( const T &... tensors)

◆ neml_assert_intmd_broadcastable() [2/2]

template<class... T>
void neml_assert_intmd_broadcastable ( const T & ...)

Assert that all tensors are intermediate-broadcastable

◆ neml_assert_intmd_broadcastable_dbg() [1/2]

template<class... T>
void neml_assert_intmd_broadcastable_dbg ( const T &... tensors)

◆ neml_assert_intmd_broadcastable_dbg() [2/2]

template<class... T>
void neml_assert_intmd_broadcastable_dbg ( const T & ...)

◆ neml_assert_not_tracing()

void neml_assert_not_tracing ( )

Assert that we are currently NOT tracing.

◆ neml_assert_not_tracing_dbg()

void neml_assert_not_tracing_dbg ( )

Assert that we are currently NOT tracing (only effective in debug mode)

◆ neml_assert_static_broadcastable() [1/2]

template<class... T>
void neml_assert_static_broadcastable ( const T &... tensors)

◆ neml_assert_static_broadcastable() [2/2]

template<class... T>
void neml_assert_static_broadcastable ( const T & ...)

Assert that all tensors are static-broadcastable

◆ neml_assert_static_broadcastable_dbg() [1/2]

template<class... T>
void neml_assert_static_broadcastable_dbg ( const T &... tensors)

◆ neml_assert_static_broadcastable_dbg() [2/2]

template<class... T>
void neml_assert_static_broadcastable_dbg ( const T & ...)

◆ neml_assert_tracing()

void neml_assert_tracing ( )

Assert that we are currently tracing.

◆ neml_assert_tracing_dbg()

void neml_assert_tracing_dbg ( )

Assert that we are currently tracing (only effective in debug mode)

◆ norm()

Scalar norm ( const Tensor & a,
const std::optional< CScalar > & eps )

Frobenius norm of a tensor.

◆ norm_sq()

Scalar norm_sq ( const Tensor & a)

Squared Frobenius norm of a tensor.

◆ operator!() [1/2]

Scalar operator! ( const Scalar & a)

◆ operator!() [2/2]

Tensor operator! ( const Tensor & a)

◆ operator!=() [1/13]

Scalar operator!= ( const CScalar & a,
const Scalar & b )

◆ operator!=() [2/13]

Tensor operator!= ( const CScalar & a,
const Tensor & b )

◆ operator!=() [3/13]

bool operator!= ( const LabeledAxis & a,
const LabeledAxis & b )

◆ operator!=() [4/13]

bool operator!= ( const LabeledAxisAccessor & a,
const LabeledAxisAccessor & b )

Compare for equality between two LabeledAxisAccessor.

◆ operator!=() [5/13]

Scalar operator!= ( const Scalar & a,
const CScalar & b )

◆ operator!=() [6/13]

Scalar operator!= ( const Scalar & a,
const Scalar & b )

◆ operator!=() [7/13]

Tensor operator!= ( const Scalar & a,
const Tensor & b )

◆ operator!=() [8/13]

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!=() [9/13]

Tensor operator!= ( const Tensor & a,
const CScalar & b )

◆ operator!=() [10/13]

Tensor operator!= ( const Tensor & a,
const Scalar & b )

◆ operator!=() [11/13]

Tensor operator!= ( const Tensor & a,
const Tensor & b )

◆ operator!=() [12/13]

bool operator!= ( const TraceableSize & lhs,
const TraceableSize & rhs )

◆ operator!=() [13/13]

bool operator!= ( const TraceableTensorShape & lhs,
const TraceableTensorShape & rhs )

◆ operator&&() [1/9]

Scalar operator&& ( const CScalar & a,
const Scalar & b )

◆ operator&&() [2/9]

Tensor operator&& ( const CScalar & a,
const Tensor & b )

◆ operator&&() [3/9]

Scalar operator&& ( const Scalar & a,
const CScalar & b )

◆ operator&&() [4/9]

Scalar operator&& ( const Scalar & a,
const Scalar & b )

◆ operator&&() [5/9]

Tensor operator&& ( const Scalar & a,
const Tensor & b )

◆ operator&&() [6/9]

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&&() [7/9]

Tensor operator&& ( const Tensor & a,
const CScalar & b )

◆ operator&&() [8/9]

Tensor operator&& ( const Tensor & a,
const Scalar & b )

◆ operator&&() [9/9]

Tensor operator&& ( const Tensor & a,
const Tensor & b )

◆ operator*() [1/15]

Scalar operator* ( const CScalar & a,
const Scalar & b )

◆ operator*() [2/15]

Tensor operator* ( const CScalar & a,
const Tensor & b )

◆ operator*() [3/15]

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

matrix-matrix product

◆ operator*() [4/15]

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

matrix-vector product

◆ operator*() [5/15]

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

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

◆ operator*() [6/15]

Scalar operator* ( const Scalar & a,
const CScalar & b )

◆ operator*() [7/15]

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

◆ operator*() [8/15]

Tensor operator* ( const Scalar & a,
const Tensor & b )

◆ operator*() [9/15]

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

◆ operator*() [10/15]

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

◆ operator*() [11/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*() [12/15]

Tensor operator* ( const Tensor & a,
const CScalar & b )

◆ operator*() [13/15]

Tensor operator* ( const Tensor & a,
const Scalar & b )

◆ operator*() [14/15]

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

◆ operator*() [15/15]

TraceableSize operator* ( const TraceableSize & lhs,
const TraceableSize & rhs )

Arithmetic operators

◆ operator*=() [1/2]

Scalar & operator*= ( Scalar & a,
const CScalar & b )

◆ operator*=() [2/2]

Tensor & operator*= ( Tensor & a,
const CScalar & b )

◆ operator+() [1/9]

Scalar operator+ ( const CScalar & a,
const Scalar & b )

◆ operator+() [2/9]

Tensor operator+ ( const CScalar & a,
const Tensor & b )

◆ operator+() [3/9]

Scalar operator+ ( const Scalar & a,
const CScalar & b )

◆ operator+() [4/9]

Scalar operator+ ( const Scalar & a,
const Scalar & b )

◆ operator+() [5/9]

Tensor operator+ ( const Scalar & a,
const Tensor & b )

◆ operator+() [6/9]

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+() [7/9]

Tensor operator+ ( const Tensor & a,
const CScalar & b )

◆ operator+() [8/9]

Tensor operator+ ( const Tensor & a,
const Scalar & b )

◆ operator+() [9/9]

Tensor operator+ ( const Tensor & a,
const Tensor & b )

◆ operator+=() [1/2]

Scalar & operator+= ( Scalar & a,
const CScalar & b )

◆ operator+=() [2/2]

Tensor & operator+= ( Tensor & a,
const CScalar & b )

◆ operator-() [1/9]

Scalar operator- ( const CScalar & a,
const Scalar & b )

◆ operator-() [2/9]

Tensor operator- ( const CScalar & a,
const Tensor & b )

◆ operator-() [3/9]

Scalar operator- ( const Scalar & a,
const CScalar & b )

◆ operator-() [4/9]

Scalar operator- ( const Scalar & a,
const Scalar & b )

◆ operator-() [5/9]

Tensor operator- ( const Scalar & a,
const Tensor & b )

◆ operator-() [6/9]

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-() [7/9]

Tensor operator- ( const Tensor & a,
const CScalar & b )

◆ operator-() [8/9]

Tensor operator- ( const Tensor & a,
const Scalar & b )

◆ operator-() [9/9]

Tensor operator- ( const Tensor & a,
const Tensor & b )

◆ operator-=() [1/2]

Scalar & operator-= ( Scalar & a,
const CScalar & b )

◆ operator-=() [2/2]

Tensor & operator-= ( Tensor & a,
const CScalar & b )

◆ operator/() [1/9]

Scalar operator/ ( const CScalar & a,
const Scalar & b )

◆ operator/() [2/9]

Tensor operator/ ( const CScalar & a,
const Tensor & b )

◆ operator/() [3/9]

Scalar operator/ ( const Scalar & a,
const CScalar & b )

◆ operator/() [4/9]

Scalar operator/ ( const Scalar & a,
const Scalar & b )

◆ operator/() [5/9]

Tensor operator/ ( const Scalar & a,
const Tensor & b )

◆ operator/() [6/9]

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/() [7/9]

Tensor operator/ ( const Tensor & a,
const CScalar & b )

◆ operator/() [8/9]

Tensor operator/ ( const Tensor & a,
const Scalar & b )

◆ operator/() [9/9]

Tensor operator/ ( const Tensor & a,
const Tensor & b )

◆ operator/=() [1/2]

Scalar & operator/= ( Scalar & a,
const CScalar & b )

◆ operator/=() [2/2]

Tensor & operator/= ( Tensor & a,
const CScalar & b )

◆ operator<() [1/10]

Scalar operator< ( const CScalar & a,
const Scalar & b )

◆ operator<() [2/10]

Tensor operator< ( const CScalar & a,
const Tensor & b )

◆ operator<() [3/10]

bool operator< ( const LabeledAxisAccessor & a,
const LabeledAxisAccessor & b )

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

◆ operator<() [4/10]

Scalar operator< ( const Scalar & a,
const CScalar & b )

◆ operator<() [5/10]

Scalar operator< ( const Scalar & a,
const Scalar & b )

◆ operator<() [6/10]

Tensor operator< ( const Scalar & a,
const Tensor & b )

◆ operator<() [7/10]

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<() [8/10]

Tensor operator< ( const Tensor & a,
const CScalar & b )

◆ operator<() [9/10]

Tensor operator< ( const Tensor & a,
const Scalar & b )

◆ operator<() [10/10]

Tensor operator< ( const Tensor & a,
const Tensor & b )

◆ operator<<() [1/12]

std::ostream & operator<< ( std::ostream & os,
const EnumSelection & es )

◆ operator<<() [2/12]

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

◆ operator<<() [3/12]

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

◆ operator<<() [4/12]

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<<() [5/12]

std::ostream & operator<< ( std::ostream & os,
const Model & model )

◆ operator<<() [6/12]

std::ostream & operator<< ( std::ostream & os,
const MultiEnumSelection & es )

◆ operator<<() [7/12]

std::ostream & operator<< ( std::ostream & os,
const OptionBase & opt )

◆ operator<<() [8/12]

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

◆ operator<<() [9/12]

template<typename T >
std::ostream & operator<< ( std::ostream & os,
const TensorName< T > & t )

Stream out a TensorName (used for printing OptionSet)

◆ operator<<() [10/12]

std::ostream & operator<< ( std::ostream & os,
const TensorType & t )

◆ operator<<() [11/12]

std::ostream & operator<< ( std::ostream & os,
const TraceableSize & s )

Streaming operator.

◆ operator<<() [12/12]

std::ostream & operator<< ( std::ostream & os,
FType f )

◆ operator<=() [1/9]

Scalar operator<= ( const CScalar & a,
const Scalar & b )

◆ operator<=() [2/9]

Tensor operator<= ( const CScalar & a,
const Tensor & b )

◆ operator<=() [3/9]

Scalar operator<= ( const Scalar & a,
const CScalar & b )

◆ operator<=() [4/9]

Scalar operator<= ( const Scalar & a,
const Scalar & b )

◆ operator<=() [5/9]

Tensor operator<= ( const Scalar & a,
const Tensor & b )

◆ operator<=() [6/9]

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<=() [7/9]

Tensor operator<= ( const Tensor & a,
const CScalar & b )

◆ operator<=() [8/9]

Tensor operator<= ( const Tensor & a,
const Scalar & b )

◆ operator<=() [9/9]

Tensor operator<= ( const Tensor & a,
const Tensor & b )

◆ operator==() [1/13]

Scalar operator== ( const CScalar & a,
const Scalar & b )

◆ operator==() [2/13]

Tensor operator== ( const CScalar & a,
const Tensor & b )

◆ operator==() [3/13]

bool operator== ( const LabeledAxis & a,
const LabeledAxis & b )

◆ operator==() [4/13]

bool operator== ( const LabeledAxisAccessor & a,
const LabeledAxisAccessor & b )

Compare for equality between two LabeledAxisAccessor.

◆ operator==() [5/13]

Scalar operator== ( const Scalar & a,
const CScalar & b )

◆ operator==() [6/13]

Scalar operator== ( const Scalar & a,
const Scalar & b )

◆ operator==() [7/13]

Tensor operator== ( const Scalar & a,
const Tensor & b )

◆ operator==() [8/13]

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==() [9/13]

Tensor operator== ( const Tensor & a,
const CScalar & b )

◆ operator==() [10/13]

Tensor operator== ( const Tensor & a,
const Scalar & b )

◆ operator==() [11/13]

Tensor operator== ( const Tensor & a,
const Tensor & b )

◆ operator==() [12/13]

bool operator== ( const TraceableSize & lhs,
const TraceableSize & rhs )

Comparison operators

◆ operator==() [13/13]

bool operator== ( const TraceableTensorShape & lhs,
const TraceableTensorShape & rhs )

Comparison operators

◆ operator>() [1/9]

Scalar operator> ( const CScalar & a,
const Scalar & b )

◆ operator>() [2/9]

Tensor operator> ( const CScalar & a,
const Tensor & b )

◆ operator>() [3/9]

Scalar operator> ( const Scalar & a,
const CScalar & b )

◆ operator>() [4/9]

Scalar operator> ( const Scalar & a,
const Scalar & b )

◆ operator>() [5/9]

Tensor operator> ( const Scalar & a,
const Tensor & b )

◆ operator>() [6/9]

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>() [7/9]

Tensor operator> ( const Tensor & a,
const CScalar & b )

◆ operator>() [8/9]

Tensor operator> ( const Tensor & a,
const Scalar & b )

◆ operator>() [9/9]

Tensor operator> ( const Tensor & a,
const Tensor & b )

◆ operator>=() [1/9]

Scalar operator>= ( const CScalar & a,
const Scalar & b )

◆ operator>=() [2/9]

Tensor operator>= ( const CScalar & a,
const Tensor & b )

◆ operator>=() [3/9]

Scalar operator>= ( const Scalar & a,
const CScalar & b )

◆ operator>=() [4/9]

Scalar operator>= ( const Scalar & a,
const Scalar & b )

◆ operator>=() [5/9]

Tensor operator>= ( const Scalar & a,
const Tensor & b )

◆ operator>=() [6/9]

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>=() [7/9]

Tensor operator>= ( const Tensor & a,
const CScalar & b )

◆ operator>=() [8/9]

Tensor operator>= ( const Tensor & a,
const Scalar & b )

◆ operator>=() [9/9]

Tensor operator>= ( const Tensor & a,
const Tensor & b )

◆ operator>>() [1/3]

std::stringstream & operator>> ( std::stringstream & ss,
EnumSelection & es )

◆ operator>>() [2/3]

std::stringstream & operator>> ( std::stringstream & ss,
MultiEnumSelection & es )

◆ operator>>() [3/3]

template<typename T >
std::stringstream & operator>> ( std::stringstream & ss,
TensorName< T > & t )

Stream into a TensorName (used by Parsers to extract input options)

◆ operator||() [1/9]

Scalar operator|| ( const CScalar & a,
const Scalar & b )

◆ operator||() [2/9]

Tensor operator|| ( const CScalar & a,
const Tensor & b )

◆ operator||() [3/9]

Scalar operator|| ( const Scalar & a,
const CScalar & b )

◆ operator||() [4/9]

Scalar operator|| ( const Scalar & a,
const Scalar & b )

◆ operator||() [5/9]

Tensor operator|| ( const Scalar & a,
const Tensor & b )

◆ operator||() [6/9]

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||() [7/9]

Tensor operator|| ( const Tensor & a,
const CScalar & b )

◆ operator||() [8/9]

Tensor operator|| ( const Tensor & a,
const Scalar & b )

◆ operator||() [9/9]

Tensor operator|| ( const Tensor & a,
const Tensor & b )

◆ options_compatible()

bool options_compatible ( const OptionSet & opts,
const OptionSet & additional_opts )

◆ outer() [1/8]

R4 outer ( const R2 & u)

◆ outer() [2/8]

R4 outer ( const R2 & u,
const R2 & v )

◆ outer() [3/8]

SSR4 outer ( const SR2 & u)

◆ outer() [4/8]

SSR4 outer ( const SR2 & u,
const SR2 & v )

◆ outer() [5/8]

Tensor outer ( const Tensor & u)

◆ outer() [6/8]

Tensor outer ( const Tensor & ,
const Tensor &  )

Outer product

◆ outer() [7/8]

R2 outer ( const Vec & u)

◆ outer() [8/8]

R2 outer ( const Vec & u,
const Vec & v )

◆ parametric_coordinates()

std::tuple< Scalar, Scalar, Scalar > parametric_coordinates ( const Scalar & X,
const Scalar & x )

◆ pow() [1/5]

Scalar pow ( const CScalar & a,
const Scalar & n )

◆ pow() [2/5]

Tensor pow ( const CScalar & a,
const Tensor & n )

Element-wise pow.

◆ pow() [3/5]

Scalar pow ( const Scalar & a,
const CScalar & n )

◆ pow() [4/5]

Scalar pow ( const Scalar & a,
const Scalar & n )

◆ pow() [5/5]

Tensor pow ( const Tensor & a,
const Tensor & n )

Element-wise pow.

◆ 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/129]

register_NEML2_object ( AdvectiveStress )

◆ register_NEML2_object() [2/129]

register_NEML2_object ( ArrheniusParameter )

◆ register_NEML2_object() [3/129]

register_NEML2_object ( AssociativeIsotropicPlasticHardening )

◆ register_NEML2_object() [4/129]

register_NEML2_object ( AssociativeJ2FlowDirection )

◆ register_NEML2_object() [5/129]

register_NEML2_object ( AssociativeKinematicPlasticHardening )

◆ register_NEML2_object() [6/129]

register_NEML2_object ( AssociativePlasticFlow )

◆ register_NEML2_object() [7/129]

register_NEML2_object ( AvramiErofeevNucleation )

◆ register_NEML2_object() [8/129]

register_NEML2_object ( BrooksCoreyCapillaryPressure )

◆ register_NEML2_object() [9/129]

register_NEML2_object ( ChabochePlasticHardening )

◆ register_NEML2_object() [10/129]

register_NEML2_object ( ComposedModel )

◆ register_NEML2_object() [11/129]

register_NEML2_object ( ContractingGeometry )

◆ register_NEML2_object() [12/129]

register_NEML2_object ( CrackGeometricFunctionAT1 )

◆ register_NEML2_object() [13/129]

register_NEML2_object ( CrackGeometricFunctionAT2 )

◆ register_NEML2_object() [14/129]

register_NEML2_object ( CubicElasticityTensor )

◆ register_NEML2_object() [15/129]

register_NEML2_object ( CylindricalChannelGeometry )

◆ register_NEML2_object() [16/129]

register_NEML2_object ( DiffusionLimitedReaction )

◆ register_NEML2_object() [17/129]

register_NEML2_object ( EffectiveSaturation )

◆ register_NEML2_object() [18/129]

register_NEML2_object ( EffectiveVolume )

◆ register_NEML2_object() [19/129]

register_NEML2_object ( ElasticStrainRate )

◆ register_NEML2_object() [20/129]

register_NEML2_object ( ExponentialLawPermeability )

◆ register_NEML2_object() [21/129]

register_NEML2_object ( FillR2 )

◆ register_NEML2_object() [22/129]

register_NEML2_object ( FillRot )

◆ register_NEML2_object() [23/129]

register_NEML2_object ( FillSR2 )

◆ register_NEML2_object() [24/129]

register_NEML2_object ( FillWR2 )

◆ register_NEML2_object() [25/129]

register_NEML2_object ( FischerBurmeister )

◆ register_NEML2_object() [26/129]

register_NEML2_object ( FixOrientation )

◆ register_NEML2_object() [27/129]

register_NEML2_object ( FredrickArmstrongPlasticHardening )

◆ register_NEML2_object() [28/129]

register_NEML2_object ( GeneralElasticity )

◆ register_NEML2_object() [29/129]

register_NEML2_object ( GreenLagrangeStrain )

◆ register_NEML2_object() [30/129]

register_NEML2_object ( GTNYieldFunction )

◆ register_NEML2_object() [31/129]

register_NEML2_object ( GursonCavitation )

◆ register_NEML2_object() [32/129]

register_NEML2_object ( HermiteSmoothStep )

◆ register_NEML2_object() [33/129]

register_NEML2_object ( IdentityTensor )

◆ register_NEML2_object() [34/129]

register_NEML2_object ( ImplicitUpdate )

◆ register_NEML2_object() [35/129]

register_NEML2_object ( IsotropicElasticityTensor )

◆ register_NEML2_object() [36/129]

register_NEML2_object ( IsotropicMandelStress )

◆ register_NEML2_object() [37/129]

register_NEML2_object ( KocksMeckingActivationEnergy )

◆ register_NEML2_object() [38/129]

register_NEML2_object ( KocksMeckingFlowSwitch )

◆ register_NEML2_object() [39/129]

register_NEML2_object ( KocksMeckingFlowViscosity )

◆ register_NEML2_object() [40/129]

register_NEML2_object ( KocksMeckingIntercept )

◆ register_NEML2_object() [41/129]

register_NEML2_object ( KocksMeckingRateSensitivity )

◆ register_NEML2_object() [42/129]

register_NEML2_object ( KocksMeckingYieldStress )

◆ register_NEML2_object() [43/129]

register_NEML2_object ( KozenyCarmanPermeability )

◆ register_NEML2_object() [44/129]

register_NEML2_object ( LDISolidMechanicsDriver )

◆ register_NEML2_object() [45/129]

register_NEML2_object ( LinearIsotropicElasticity )

◆ register_NEML2_object() [46/129]

register_NEML2_object ( LinearIsotropicElasticJ2TrialStressUpdate )

◆ register_NEML2_object() [47/129]

register_NEML2_object ( LinearIsotropicHardening )

◆ register_NEML2_object() [48/129]

register_NEML2_object ( LinearIsotropicStrainEnergyDensity )

◆ register_NEML2_object() [49/129]

register_NEML2_object ( LinearKinematicHardening )

◆ register_NEML2_object() [50/129]

register_NEML2_object ( LinearSingleSlipHardeningRule )

◆ register_NEML2_object() [51/129]

register_NEML2_object ( MixedControlSetup )

◆ register_NEML2_object() [52/129]

register_NEML2_object ( Newton )

◆ register_NEML2_object() [53/129]

register_NEML2_object ( NewtonWithLineSearch )

◆ register_NEML2_object() [54/129]

register_NEML2_object ( NewtonWithTrustRegion )

◆ register_NEML2_object() [55/129]

register_NEML2_object ( Normality )

◆ register_NEML2_object() [56/129]

register_NEML2_object ( OlevskySinteringStress )

◆ register_NEML2_object() [57/129]

register_NEML2_object ( Orientation )

◆ register_NEML2_object() [58/129]

register_NEML2_object ( OrientationRate )

◆ register_NEML2_object() [59/129]

register_NEML2_object ( PerzynaPlasticFlowRate )

◆ register_NEML2_object() [60/129]

register_NEML2_object ( PhaseTransformationEigenstrain )

◆ register_NEML2_object() [61/129]

register_NEML2_object ( PlasticDeformationRate )

◆ register_NEML2_object() [62/129]

register_NEML2_object ( PlasticSpatialVelocityGradient )

◆ register_NEML2_object() [63/129]

register_NEML2_object ( PlasticVorticity )

◆ register_NEML2_object() [64/129]

register_NEML2_object ( PowerDegradationFunction )

◆ register_NEML2_object() [65/129]

register_NEML2_object ( PowerLawIsotropicHardeningStaticRecovery )

◆ register_NEML2_object() [66/129]

register_NEML2_object ( PowerLawKinematicHardeningStaticRecovery )

◆ register_NEML2_object() [67/129]

register_NEML2_object ( PowerLawPermeability )

◆ register_NEML2_object() [68/129]

register_NEML2_object ( PowerLawSlipRule )

◆ register_NEML2_object() [69/129]

register_NEML2_object ( ProjectileAcceleration )

◆ register_NEML2_object() [70/129]

register_NEML2_object ( R2BackwardEulerTimeIntegration )

◆ register_NEML2_object() [71/129]

register_NEML2_object ( R2Determinant )

◆ register_NEML2_object() [72/129]

register_NEML2_object ( R2IncrementToRate )

◆ register_NEML2_object() [73/129]

register_NEML2_object ( R2LinearCombination )

◆ register_NEML2_object() [74/129]

register_NEML2_object ( R2Multiplication )

◆ register_NEML2_object() [75/129]

register_NEML2_object ( R2toSR2 )

◆ register_NEML2_object() [76/129]

register_NEML2_object ( R2toWR2 )

◆ register_NEML2_object() [77/129]

register_NEML2_object ( RateIndependentPlasticFlowConstraint )

◆ register_NEML2_object() [78/129]

register_NEML2_object ( RationalDegradationFunction )

◆ register_NEML2_object() [79/129]

register_NEML2_object ( ResolvedShear )

◆ register_NEML2_object() [80/129]

register_NEML2_object ( RotationMatrix )

◆ register_NEML2_object() [81/129]

register_NEML2_object ( ScalarBackwardEulerTimeIntegration )

◆ register_NEML2_object() [82/129]

register_NEML2_object ( ScalarBilinearInterpolation )

◆ register_NEML2_object() [83/129]

register_NEML2_object ( ScalarForwardEulerTimeIntegration )

◆ register_NEML2_object() [84/129]

register_NEML2_object ( ScalarIncrementToRate )

◆ register_NEML2_object() [85/129]

register_NEML2_object ( ScalarLinearCombination )

◆ register_NEML2_object() [86/129]

register_NEML2_object ( ScalarLinearInterpolation )

◆ register_NEML2_object() [87/129]

register_NEML2_object ( ScalarMultiplication )

◆ register_NEML2_object() [88/129]

register_NEML2_object ( ScalarToDiagonalSR2 )

◆ register_NEML2_object() [89/129]

register_NEML2_object ( ScalarTwoStageThermalAnnealing )

◆ register_NEML2_object() [90/129]

register_NEML2_object ( ScalarVariableRate )

◆ register_NEML2_object() [91/129]

register_NEML2_object ( SDTSolidMechanicsDriver )

◆ register_NEML2_object() [92/129]

register_NEML2_object ( SimpleMPIScheduler )

◆ register_NEML2_object() [93/129]

register_NEML2_object ( SimpleScheduler )

◆ register_NEML2_object() [94/129]

register_NEML2_object ( SingleSlipStrengthMap )

◆ register_NEML2_object() [95/129]

register_NEML2_object ( SlopeSaturationVoceIsotropicHardening )

◆ register_NEML2_object() [96/129]

register_NEML2_object ( SR2BackwardEulerTimeIntegration )

◆ register_NEML2_object() [97/129]

register_NEML2_object ( SR2BilinearInterpolation )

◆ register_NEML2_object() [98/129]

register_NEML2_object ( SR2Determinant )

◆ register_NEML2_object() [99/129]

register_NEML2_object ( SR2ForwardEulerTimeIntegration )

◆ register_NEML2_object() [100/129]

register_NEML2_object ( SR2IncrementToRate )

◆ register_NEML2_object() [101/129]

register_NEML2_object ( SR2Invariant )

◆ register_NEML2_object() [102/129]

register_NEML2_object ( SR2LinearCombination )

◆ register_NEML2_object() [103/129]

register_NEML2_object ( SR2LinearInterpolation )

◆ register_NEML2_object() [104/129]

register_NEML2_object ( SR2toR2 )

◆ register_NEML2_object() [105/129]

register_NEML2_object ( SR2TwoStageThermalAnnealing )

◆ register_NEML2_object() [106/129]

register_NEML2_object ( SR2VariableRate )

◆ register_NEML2_object() [107/129]

register_NEML2_object ( StaticHybridScheduler )

◆ register_NEML2_object() [108/129]

register_NEML2_object ( SumSlipRates )

◆ register_NEML2_object() [109/129]

register_NEML2_object ( SwellingAndPhaseChangeDeformationJacobian )

◆ register_NEML2_object() [110/129]

register_NEML2_object ( SymmetricHermiteInterpolation )

◆ register_NEML2_object() [111/129]

register_NEML2_object ( SymmetryFromOrbifold )

◆ register_NEML2_object() [112/129]

register_NEML2_object ( ThermalDeformationJacobian )

◆ register_NEML2_object() [113/129]

register_NEML2_object ( ThermalEigenstrain )

◆ register_NEML2_object() [114/129]

register_NEML2_object ( TransientDriver )

◆ register_NEML2_object() [115/129]

register_NEML2_object ( VanGenuchtenCapillaryPressure )

◆ register_NEML2_object() [116/129]

register_NEML2_object ( VecBackwardEulerTimeIntegration )

◆ register_NEML2_object() [117/129]

register_NEML2_object ( VecBilinearInterpolation )

◆ register_NEML2_object() [118/129]

register_NEML2_object ( VecForwardEulerTimeIntegration )

◆ register_NEML2_object() [119/129]

register_NEML2_object ( VecIncrementToRate )

◆ register_NEML2_object() [120/129]

register_NEML2_object ( VecLinearCombination )

◆ register_NEML2_object() [121/129]

register_NEML2_object ( VecLinearInterpolation )

◆ register_NEML2_object() [122/129]

register_NEML2_object ( VecVariableRate )

◆ register_NEML2_object() [123/129]

register_NEML2_object ( VoceIsotropicHardening )

◆ register_NEML2_object() [124/129]

register_NEML2_object ( VoceSingleSlipHardeningRule )

◆ register_NEML2_object() [125/129]

register_NEML2_object ( VolumeAdjustDeformationGradient )

◆ register_NEML2_object() [126/129]

register_NEML2_object ( VolumeChangeEigenstrain )

◆ register_NEML2_object() [127/129]

register_NEML2_object ( WR2ExplicitExponentialTimeIntegration )

◆ register_NEML2_object() [128/129]

register_NEML2_object ( WR2ImplicitExponentialTimeIntegration )

◆ register_NEML2_object() [129/129]

register_NEML2_object ( YieldFunction )

◆ reserved_subaxis_names()

std::vector< std::string > reserved_subaxis_names ( )

◆ resolve_tensor_name()

template<typename T >
const T & resolve_tensor_name ( const TensorName< T > & tn,
Model * caller,
const std::string & pname )

◆ set_default_dtype()

void set_default_dtype ( Dtype dtype)

Set default dtype

◆ set_default_integer_dtype()

void set_default_integer_dtype ( Dtype dtype)

Set default integer dtype.

◆ skew_to_full()

Tensor skew_to_full ( const Tensor & skew,
Size dim = 0 )

Convert a Tensor from skew vector notation to full notation.

See full_to_skew for a detailed explanation.

Parameters
skewThe input tensor in skew notation
dimThe base dimension where the symmetric axes start
Returns
Tensor The resulting tensor in full notation.

◆ timed_sections()

std::map< std::string, std::map< std::string, unsigned long > > & timed_sections ( )

◆ to_assembly()

template<std::size_t N>
Tensor to_assembly ( const Tensor & from,
const std::array< TensorShapeRef, N > & intmd_shapes,
const std::array< TensorShapeRef, N > & base_shapes,
const std::string & debug_name )

◆ to_assembly< 1 >()

template Tensor to_assembly< 1 > ( const Tensor & ,
const std::array< TensorShapeRef, 1 > & ,
const std::array< TensorShapeRef, 1 > & ,
const std::string &  )

◆ to_assembly< 2 >()

template Tensor to_assembly< 2 > ( const Tensor & ,
const std::array< TensorShapeRef, 2 > & ,
const std::array< TensorShapeRef, 2 > & ,
const std::string &  )

◆ to_assembly< 3 >()

template Tensor to_assembly< 3 > ( const Tensor & ,
const std::array< TensorShapeRef, 3 > & ,
const std::array< TensorShapeRef, 3 > & ,
const std::string &  )

◆ tr() [1/4]

Scalar tr ( const R2 & A)

◆ tr() [2/4]

Scalar tr ( const SR2 & A)

◆ tr() [3/4]

Scalar tr ( const Tensor & )

Trace of a second order tensor

◆ tr() [4/4]

Scalar tr ( const WR2 & A)

◆ transform_from_quaternion()

R2 transform_from_quaternion ( const Quaternion & q)

Construct from quaternions, useful for comparison to old NEML.

◆ valuemap_cat_reduce()

ValueMap valuemap_cat_reduce ( const std::vector< ValueMap > & results,
Size dynamic_dim )

Concatenate the tensors in the ValueMap along the batch dimension.

Parameters
resultsThe results to concatenate
dynamic_dimThe dynamic dimension along which to concatenate
Returns
ValueMap with the tensors concatenated along the dynamic dimension

◆ valuemap_move_device()

ValueMap valuemap_move_device ( ValueMap && x,
Device device )

Move all tensors in a ValueMap to a device.

Parameters
xinput ValueMap
devicetarget device
Returns
ValueMap with all tensors moved

◆ valuemap_no_operation()

ValueMap valuemap_no_operation ( ValueMap && x)

No operation.

◆ vdot()

Scalar vdot ( const Tensor & u,
const Tensor & v )

Vector-vector dot product.

◆ vol() [1/4]

R2 vol ( const R2 & A)

◆ vol() [2/4]

SR2 vol ( const SR2 & A)

◆ vol() [3/4]

Tensor vol ( const Tensor & )

Volumetric part of a second order tensor

◆ vol() [4/4]

WR2 vol ( const WR2 & A)

Variable Documentation

◆ eps

auto eps = std::numeric_limits<double>::epsilon()
constexpr

Constants.

◆ FORCES

const std::string FORCES = "forces"
inline

◆ invsqrt2

double invsqrt2 = 0.7071067811865475
constexpr

◆ kCPU

auto kCPU = c10::DeviceType::CPU
constexpr

◆ kCUDA

auto kCUDA = c10::DeviceType::CUDA
constexpr

◆ kFloat16

auto kFloat16 = c10::kHalf
constexpr

◆ kFloat32

auto kFloat32 = c10::kFloat
constexpr

◆ kFloat64

auto kFloat64 = c10::kDouble
constexpr

◆ kInt16

auto kInt16 = c10::kShort
constexpr

◆ kInt32

auto kInt32 = c10::kInt
constexpr

◆ kInt64

auto kInt64 = c10::kLong
constexpr

◆ kInt8

auto kInt8 = c10::kChar
constexpr

Fixed width dtypes (mirroring the definition in <torch/csrc/api/include/torch/types.h>)

◆ mandel_index

std::array<std::array<Size, 2>, 6> mandel_index
constexpr
Initial value:
{std::array<Size, 2>{0, 0},
std::array<Size, 2>{1, 1},
std::array<Size, 2>{2, 2},
std::array<Size, 2>{1, 2},
std::array<Size, 2>{0, 2},
std::array<Size, 2>{0, 1}}

◆ mandel_reverse_index

std::array<std::array<Size, 3>, 3> mandel_reverse_index
constexpr
Initial value:
{
std::array<Size, 3>{0, 5, 4}, std::array<Size, 3>{5, 1, 3}, std::array<Size, 3>{4, 3, 2}}

◆ OLD_FORCES

const std::string OLD_FORCES = "old_forces"
inline

◆ OLD_STATE

const std::string OLD_STATE = "old_state"
inline

◆ PARAMETERS

const std::string PARAMETERS = "parameters"
inline

◆ RESIDUAL

const std::string RESIDUAL = "residual"
inline

◆ skew_factor

std::array<std::array<double, 3>, 3> skew_factor
constexpr
Initial value:
{std::array<double, 3>{0.0, -1.0, 1.0},
std::array<double, 3>{1.0, 0.0, -1.0},
std::array<double, 3>{-1.0, 1.0, 0.0}}

◆ skew_reverse_index

std::array<std::array<Size, 3>, 3> skew_reverse_index
constexpr
Initial value:
{
std::array<Size, 3>{0, 2, 1}, std::array<Size, 3>{2, 0, 0}, std::array<Size, 3>{1, 0, 0}}

◆ sqrt2

double sqrt2 = 1.4142135623730951
constexpr

◆ STATE

const std::string STATE = "state"
inline