High Performance Plasticity  0.5.0
hpp::SpectralPolycrystalCUDA< T, N > Class Template Reference

#include <crystalCUDA.h>

Collaboration diagram for hpp::SpectralPolycrystalCUDA< T, N >:

Public Member Functions

 SpectralPolycrystalCUDA ()
 
 SpectralPolycrystalCUDA (std::vector< SpectralCrystalCUDA< T >> &crystals, const CrystalPropertiesCUDA< T, N > &crystalProps, const SpectralDatabase< T > &dbIn)
 
 SpectralPolycrystalCUDA (std::vector< SpectralCrystalCUDA< T >> &crystals, const CrystalPropertiesCUDA< T, N > &crystalProps, const SpectralDatabaseUnified< T > &dbIn)
 
void doGPUSetup ()
 
void doSetup (std::vector< SpectralCrystalCUDA< T >> &crystals, const CrystalPropertiesCUDA< T, N > &crystalProps)
 
void resetRandomOrientations (T init_s, unsigned long int seed)
 
void resetGivenOrientations (T init_s, const std::vector< EulerAngles< T >> &angleList)
 
void resetHistories ()
 
void step (const hpp::Tensor2< T > &L_next, T dt)
 
void step (const hpp::Tensor2< T > &F_next, const hpp::Tensor2< T > &L_next, T dt)
 
void evolve (T t_start, T t_end, T dt, std::function< hpp::Tensor2< T >(T t)> F_of_t, std::function< hpp::Tensor2< T >(T t)> L_of_t)
 
std::vector< EulerAngles< T > > getEulerAnglesZXZActive ()
 
GSHCoeffsCUDA< T > getGSHCoeffs ()
 
Tensor2< T > getPoleHistogram (int p0, int p1, int p2)
 
void writeResultHDF5 (std::string filename)
 
unsigned int getNTimestepsTaken ()
 
unsigned int getNComponents ()
 
unsigned long long int getNTermsComputedHardware ()
 
const std::vector< T > & getTHistory () const
 

Public Attributes

unsigned int nDsets = 9
 

Private Member Functions

std::shared_ptr< Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM > > getPoleHistogram (const VecCUDA< T, 3 > &pole)
 
void getPoleHistogram (Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM > &hist, const VecCUDA< T, 3 > &pole)
 
void writePoleHistogramHistoryHDF5 (H5::H5File &outfile, std::string dsetBaseName, std::vector< Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM >> &history, const VecCUDA< T, 3 > &pole)
 

Private Attributes

unsigned int nCrystals
 
unsigned int nCrystalPairs
 
std::shared_ptr< SpectralCrystalCUDA< T > > crystalsD
 
std::shared_ptr< CrystalPropertiesCUDA< T, N > > crystalPropsD
 
bool useUnifiedDB = false
 
SpectralDatabaseCUDA< T, 4 > dbH
 
std::shared_ptr< SpectralDatabaseCUDA< T, 4 > > dbD
 
SpectralDatabaseUnifiedCUDA< T, 4, 9 > dbUnifiedH
 
std::shared_ptr< SpectralDatabaseUnifiedCUDA< T, 4, 9 > > dbUnifiedD
 
Tensor2CUDA< T, 3, 3 > TCauchyGlobalH
 
std::shared_ptr< Tensor2CUDA< T, 3, 3 > > TCauchyGlobalD
 
int deviceID
 
cudaDeviceProp devProp
 
CudaKernelConfig stepKernelCfg
 
CudaKernelConfig reduceKernelLevel0Cfg
 
CudaKernelConfig reduceKernelLevel1Cfg
 
CudaKernelConfig gshKernelCfg
 
CudaKernelConfig gshReduceKernelLevel0Cfg
 
CudaKernelConfig gshReduceKernelLevel1Cfg
 
std::shared_ptr< Tensor2CUDA< T, 3, 3 > > TCauchyPerBlockSums
 
std::shared_ptr< Tensor2CUDA< T, 3, 3 > > TCauchyLevel0Sums
 
std::shared_ptr< GSHCoeffsCUDA< T > > gshPerBlockSums
 
std::shared_ptr< GSHCoeffsCUDA< T > > gshLevel0Sums
 
std::vector< T > tHistory
 
std::vector< Tensor2CUDA< T, 3, 3 > > TCauchyHistory
 
std::vector< Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM > > poleHistogramHistory111
 
std::vector< Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM > > poleHistogramHistory110
 
std::vector< Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM > > poleHistogramHistory100
 
std::vector< Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM > > poleHistogramHistory001
 
std::vector< Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM > > poleHistogramHistory011
 
hpp::Timer solveTimer
 
double maxMemUsedGB = 0.0
 

Detailed Description

template<typename T, unsigned int N>
class hpp::SpectralPolycrystalCUDA< T, N >

Author
Michael Malahe
Date
06/04/17

Constructor & Destructor Documentation

template<typename T, unsigned int N>
hpp::SpectralPolycrystalCUDA< T, N >::SpectralPolycrystalCUDA ( )
inline
template<typename T, unsigned int N>
hpp::SpectralPolycrystalCUDA< T, N >::SpectralPolycrystalCUDA ( std::vector< SpectralCrystalCUDA< T >> &  crystals,
const CrystalPropertiesCUDA< T, N > &  crystalProps,
const SpectralDatabase< T > &  dbIn 
)
template<typename T, unsigned int N>
hpp::SpectralPolycrystalCUDA< T, N >::SpectralPolycrystalCUDA ( std::vector< SpectralCrystalCUDA< T >> &  crystals,
const CrystalPropertiesCUDA< T, N > &  crystalProps,
const SpectralDatabaseUnified< T > &  dbIn 
)

Member Function Documentation

template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::doGPUSetup ( )
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::doSetup ( std::vector< SpectralCrystalCUDA< T >> &  crystals,
const CrystalPropertiesCUDA< T, N > &  crystalProps 
)
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::evolve ( t_start,
t_end,
dt,
std::function< hpp::Tensor2< T >(T t)>  F_of_t,
std::function< hpp::Tensor2< T >(T t)>  L_of_t 
)
template<typename T, unsigned int N>
std::vector<EulerAngles<T> > hpp::SpectralPolycrystalCUDA< T, N >::getEulerAnglesZXZActive ( )
template<typename T, unsigned int N>
GSHCoeffsCUDA<T> hpp::SpectralPolycrystalCUDA< T, N >::getGSHCoeffs ( )
template<typename T, unsigned int N>
unsigned int hpp::SpectralPolycrystalCUDA< T, N >::getNComponents ( )
template<typename T, unsigned int N>
unsigned long long int hpp::SpectralPolycrystalCUDA< T, N >::getNTermsComputedHardware ( )
template<typename T, unsigned int N>
unsigned int hpp::SpectralPolycrystalCUDA< T, N >::getNTimestepsTaken ( )
template<typename T, unsigned int N>
Tensor2<T> hpp::SpectralPolycrystalCUDA< T, N >::getPoleHistogram ( int  p0,
int  p1,
int  p2 
)
template<typename T, unsigned int N>
std::shared_ptr<Tensor2CUDA<T,HPP_POLE_FIG_HIST_DIM,HPP_POLE_FIG_HIST_DIM> > hpp::SpectralPolycrystalCUDA< T, N >::getPoleHistogram ( const VecCUDA< T, 3 > &  pole)
private
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::getPoleHistogram ( Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM > &  hist,
const VecCUDA< T, 3 > &  pole 
)
private
template<typename T, unsigned int N>
const std::vector<T>& hpp::SpectralPolycrystalCUDA< T, N >::getTHistory ( ) const
inline
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::resetGivenOrientations ( init_s,
const std::vector< EulerAngles< T >> &  angleList 
)
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::resetHistories ( )
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::resetRandomOrientations ( init_s,
unsigned long int  seed 
)
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::step ( const hpp::Tensor2< T > &  L_next,
dt 
)
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::step ( const hpp::Tensor2< T > &  F_next,
const hpp::Tensor2< T > &  L_next,
dt 
)
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::writePoleHistogramHistoryHDF5 ( H5::H5File &  outfile,
std::string  dsetBaseName,
std::vector< Tensor2CUDA< T, HPP_POLE_FIG_HIST_DIM, HPP_POLE_FIG_HIST_DIM >> &  history,
const VecCUDA< T, 3 > &  pole 
)
private
template<typename T, unsigned int N>
void hpp::SpectralPolycrystalCUDA< T, N >::writeResultHDF5 ( std::string  filename)

Member Data Documentation

template<typename T, unsigned int N>
std::shared_ptr<CrystalPropertiesCUDA<T,N> > hpp::SpectralPolycrystalCUDA< T, N >::crystalPropsD
private
template<typename T, unsigned int N>
std::shared_ptr<SpectralCrystalCUDA<T> > hpp::SpectralPolycrystalCUDA< T, N >::crystalsD
private
template<typename T, unsigned int N>
std::shared_ptr<SpectralDatabaseCUDA<T,4> > hpp::SpectralPolycrystalCUDA< T, N >::dbD
private
template<typename T, unsigned int N>
SpectralDatabaseCUDA<T,4> hpp::SpectralPolycrystalCUDA< T, N >::dbH
private
template<typename T, unsigned int N>
std::shared_ptr<SpectralDatabaseUnifiedCUDA<T,4,9> > hpp::SpectralPolycrystalCUDA< T, N >::dbUnifiedD
private
template<typename T, unsigned int N>
SpectralDatabaseUnifiedCUDA<T,4,9> hpp::SpectralPolycrystalCUDA< T, N >::dbUnifiedH
private
template<typename T, unsigned int N>
int hpp::SpectralPolycrystalCUDA< T, N >::deviceID
private
template<typename T, unsigned int N>
cudaDeviceProp hpp::SpectralPolycrystalCUDA< T, N >::devProp
private
template<typename T, unsigned int N>
CudaKernelConfig hpp::SpectralPolycrystalCUDA< T, N >::gshKernelCfg
private
template<typename T, unsigned int N>
std::shared_ptr<GSHCoeffsCUDA<T> > hpp::SpectralPolycrystalCUDA< T, N >::gshLevel0Sums
private
template<typename T, unsigned int N>
std::shared_ptr<GSHCoeffsCUDA<T> > hpp::SpectralPolycrystalCUDA< T, N >::gshPerBlockSums
private
template<typename T, unsigned int N>
CudaKernelConfig hpp::SpectralPolycrystalCUDA< T, N >::gshReduceKernelLevel0Cfg
private
template<typename T, unsigned int N>
CudaKernelConfig hpp::SpectralPolycrystalCUDA< T, N >::gshReduceKernelLevel1Cfg
private
template<typename T, unsigned int N>
double hpp::SpectralPolycrystalCUDA< T, N >::maxMemUsedGB = 0.0
private
template<typename T, unsigned int N>
unsigned int hpp::SpectralPolycrystalCUDA< T, N >::nCrystalPairs
private
template<typename T, unsigned int N>
unsigned int hpp::SpectralPolycrystalCUDA< T, N >::nCrystals
private
template<typename T, unsigned int N>
unsigned int hpp::SpectralPolycrystalCUDA< T, N >::nDsets = 9
template<typename T, unsigned int N>
std::vector<Tensor2CUDA<T,HPP_POLE_FIG_HIST_DIM,HPP_POLE_FIG_HIST_DIM> > hpp::SpectralPolycrystalCUDA< T, N >::poleHistogramHistory001
private
template<typename T, unsigned int N>
std::vector<Tensor2CUDA<T,HPP_POLE_FIG_HIST_DIM,HPP_POLE_FIG_HIST_DIM> > hpp::SpectralPolycrystalCUDA< T, N >::poleHistogramHistory011
private
template<typename T, unsigned int N>
std::vector<Tensor2CUDA<T,HPP_POLE_FIG_HIST_DIM,HPP_POLE_FIG_HIST_DIM> > hpp::SpectralPolycrystalCUDA< T, N >::poleHistogramHistory100
private
template<typename T, unsigned int N>
std::vector<Tensor2CUDA<T,HPP_POLE_FIG_HIST_DIM,HPP_POLE_FIG_HIST_DIM> > hpp::SpectralPolycrystalCUDA< T, N >::poleHistogramHistory110
private
template<typename T, unsigned int N>
std::vector<Tensor2CUDA<T,HPP_POLE_FIG_HIST_DIM,HPP_POLE_FIG_HIST_DIM> > hpp::SpectralPolycrystalCUDA< T, N >::poleHistogramHistory111
private
template<typename T, unsigned int N>
CudaKernelConfig hpp::SpectralPolycrystalCUDA< T, N >::reduceKernelLevel0Cfg
private
template<typename T, unsigned int N>
CudaKernelConfig hpp::SpectralPolycrystalCUDA< T, N >::reduceKernelLevel1Cfg
private
template<typename T, unsigned int N>
hpp::Timer hpp::SpectralPolycrystalCUDA< T, N >::solveTimer
private
template<typename T, unsigned int N>
CudaKernelConfig hpp::SpectralPolycrystalCUDA< T, N >::stepKernelCfg
private
template<typename T, unsigned int N>
std::shared_ptr<Tensor2CUDA<T,3,3> > hpp::SpectralPolycrystalCUDA< T, N >::TCauchyGlobalD
private
template<typename T, unsigned int N>
Tensor2CUDA<T,3,3> hpp::SpectralPolycrystalCUDA< T, N >::TCauchyGlobalH
private
template<typename T, unsigned int N>
std::vector<Tensor2CUDA<T,3,3> > hpp::SpectralPolycrystalCUDA< T, N >::TCauchyHistory
private
template<typename T, unsigned int N>
std::shared_ptr<Tensor2CUDA<T,3,3> > hpp::SpectralPolycrystalCUDA< T, N >::TCauchyLevel0Sums
private
template<typename T, unsigned int N>
std::shared_ptr<Tensor2CUDA<T,3,3> > hpp::SpectralPolycrystalCUDA< T, N >::TCauchyPerBlockSums
private
template<typename T, unsigned int N>
std::vector<T> hpp::SpectralPolycrystalCUDA< T, N >::tHistory
private
template<typename T, unsigned int N>
bool hpp::SpectralPolycrystalCUDA< T, N >::useUnifiedDB = false
private

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