oILAB
Loading...
Searching...
No Matches
GbMesoStateEnsemble.h
Go to the documentation of this file.
1//
2// Created by Nikhil Chandra Admal on 5/17/24.
3//
4
5#ifndef OILAB_GBMESOSTATES_H
6#define OILAB_GBMESOSTATES_H
7
8#include <GbShifts.h>
9#include <deque>
10#include <GbMesoState.h>
11#include <GbContinuum.h>
12#include <Ensemble.h>
13
14namespace gbLAB {
18 template<int dim>
19 class GbMesoStateEnsemble : public GbShifts<dim>,
20 public Ensemble<XTuplet,GbMesoState<dim>,GbMesoStateEnsemble<dim>>
21 {
23 using BicrystalLatticeVectors= std::vector<LatticeVector<dim>>;
24 //using Constraints= Eigen::Tensor<int,dim>;
26
27
37 //const Eigen::Vector<int,dim>& scales);
38
39 static std::deque<std::tuple<LatticeVector<dim>,VectorDimD,int>> bsPairsFromConstraints(const std::vector<std::pair<LatticeVector<dim>, VectorDimD>>& bShiftPairs,
40 const Constraints& constraints);
41 public:
45 std::vector<LatticeVector<dim>> ensembleCslVectors;
46
51
52
56 const double& bhalfMax);
57
63 std::map<Constraints ,GbMesoState<dim>> collectMesoStates(const std::string& filename="") const;
64
65 static std::deque<Constraints> enumerateConstraints(const GbShifts<dim>& gbs);
66
72 //std::map<Constraints,GbMesoState<dim>> evolveMesoStates(const double& temperature, const int& resetEvery, const int& maxIterations, const std::string& filename="") const;
73
74
75 GbMesoState<dim> constructMesoState(const Constraints& constraints) const;
76
77 Constraints sampleNewState(const Constraints& currentConstraints,
78 const bool& randomize= false) const;
79
81
82 };
83
84}
85
87#endif //OILAB_GBMESOSTATES_H
Definition Gb.h:16
std::map< Constraints, GbMesoState< dim > > collectMesoStates(const std::string &filename="") const
Constructs an ensemble of mesostates.
std::vector< LatticeVector< dim > > BicrystalLatticeVectors
Constraints sampleNewState(const Constraints &currentConstraints, const bool &randomize=false) const
static std::deque< Constraints > enumerateConstraints(const GbShifts< dim > &gbs)
typename LatticeCore< dim >::VectorDimD VectorDimD
static BicrystalLatticeVectors getBicrystalConfig(const GbShifts< dim > &gbs, std::vector< LatticeVector< dim > > &ensembleCslVectors)
Constructs bicrystalConfig and ensembleCslVectors.
std::vector< LatticeVector< dim > > ensembleCslVectors
static std::deque< std::tuple< LatticeVector< dim >, VectorDimD, int > > bsPairsFromConstraints(const std::vector< std::pair< LatticeVector< dim >, VectorDimD > > &bShiftPairs, const Constraints &constraints)
BicrystalLatticeVectors bicrystalConfig
GbMesoState< dim > constructMesoState(const Constraints &constraints) const
Evove mesostates using a Monte Carlo algorithm.
std::vector< std::pair< LatticeVector< dim >, VectorDimD > > bShiftPairs
Definition GbShifts.h:27
const Gb< dim > & gb
Definition GbShifts.h:24
const ReciprocalLatticeVector< dim > & axis
Definition GbShifts.h:25
LatticeVector class.
Eigen::Matrix< double, dim, 1 > VectorDimD
Definition LatticeCore.h:24