#include <G4CrystalExtension.hh>
|
| G4CrystalExtension (G4Material *, const G4String &name="crystal") |
|
| ~G4CrystalExtension () override |
|
void | Print () const override |
|
G4Material * | GetMaterial () |
|
void | SetMaterial (G4Material *aMat) |
|
void | SetUnitCell (G4CrystalUnitCell *aUC) |
|
G4CrystalUnitCell * | GetUnitCell () const |
|
const Elasticity & | GetElasticity () const |
|
const ReducedElasticity & | GetElReduced () const |
|
G4double | GetCijkl (G4int i, G4int j, G4int k, G4int l) const |
|
void | SetElReduced (const ReducedElasticity &mat) |
|
void | SetCpq (G4int p, G4int q, G4double value) |
|
G4double | GetCpq (G4int p, G4int q) const |
|
G4CrystalAtomBase * | GetAtomBase (const G4Element *anElement) |
|
void | AddAtomBase (const G4Element *anElement, G4CrystalAtomBase *aBase) |
|
G4CrystalAtomBase * | GetAtomBase (G4int anElIdx) |
|
void | AddAtomBase (G4int anElIdx, G4CrystalAtomBase *aLattice) |
|
G4bool | GetAtomPos (const G4Element *anEl, std::vector< G4ThreeVector > &vecout) |
|
G4bool | GetAtomPos (std::vector< G4ThreeVector > &vecout) |
|
G4bool | GetAtomPos (G4int anElIdx, std::vector< G4ThreeVector > &vecout) |
|
G4complex | ComputeStructureFactor (G4double kScatteringVector, G4int h, G4int k, G4int l) |
|
G4complex | ComputeStructureFactorGeometrical (G4int h, G4int k, G4int l) |
|
void | AddAtomicBond (G4AtomicBond *aBond) |
|
G4AtomicBond * | GetAtomicBond (G4int idx) |
|
std::vector< G4AtomicBond * > | GetAtomicBondVector () |
|
| G4VMaterialExtension (const G4String &name) |
|
virtual | ~G4VMaterialExtension () |
|
virtual void | Print () const =0 |
|
const std::size_t & | GetHash () const |
|
const G4String & | GetName () const |
|
Definition at line 60 of file G4CrystalExtension.hh.
◆ Elasticity
typedef G4double G4CrystalExtension::Elasticity[3][3][3][3] |
◆ ReducedElasticity
typedef G4double G4CrystalExtension::ReducedElasticity[6][6] |
◆ G4CrystalExtension()
G4CrystalExtension::G4CrystalExtension |
( |
G4Material * |
mat, |
|
|
const G4String & |
name = "crystal" |
|
) |
| |
◆ ~G4CrystalExtension()
G4CrystalExtension::~G4CrystalExtension |
( |
| ) |
|
|
override |
◆ AddAtomBase() [1/2]
◆ AddAtomBase() [2/2]
Definition at line 138 of file G4CrystalExtension.hh.
138 {
140 }
void AddAtomBase(const G4Element *anElement, G4CrystalAtomBase *aBase)
const G4Element * GetElement(G4int iel) const
◆ AddAtomicBond()
void G4CrystalExtension::AddAtomicBond |
( |
G4AtomicBond * |
aBond | ) |
|
|
inline |
◆ ComputeStructureFactor()
Definition at line 49 of file G4CrystalExtension.cc.
53 {
54
55
56
58
61
63
64 for(
const auto& anAtomPos :
GetAtomBase(anElement)->GetPos())
65 {
67 + k * anAtomPos.y()
68 + l * anAtomPos.z();
69 GFS +=
G4complex(std::cos(CLHEP::twopi * aDouble),
70 std::sin(CLHEP::twopi * aDouble));
71 }
72
73
74 SF +=
G4complex(AFF * GFS.real(),AFF * GFS.imag());
75 }
76 return SF;
77}
std::complex< G4double > G4complex
G4CrystalAtomBase * GetAtomBase(const G4Element *anElement)
const G4ElementVector * GetElementVector() const
◆ ComputeStructureFactorGeometrical()
Definition at line 81 of file G4CrystalExtension.cc.
84 {
85
87
89 for(
const auto& anAtomPos :
GetAtomBase(anElement)->GetPos())
90 {
92 h * anAtomPos.x() + k * anAtomPos.y() + l * anAtomPos.z();
93 GFS +=
G4complex(std::cos(CLHEP::twopi * aDouble),
94 std::sin(CLHEP::twopi * aDouble));
95 }
96 }
97 return GFS;
98}
◆ GetAtomBase() [1/2]
◆ GetAtomBase() [2/2]
◆ GetAtomicBond()
◆ GetAtomicBondVector()
std::vector< G4AtomicBond * > G4CrystalExtension::GetAtomicBondVector |
( |
| ) |
|
|
inline |
◆ GetAtomPos() [1/3]
Definition at line 134 of file G4CrystalExtension.cc.
134 {
135 std::vector<G4ThreeVector>
pos;
136 for(
auto & asinglepos:
GetAtomBase(anEl)->GetPos()){
139 vecout.insert(std::end(vecout), std::begin(pos), std::end(pos));
140 }
141 return true;
142}
G4bool FillAtomicPos(G4ThreeVector &pos, std::vector< G4ThreeVector > &vecout)
Referenced by GetAtomPos().
◆ GetAtomPos() [2/3]
Definition at line 149 of file G4CrystalExtension.hh.
149 {
151 return true;
152 }
G4bool GetAtomPos(const G4Element *anEl, std::vector< G4ThreeVector > &vecout)
◆ GetAtomPos() [3/3]
Definition at line 146 of file G4CrystalExtension.cc.
146 {
147 std::vector<G4ThreeVector>
pos;
148 vecout.clear();
152 vecout.insert(std::end(vecout), std::begin(pos), std::end(pos));
153 }
154 return true;
155}
◆ GetCijkl()
◆ GetCpq()
◆ GetElasticity()
const Elasticity & G4CrystalExtension::GetElasticity |
( |
| ) |
const |
|
inline |
◆ GetElReduced()
◆ GetMaterial()
◆ GetUnitCell()
◆ Print()
void G4CrystalExtension::Print |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ SetCpq()
◆ SetElReduced()
Definition at line 102 of file G4CrystalExtension.cc.
102 {
103 for (size_t i=0; i<6; ++i) {
104 for (size_t j=0; j<6; ++j) {
106 }
107 }
108}
◆ SetMaterial()
void G4CrystalExtension::SetMaterial |
( |
G4Material * |
aMat | ) |
|
|
inline |
◆ SetUnitCell()
◆ fElasticity
◆ fElReduced
The documentation for this class was generated from the following files: