40#ifndef G4CrystalExtension_HH
41#define G4CrystalExtension_HH 1
64 void Print()
const override { ; };
86 theCrystalAtomBaseMap.insert(std::pair<const G4Element*, G4CrystalAtomBase*>(anElement, aBase));
132 std::map<const G4Element*, G4CrystalAtomBase*> theCrystalAtomBaseMap;
136 std::vector<G4AtomicBond*> theAtomicBondVector;
std::complex< G4double > G4complex
G4double GetCijkl(G4int i, G4int j, G4int k, G4int l) const
void AddAtomicBond(G4AtomicBond *aBond)
void SetElReduced(const ReducedElasticity &mat)
~G4CrystalExtension() override=default
std::vector< G4AtomicBond * > GetAtomicBondVector()
G4complex ComputeStructureFactorGeometrical(G4int h, G4int k, G4int l)
G4CrystalExtension(G4Material *, const G4String &name="crystal")
G4CrystalAtomBase * GetAtomBase(const G4Element *anElement)
G4double GetCpq(G4int p, G4int q) const
void AddAtomBase(const G4Element *anElement, G4CrystalAtomBase *aBase)
const ReducedElasticity & GetElReduced() const
const Elasticity & GetElasticity() const
G4double[3][3][3][3] Elasticity
G4Material * GetMaterial()
G4CrystalUnitCell * GetUnitCell() const
G4AtomicBond * GetAtomicBond(G4int idx)
G4complex ComputeStructureFactor(G4double kScatteringVector, G4int h, G4int k, G4int l)
G4bool GetAtomPos(const G4Element *anEl, std::vector< G4ThreeVector > &vecout)
ReducedElasticity fElReduced
G4double[6][6] ReducedElasticity
void AddAtomBase(G4int anElIdx, G4CrystalAtomBase *aLattice)
void SetMaterial(G4Material *aMat)
void Print() const override
void SetUnitCell(G4CrystalUnitCell *aUC)
void SetCpq(G4int p, G4int q, G4double value)
G4bool GetAtomPos(G4int anElIdx, std::vector< G4ThreeVector > &vecout)
G4CrystalAtomBase * GetAtomBase(G4int anElIdx)
const G4Element * GetElement(G4int iel) const