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 "../MonteCarlo/Ensemble.h"
13
14namespace oILAB {
19template <int dim>
21 : public GbShifts<dim>,
22 public Ensemble<XTuplet, GbMesoState<dim>, GbMesoStateEnsemble<dim>> {
24 using BicrystalLatticeVectors = std::vector<LatticeVector<dim>>;
25 // using Constraints= Eigen::Tensor<int,dim>;
27
41 // const Eigen::Vector<int,dim>& scales);
42
43 static std::deque<std::tuple<LatticeVector<dim>, VectorDimD, int>>
45 const std::vector<std::pair<LatticeVector<dim>, VectorDimD>> &bShiftPairs,
46 const Constraints &constraints);
47
48public:
52 std::vector<LatticeVector<dim>> ensembleCslVectors;
53
58
62 const double &bhalfMax);
63
69 std::map<Constraints, GbMesoState<dim>>
70 collectMesoStates(const std::string &filename = "") const;
71
72 static std::deque<Constraints> enumerateConstraints(const GbShifts<dim> &gbs);
73
79 // std::map<Constraints,GbMesoState<dim>> evolveMesoStates(const double&
80 // temperature, const int& resetEvery, const int& maxIterations, const
81 // std::string& filename="") const;
82
83 GbMesoState<dim> constructMesoState(const Constraints &constraints) const;
84
85 Constraints sampleNewState(const Constraints &currentConstraints,
86 const bool &randomize = false) const;
87
89
90 };
91
92 } // namespace oILAB
93
95#endif //OILAB_GBMESOSTATES_H
Definition Gb.h:13
BicrystalLatticeVectors bicrystalConfig
static std::deque< Constraints > enumerateConstraints(const GbShifts< dim > &gbs)
std::vector< LatticeVector< dim > > ensembleCslVectors
typename LatticeCore< dim >::VectorDimD VectorDimD
Constraints sampleNewState(const Constraints &currentConstraints, const bool &randomize=false) const
GbMesoState< dim > constructMesoState(const Constraints &constraints) const
Evove mesostates using a Monte Carlo algorithm.
std::vector< LatticeVector< dim > > BicrystalLatticeVectors
static std::deque< std::tuple< LatticeVector< dim >, VectorDimD, int > > bsPairsFromConstraints(const std::vector< std::pair< LatticeVector< dim >, VectorDimD > > &bShiftPairs, const Constraints &constraints)
static BicrystalLatticeVectors getBicrystalConfig(const GbShifts< dim > &gbs, std::vector< LatticeVector< dim > > &ensembleCslVectors)
Constructs bicrystalConfig and ensembleCslVectors.
std::map< Constraints, GbMesoState< dim > > collectMesoStates(const std::string &filename="") const
Constructs an ensemble of mesostates.
std::vector< std::pair< LatticeVector< dim >, VectorDimD > > bShiftPairs
Definition GbShifts.h:28
const ReciprocalLatticeVector< dim > & axis
Definition GbShifts.h:26
const Gb< dim > & gb
Definition GbShifts.h:25
LatticeVector class.
Eigen::Matrix< double, dim, 1 > VectorDimD
Definition LatticeCore.h:20