Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
PolycrystallineMaterialBase.h
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8
9#ifndef model_PolycrystallineMaterialBase_H_
10#define model_PolycrystallineMaterialBase_H_
11
12#include <string>
13#include <numbers>
14#include <TerminalColors.h> // defines mode::cout
15#include <TextFileParser.h>
16
17namespace model
18{
19
21 {
22
23 static constexpr double kB_SI=1.38064852e-23; // Boltzmann constant [J/K]
24 static constexpr double eV2J=1.6021766208e-19; // Convert [eV] to [J]
25 const std::string materialFile;
26 const std::string materialName;
27
28 const std::string crystalStructure;
30
31 // Material constants in SI units
32 const double T; // simulation temparature [K]
33 const double Tm; // Melting temparature [K]
34 const double mu0_SI; // [Pa]
35 const double mu1_SI; // [Pa/K]
36 const double mu_SI; // temperature-dependent shear modulus mu=mu0+mu1*T [Pa]
37 const double nu; // Poisson's ratio
38 const double E_SI; // Poisson's ratio
39 const double rho_SI; // mass density [Kg/m^3]
40 const double cs_SI; // shear wave speed [m/s]
41 const double b_SI; // Burgers vector [m]
42
43 // Material constants in code units
44 const double kB; // Boltzmann constant [-]
45 const double mu; // shear modulus [-]
46 const double b; // Burgers vector [-]
47 const double cs; // shear wave speed [-]
48 const double C1; // 1-nu
49 const double C2; // 1.0/(4.0*M_PI*C1)
50 const double C3; // 1.0-2.0*nu;
51 const double C4; // 0.5*C2;
52
53 const std::set<std::string> enabledSlipSystems;
54 const std::set<std::string> enabledSecondPhases;
55
56 static const std::string& getMaterialFile(const std::string& fileName);
57 PolycrystallineMaterialBase(const std::string& fileName,const double& absoluteTemperature);
58 bool isEnabledPlane(const std::string& planeStr) const;
59 bool isEnabledSlipSystem(const std::string& ssStr) const;
60
61 };
62}
63#endif
bool isEnabledPlane(const std::string &planeStr) const
const std::set< std::string > enabledSlipSystems
PolycrystallineMaterialBase(const std::string &fileName, const double &absoluteTemperature)
const std::set< std::string > enabledSecondPhases
bool isEnabledSlipSystem(const std::string &ssStr) const
static const std::string & getMaterialFile(const std::string &fileName)