NEML2 2.0.0
Loading...
Searching...
No Matches
CrystalGeometry Class Reference

Defines the geometry of a crystal system This includes a basic definition of the crystal lattice, via Bravais vectors and a CrystalClass object defining the crystal symmetry as well as the definition of the geometry of each slip system. More...

Detailed Description

Defines the geometry of a crystal system This includes a basic definition of the crystal lattice, via Bravais vectors and a CrystalClass object defining the crystal symmetry as well as the definition of the geometry of each slip system.

#include <CrystalGeometry.h>

Inheritance diagram for CrystalGeometry:

Public Member Functions

 CrystalGeometry (const OptionSet &options)
 Setup from parameter set.
 
 CrystalGeometry (const OptionSet &options, const R2 &cclass, const Vec &lattice_vectors)
 Alternate constructor not relying on options.
 
Vec a1 () const
 accessor for the first lattice vector
 
Vec a2 () const
 accessor for the second lattice vector
 
Vec a3 () const
 accessor for the third lattice vector
 
Vec b1 () const
 accessor for the first reciprocal lattice vector
 
Vec b2 () const
 accessor for the second reciprocal lattice vector
 
Vec b3 () const
 accessor for the third reciprocal lattice vector
 
Size nslip () const
 Total number of slip systems.
 
Size nslip_groups () const
 Number of slip groups.
 
Size nslip_in_group (Size i) const
 Number of slip systems in a given group.
 
const Veccartesian_slip_directions () const
 Accessor for the slip directions.
 
const Veccartesian_slip_planes () const
 Accessor for the slip planes.
 
const Scalarburgers () const
 Accessor for the burgers vector.
 
const R2A () const
 Accessor for the full Schmid tensors.
 
const SR2M () const
 Accessor for the symmetric Schmid tensors.
 
const WR2W () const
 Accessor for the skew-symmetric Schmid tensors.
 
const R2symmetry_operators () const
 Accessor for the crystal class symmetry operators.
 
template<class Derived , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<Derived>, Derived>>>
Derived slip_slice (const Derived &tensor, Size grp) const
 Slice a Tensor to provide only the batch associated with a slip system.
 
- Public Member Functions inherited from Data
 Data (const OptionSet &options)
 Construct a new Data object.
 
const std::vector< Data * > & registered_data () const
 All the registered data objects.
 
- Public Member Functions inherited from NEML2Object
 NEML2Object ()=delete
 
 NEML2Object (NEML2Object &&)=delete
 
 NEML2Object (const NEML2Object &)=delete
 
NEML2Objectoperator= (const NEML2Object &)=delete
 
NEML2Objectoperator= (NEML2Object &&)=delete
 
virtual ~NEML2Object ()=default
 
 NEML2Object (const OptionSet &options)
 Construct a new NEML2Object object.
 
const OptionSetinput_options () const
 
virtual void setup ()
 Setup this object.
 
const std::string & name () const
 A readonly reference to the object's name.
 
const std::string & type () const
 A readonly reference to the object's type.
 
const std::string & path () const
 A readonly reference to the object's path.
 
const std::string & doc () const
 A readonly reference to the object's docstring.
 
template<typename T = NEML2Object>
const T * host () const
 Get a readonly pointer to the host.
 
template<typename T = NEML2Object>
T * host ()
 Get a writable pointer to the host.
 
- Public Member Functions inherited from BufferStore
 BufferStore (OptionSet options, NEML2Object *object)
 
 BufferStore (const BufferStore &)=delete
 
 BufferStore (BufferStore &&)=delete
 
BufferStoreoperator= (const BufferStore &)=delete
 
BufferStoreoperator= (BufferStore &&)=delete
 
virtual ~BufferStore ()=default
 
const Storage< std::string, TensorValueBase > & named_buffers () const
 
Storage< std::string, TensorValueBase > & named_buffers ()
 
TensorValueBaseget_buffer (const std::string &name)
 }@
 
const TensorValueBaseget_buffer (const std::string &name) const
 Get a read-only reference of a buffer.
 

Static Public Member Functions

static OptionSet expected_options ()
 Input options.
 
- Static Public Member Functions inherited from Data
static OptionSet expected_options ()
 
- Static Public Member Functions inherited from NEML2Object
static OptionSet expected_options ()
 

Additional Inherited Members

- Protected Member Functions inherited from Data
template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<Data, T>>>
T & register_data (const std::string &name)
 
- Protected Member Functions inherited from BufferStore
virtual void send_buffers_to (const torch::TensorOptions &options)
 Send all buffers to options.
 
template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>>
const T & declare_buffer (const std::string &name, const T &rawval)
 Declare a buffer.
 
template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>>
const T & declare_buffer (const std::string &name, const CrossRef< T > &crossref)
 Declare a buffer.
 
template<typename T , typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>>
const T & declare_buffer (const std::string &name, const std::string &input_option_name)
 Declare a buffer.
 
- Protected Attributes inherited from Data
std::vector< Data * > _registered_data
 Registered Data objects.
 

Constructor & Destructor Documentation

◆ CrystalGeometry() [1/2]

Setup from parameter set.

◆ CrystalGeometry() [2/2]

CrystalGeometry ( const OptionSet & options,
const R2 & cclass,
const Vec & lattice_vectors )

Alternate constructor not relying on options.

Member Function Documentation

◆ A()

const R2 & A ( ) const
inline

Accessor for the full Schmid tensors.

◆ a1()

Vec a1 ( ) const

accessor for the first lattice vector

◆ a2()

Vec a2 ( ) const

accessor for the second lattice vector

◆ a3()

Vec a3 ( ) const

accessor for the third lattice vector

◆ b1()

Vec b1 ( ) const

accessor for the first reciprocal lattice vector

◆ b2()

Vec b2 ( ) const

accessor for the second reciprocal lattice vector

◆ b3()

Vec b3 ( ) const

accessor for the third reciprocal lattice vector

◆ burgers()

const Scalar & burgers ( ) const
inline

Accessor for the burgers vector.

◆ cartesian_slip_directions()

const Vec & cartesian_slip_directions ( ) const
inline

Accessor for the slip directions.

◆ cartesian_slip_planes()

const Vec & cartesian_slip_planes ( ) const
inline

Accessor for the slip planes.

◆ expected_options()

OptionSet expected_options ( )
static

Input options.

◆ M()

const SR2 & M ( ) const
inline

Accessor for the symmetric Schmid tensors.

◆ nslip()

Size nslip ( ) const

Total number of slip systems.

◆ nslip_groups()

Size nslip_groups ( ) const

Number of slip groups.

◆ nslip_in_group()

Size nslip_in_group ( Size i) const

Number of slip systems in a given group.

◆ slip_slice()

template<class Derived , typename >
Derived slip_slice ( const Derived & tensor,
Size grp ) const

Slice a Tensor to provide only the batch associated with a slip system.

◆ symmetry_operators()

const R2 & symmetry_operators ( ) const
inline

Accessor for the crystal class symmetry operators.

◆ W()

const WR2 & W ( ) const
inline

Accessor for the skew-symmetric Schmid tensors.