63 lines
3.2 KiB
C++
63 lines
3.2 KiB
C++
#include "Material.h"
|
|
|
|
#include "G4Element.hh"
|
|
#include "G4NistManager.hh"
|
|
#include "G4PhysicalConstants.hh"
|
|
#include "G4SystemOfUnits.hh"
|
|
|
|
void DefineMaterials() {
|
|
G4double a, z; // 摩尔质量, 原子序数
|
|
G4int ncomponents, fractionmass, natoms; // 组分数, 质量分数, 原子数
|
|
G4double density, pressure, temperature;
|
|
|
|
G4NistManager* nist = G4NistManager::Instance();
|
|
|
|
// 已有
|
|
nist->FindOrBuildMaterial("G4_AIR");
|
|
nist->FindOrBuildMaterial("G4_Al");
|
|
|
|
// 真空
|
|
density = universe_mean_density;
|
|
pressure = 3.e-18 * pascal;
|
|
temperature = 2.73 * kelvin;
|
|
new G4Material("Vacuum", z = 1., a = 1.01 * g / mole, density, kStateGas, temperature, pressure);
|
|
|
|
// 5系铝合金 0.4 Si + 0.35 Fe + 0.1 Cu + 0.7 Mn + 4.5 Mg + 0.15 Cr + 0.25 Zn + 0.15 Ti + 93.4 Al
|
|
density = 2.68 * g / cm3;
|
|
G4Material* AlAlloyS5 = new G4Material("AluminumAlloySeries5", density, ncomponents = 9);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Si"), fractionmass = .4 * perCent);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Fe"), fractionmass = .35 * perCent);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Cu"), fractionmass = .1 * perCent);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Mn"), fractionmass = .7 * perCent);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Mg"), fractionmass = 4.5 * perCent);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Cr"), fractionmass = .15 * perCent);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Zn"), fractionmass = .25 * perCent);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Ti"), fractionmass = .15 * perCent);
|
|
AlAlloyS5->AddElement(nist->FindOrBuildElement("Al"), fractionmass = 93.4 * perCent);
|
|
|
|
// 泰普龙 Taparan
|
|
density = 1.44 * g / cm3;
|
|
G4Material* Taparan = new G4Material("Taparan", density, ncomponents = 4);
|
|
Taparan->AddElement(nist->FindOrBuildElement("C"), natoms = 14);
|
|
Taparan->AddElement(nist->FindOrBuildElement("H"), natoms = 10);
|
|
Taparan->AddElement(nist->FindOrBuildElement("N"), natoms = 2);
|
|
Taparan->AddElement(nist->FindOrBuildElement("O"), natoms = 2);
|
|
|
|
// // 填充材质
|
|
density = 0.23 * g / cm3;
|
|
G4Material* midMaterial = new G4Material("midMaterial", density, ncomponents = 11);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("Al"), .3);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("Fe"), .25);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("C"), .1);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("O"), .1);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("H"), .02);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("N"), .03);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("Mg"), .1);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("Mn"), .04);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("Zn"), .03);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("Cr"), .015);
|
|
midMaterial->AddElementByMassFraction(nist->FindOrBuildElement("Ti"), .015);
|
|
|
|
std::cout << *(G4Material::GetMaterialTable()) << std::endl;
|
|
}
|