namespace ewalena  0.2.15
ewalena is not an acronym
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Enumerations | Functions
ewalena::Crystal Namespace Reference

Classes

class  CrystalFieldBase
 Base class for crystal fields of empirical moduli. More...
class  DielectricField
 Dielectric field. More...
class  ElasticField
 Elastic field. More...
class  FerroelectricField
 Ferroelectric field. More...
class  PiezoelectricField
 Piezoelectric field. More...
class  PyroelectricField
 Pyroelectric field. More...

Enumerations

enum  SymmetryFlag {
  null = 0, triclinic = 0x0001, monoclinic = 0x0002, orthorhombic = 0x0003,
  tetragonal = 0x0004, trigonal = 0x0005, hexagonal = 0x0006, cubic = 0x0007,
  k32 = 0x0035
}

Functions

template<int dim, typename ValueType >
Tensor< dim, 2, ValueType > contract (const CrystalFieldBase< dim, 4, ValueType > &T_a, const Tensor< dim, 2, ValueType > &T_b)
template<class STREAM >
STREAM & operator<< (STREAM &stream, const SymmetryFlag symmetry_flag)

Enumeration Type Documentation

Crystal space groups are divided into seven systems according to their geometric symmetries. They are: triclinic, monoclinic, orthorhombic, tetragonal, trigonal (hexagonal-trigonal), hexagonal (hexagonal-hexagonal), and cubic.

     ewalena::Vector<double> moduli ();
     ewalena::Crystal::ElasticField elastic_field (moduli, ewalena::SymmetryFlag::cubic);
     elastic_field.distribute_moduli ();
     

Some tensors of empirical moduli are fully spcified by a crystal symmetry group (all classes are equivalent). Over specification of symmetry flags is allowed, but under specification is not. In other words, specifying specifying a...

In this case the following (over specified) declaration of the elastic field is equivalent to that above.

     ewalena::Crystal::ElasticField elastic_field (moduli, ewalena::SymmetryFlag::cubic, ewalena::SymmetryFlag::one);
     

Table - quick reference.

null 0
triclinic 1
monoclinic 2
orthorhombic3
tetragonal 4
trigonal 5
hexagonal 6
cubic 7
Author:
Toby D. Young 2010, 2012.
Enumerator:
null 

A null symmetry used do denote a unknown, unused, or no existing symmetry group.

triclinic 

triclinic

monoclinic 

monoclinic

orthorhombic 

orthohombic

tetragonal 

tetragonal

trigonal 

hexagonal-trigonal

hexagonal 

hexagonal-hexagonal

cubic 

cubic

k32 

32 (third group of trigonal)


Function Documentation

template<int dim, typename ValueType >
Tensor<dim, 2, ValueType> ewalena::Crystal::contract ( const CrystalFieldBase< dim, 4, ValueType > &  T_a,
const Tensor< dim, 2, ValueType > &  T_b 
) [inline]

Contract two tensors with normal ordering: $T_{ij}=T_{(a)ijkl}v_{(b)kl}$.

template<class STREAM >
STREAM& ewalena::Crystal::operator<< ( STREAM &  stream,
const SymmetryFlag  symmetry_flag 
) [inline]

Output stream operator that outputs the name of the symmetry flag.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines