8#ifndef model_GlidePlaneNoiseBase_H
9#define model_GlidePlaneNoiseBase_H
14#include <boost/math/special_functions/bessel.hpp>
16#ifdef _MODEL_GLIDE_PLANE_NOISE_GENERATOR_
48#ifdef _MODEL_GLIDE_PLANE_NOISE_GENERATOR_
51 std::default_random_engine& generator,
52 std::normal_distribution<REAL_SCALAR>& distribution)
const;
53 std::vector<REAL_SCALAR*>
realNoise(
const std::vector<COMPLEX*>& nkCorr)
const;
59 const std::string
tag;
84 const Eigen::Matrix<double,2,2>& latticeBasis);
94 virtual std::array<COMPLEX,N>
kCorrelations(
const Eigen::Matrix<double,3,1>&
k,
const Eigen::Matrix<int,3,1>& kID)
const {
return {}; };
NoiseTraitsBase::GridSizeType GridSizeType
GlidePlaneNoiseBase(const std::string &tag_in, const int &seed_in, const NoiseTraitsBase::GridSizeType &gridSize_in, const NoiseTraitsBase::GridSpacingType &gridSpacing_SI_in, const Eigen::Matrix< double, 2, 2 > &latticeBasis)
int storageIndex(const int &i, const int &j) const
void computeRealNoiseStatistics(const PolycrystallineMaterialBase &mat) const
NoiseTraitsBase::REAL_SCALAR REAL_SCALAR
NoiseTraitsBase::COMPLEX COMPLEX
std::vector< COMPLEX * > noisyKCorrelations(const std::vector< COMPLEX * > &okCorr, std::default_random_engine &generator, std::normal_distribution< REAL_SCALAR > &distribution) const
GridSizeType rowAndColIndices(const int &storageIndex) const
virtual ~GlidePlaneNoiseBase()
std::vector< std::vector< double > > sampleAverageNoise(const int &reps) const
void writeFieldSlice() const
NoiseTraits< N >::NoiseContainerType NoiseContainerType
const GridSpacingType gridLength
std::vector< std::vector< double > > averageNoiseCorrelation(const int &reps) const
static REAL_SCALAR Wk_Cai_squared(REAL_SCALAR kx, REAL_SCALAR ky, REAL_SCALAR kz, REAL_SCALAR a)
const NoiseContainerType & noiseVector() const
const GridSizeType gridSize
std::vector< REAL_SCALAR * > realNoise(const std::vector< COMPLEX * > &nkCorr) const
static REAL_SCALAR W_t_Cai(REAL_SCALAR r2, REAL_SCALAR a)
NoiseTraits< N >::NoiseType NoiseType
const Eigen::Matrix< double, 2, 2 > invTransposeLatticeBasis
const GridSpacingType gridSpacing
std::vector< COMPLEX * > originalKCorrelations() const
NoiseTraitsBase::GridSpacingType GridSpacingType
static REAL_SCALAR W_Cai(REAL_SCALAR r2, REAL_SCALAR a)
static REAL_SCALAR Wk_Cai(REAL_SCALAR kx, REAL_SCALAR ky, REAL_SCALAR kz, REAL_SCALAR a)
virtual std::array< COMPLEX, N > kCorrelations(const Eigen::Matrix< double, 3, 1 > &k, const Eigen::Matrix< int, 3, 1 > &kID) const
std::complex< double > COMPLEX
Eigen::Array< double, 3, 1 > GridSpacingType
Eigen::Array< int, 3, 1 > GridSizeType
std::vector< NoiseType > NoiseContainerType
Eigen::Matrix< REAL_SCALAR, 1, N > NoiseType