创建材料大致分为3步,第一个是同位素G4Isotope,第二个是元素或者说是原子G4Element,第三个是最大的也就是材料G4Material。
(1)首先是同位素定义
G4Isotope *isoHe3 = new G4Isotope("He3", 2, 3, 3. * g / mole);
创建一个氦-3 (He-3) 同位素,具有2个质子和3个核子,并设置其摩尔质量为3克/摩尔。
G4Element *elHe3 = new G4Element("elHe3", "He", 1);
elHe3->AddIsotope(isoHe3, 100. * perCent);
创建一个氦-3元素对象,将He-3同位素添加到氦-3元素中,赋予其100%的丰度。
(2)定义一种单独的材料
重点是材料,也就是说这是一种纯的由一种元素构成的可见物体,例如氧气等气体。就需要名字,原子序数,摩尔质量,密度。
(3)纯化合物构成的材料:
这种材料则是由单独一种纯化合物构成的材料。因为是化合物因此需要先定义原子。定义一个原子则需要:名字、元素符号、原子序数以及摩尔质量然后再是定义材料。
(4)以元素质量比的形式创建材料
G4Material *matshale = new G4Material("shale", 2.57 * g / cm3, 12);//第三个参数是元素个数
matshale->AddElement(elSi, 21.25 * perCent);//以元素质量比的方式添加元素
matshale->AddElement(elAl, 6.12 * perCent);
matshale->AddElement(elFe, 1.08 * perCent);
matshale->AddElement(elMg, 1.5 * perCent);
matshale->AddElement(elCa, 5.97 * perCent);
matshale->AddElement(elNa, 0.19 * perCent);
matshale->AddElement(elK, 1.69 * perCent);
matshale->AddElement(elP, 0.04 * perCent);
matshale->AddElement(elS, 0.51 * perCent);
matshale->AddElement(elMn, 0.02 * perCent);
matshale->AddElement(elTi, 0.27 * perCent);
matshale->AddElement(elO, 61.36 * perCent);
这种材料类似于定义混合物,只是以元素质量比的方式定义。另外一种定义方式:混合物
G4Material* formV11;
density = 2.698 * g / cm3;
formV11 = new G4Material(name = "formV11", density, 14);
formV11->AddMaterial(SiO2, 0.797 * perCent);
formV11->AddMaterial(Al2O3, 0.117 * perCent);
formV11->AddMaterial(Fe2O3, 0.104 * perCent);
formV11->AddMaterial(MgO, 0.94 * perCent);
formV11->AddMaterial(CaO, 54.3 * perCent);
formV11->AddMaterial(Na2O, 0.019 * perCent);
formV11->AddMaterial(K2O, 0.041 * perCent);
formV11->AddMaterial(MnO, 0.003 * perCent);
formV11->AddMaterial(TiO2, 0.006 * perCent);
formV11->AddMaterial(P2O5, 0.005 * perCent);
formV11->AddMaterial(BaO, 0.002 * perCent);
formV11->AddMaterial(Sulfur, 0.01 * perCent);
formV11->AddMaterial(Water, 0.385 * perCent);
formV11->AddMaterial(C02, 43.271 * perCent);
(5)材料的使用有两种方法
一种是将定义的材料直接写在construction里面。
另外一种是定义一个Material类,将材料写在里面,这样在任何地方修改材料都可以直接写名字。
还有一种接口的方式。