High Performance Plasticity  0.5.0
hpp::Polycrystal< U > Class Template Reference

#include <crystal.h>

Collaboration diagram for hpp::Polycrystal< U >:

Public Member Functions

 Polycrystal (const std::vector< Crystal< U >> &crystal_list)
 Constructor with no MPI communicator provided. More...
 
 Polycrystal (const std::vector< Crystal< U >> &crystal_list, MPI_Comm comm)
 
 Polycrystal (const std::vector< Crystal< U >> &crystal_list, MPI_Comm comm, const PolycrystalOutputConfig &outputConfig)
 
bool step (hpp::Tensor2< U > F_next, U dt)
 
recommendNextTimestepSize (U dt)
 
void evolve (U t_start, U t_end, U dt_initial, std::function< hpp::Tensor2< U >(U t)> F_of_t)
 
Crystal< U > getCrystal (int i)
 
void writeResultHDF5 (std::string filename)
 
const std::vector< U > & getTHistory () const
 
void resetHistories ()
 
void resetRandomOrientations (U init_s, unsigned long int seed)
 
void resetGivenOrientations (U init_s, const std::vector< EulerAngles< U >> &angleList)
 
void stepVelocityGradient (hpp::Tensor2< U > L_next, U DeltaT)
 
std::vector< EulerAngles< U > > getEulerAnglesZXZActive ()
 
GSHCoeffs< U > getGSHCoeffs ()
 

Private Member Functions

void updateDerivedQuantities ()
 
void applyInitialConditions ()
 
void addTextureToHistory ()
 

Private Attributes

std::vector< Crystal< U > > crystal_list
 
PolycrystalOutputConfig outputConfig
 
hpp::Tensor2< U > T_cauchy
 
hpp::Tensor2< U > F
 
std::vector< U > t_history
 
std::vector< Tensor2< U > > T_cauchy_history
 
std::vector< Tensor2< U > > poleHistogramHistory111
 
std::vector< Tensor2< U > > poleHistogramHistory110
 
std::vector< Tensor2< U > > poleHistogramHistory100
 
std::vector< Tensor2< U > > poleHistogramHistory001
 
std::vector< Tensor2< U > > poleHistogramHistory011
 
bool useMPI = true
 
MPI_Comm comm
 
int comm_size
 
int comm_rank
 

Constructor & Destructor Documentation

template<typename U >
hpp::Polycrystal< U >::Polycrystal ( const std::vector< Crystal< U >> &  crystal_list)

Constructor with no MPI communicator provided.

Created mainly for the Python interface.

template<typename U >
hpp::Polycrystal< U >::Polycrystal ( const std::vector< Crystal< U >> &  crystal_list,
MPI_Comm  comm 
)
template<typename U >
hpp::Polycrystal< U >::Polycrystal ( const std::vector< Crystal< U >> &  crystal_list,
MPI_Comm  comm,
const PolycrystalOutputConfig outputConfig 
)

Member Function Documentation

template<typename U >
void hpp::Polycrystal< U >::addTextureToHistory ( )
private
template<typename U >
void hpp::Polycrystal< U >::applyInitialConditions ( )
private
template<typename U >
void hpp::Polycrystal< U >::evolve ( t_start,
t_end,
dt_initial,
std::function< hpp::Tensor2< U >(U t)>  F_of_t 
)
template<typename U >
Crystal<U> hpp::Polycrystal< U >::getCrystal ( int  i)
inline
template<typename U >
std::vector< EulerAngles< U > > hpp::Polycrystal< U >::getEulerAnglesZXZActive ( )
template<typename U >
&hpp::Polycrystal< double >::resetRandomOrientations &hpp::Polycrystal< double >::getEulerAnglesZXZActive & hpp::Polycrystal< U >::getGSHCoeffs ( )
template<typename U >
const std::vector<U>& hpp::Polycrystal< U >::getTHistory ( ) const
inline
template<typename U >
U hpp::Polycrystal< U >::recommendNextTimestepSize ( dt)
template<typename U >
void hpp::Polycrystal< U >::resetGivenOrientations ( init_s,
const std::vector< EulerAngles< U >> &  angleList 
)
template<typename U >
void hpp::Polycrystal< U >::resetHistories ( )
template<typename U >
void hpp::Polycrystal< U >::resetRandomOrientations ( init_s,
unsigned long int  seed 
)
template<typename U >
bool hpp::Polycrystal< U >::step ( hpp::Tensor2< U >  F_next,
dt 
)
template<typename U >
void hpp::Polycrystal< U >::stepVelocityGradient ( hpp::Tensor2< U >  L_next,
DeltaT 
)
template<typename U >
void hpp::Polycrystal< U >::updateDerivedQuantities ( )
private
template<typename U >
void hpp::Polycrystal< U >::writeResultHDF5 ( std::string  filename)

Member Data Documentation

template<typename U >
MPI_Comm hpp::Polycrystal< U >::comm
private
template<typename U >
int hpp::Polycrystal< U >::comm_rank
private
template<typename U >
int hpp::Polycrystal< U >::comm_size
private
template<typename U >
std::vector<Crystal<U> > hpp::Polycrystal< U >::crystal_list
private
template<typename U >
hpp::Tensor2<U> hpp::Polycrystal< U >::F
private
template<typename U >
PolycrystalOutputConfig hpp::Polycrystal< U >::outputConfig
private
template<typename U >
std::vector<Tensor2<U> > hpp::Polycrystal< U >::poleHistogramHistory001
private
template<typename U >
std::vector<Tensor2<U> > hpp::Polycrystal< U >::poleHistogramHistory011
private
template<typename U >
std::vector<Tensor2<U> > hpp::Polycrystal< U >::poleHistogramHistory100
private
template<typename U >
std::vector<Tensor2<U> > hpp::Polycrystal< U >::poleHistogramHistory110
private
template<typename U >
std::vector<Tensor2<U> > hpp::Polycrystal< U >::poleHistogramHistory111
private
template<typename U >
hpp::Tensor2<U> hpp::Polycrystal< U >::T_cauchy
private
template<typename U >
std::vector<Tensor2<U> > hpp::Polycrystal< U >::T_cauchy_history
private
template<typename U >
std::vector<U> hpp::Polycrystal< U >::t_history
private
template<typename U >
bool hpp::Polycrystal< U >::useMPI = true
private

The documentation for this class was generated from the following files: