Revisão | 55598dea043b46b3d05b9c69c91c6ec2e4e38cc9 (tree) |
---|---|
Hora | 2013-08-20 11:08:25 |
Autor | Mikiya Fujii <mikiya.fujii@gmai...> |
Commiter | Mikiya Fujii |
Refactoring: cashe of real spherical harmonics index to speed up. #31814
git-svn-id: https://svn.sourceforge.jp/svnroot/molds/trunk@1475 1136aad2-a195-0410-b898-f5ea1d11b9d8
@@ -30,6 +30,7 @@ | ||
30 | 30 | #include"base/MallocerFreer.h" |
31 | 31 | #include"mpi/MpiProcess.h" |
32 | 32 | #include"base/EularAngle.h" |
33 | +#include"base/RealSphericalHarmonicsIndex.h" | |
33 | 34 | #include"base/atoms/Atom.h" |
34 | 35 | #include"base/Molecule.h" |
35 | 36 | #include"base/MolDS.h" |
@@ -37,9 +37,9 @@ EXENAME = MolDS.out | ||
37 | 37 | DEPFILE = obj/objfile.dep |
38 | 38 | LDFLAGS = |
39 | 39 | |
40 | -ALL_CPP_FILES = base/Enums.cpp base/PrintController.cpp base/MolDSException.cpp base/MallocerFreer.cpp mpi/MpiProcess.cpp mpi/AsyncCommunicator.cpp wrappers/Blas.cpp wrappers/Lapack.cpp base/Utilities.cpp base/MathUtilities.cpp base/EularAngle.cpp base/Parameters.cpp base/atoms/Atom.cpp base/atoms/Hatom.cpp base/atoms/Liatom.cpp base/atoms/Catom.cpp base/atoms/Natom.cpp base/atoms/Oatom.cpp base/atoms/Satom.cpp base/factories/AtomFactory.cpp base/Molecule.cpp base/InputParser.cpp base/GTOExpansionSTO.cpp base/RealSphericalHarmonicsIndex.cpp base/loggers/MOLogger.cpp base/loggers/DensityLogger.cpp base/loggers/HoleDensityLogger.cpp base/loggers/ParticleDensityLogger.cpp cndo/Cndo2.cpp indo/Indo.cpp zindo/ZindoS.cpp mndo/Mndo.cpp am1/Am1.cpp am1/Am1D.cpp pm3/Pm3.cpp pm3/Pm3D.cpp pm3/Pm3Pddg.cpp base/factories/ElectronicStructureFactory.cpp md/MD.cpp mc/MC.cpp rpmd/RPMD.cpp nasco/NASCO.cpp optimization/Optimizer.cpp optimization/ConjugateGradient.cpp optimization/SteepestDescent.cpp optimization/BFGS.cpp base/factories/OptimizerFactory.cpp base/MolDS.cpp Main.cpp | |
41 | -ALL_HEAD_FILES = base/Enums.h base/Uncopyable.h base/PrintController.h base/MolDSException.h base/containers/ThreadSafeQueue.h base/MallocerFreer.h mpi/MpiProcess.h mpi/AsyncCommunicator.h wrappers/Blas.h wrappers/Lapack.h base/Utilities.h base/MathUtilities.h base/EularAngle.h base/Parameters.h base/atoms/Atom.h base/atoms/Hatom.h base/atoms/Liatom.h base/atoms/Catom.h base/atoms/Natom.h base/atoms/Oatom.h base/atoms/Satom.h base/factories/AtomFactory.h base/Molecule.h base/InputParser.h base/GTOExpansionSTO.h base/RealSphericalHarmonicsIndex.h base/loggers/MOLogger.h base/loggers/DensityLogger.h base/loggers/HoleDensityLogger.h base/loggers/ParticleDensityLogger.h base/ElectronicStructure.h cndo/Cndo2.h cndo/ReducedOverlapAOsParameters.h indo/Indo.h zindo/ZindoS.h mndo/Mndo.h am1/Am1.h am1/Am1D.h pm3/Pm3.h pm3/Pm3D.h pm3/Pm3Pddg.h base/factories/ElectronicStructureFactory.h md/MD.h mc/MC.h rpmd/RPMD.h nasco/NASCO.h optimization/Optimizer.h optimization/ConjugateGradient.h optimization/SteepestDescent.h optimization/BFGS.h base/factories/OptimizerFactory.h base/MolDS.h | |
42 | -ALL_OBJ_FILES = obj/Enums.o obj/PrintController.o obj/MolDSException.o obj/MallocerFreer.o obj/MpiProcess.o obj/AsyncCommunicator.o obj/Blas.o obj/Lapack.o obj/Utilities.o obj/MathUtilities.o obj/EularAngle.o obj/Parameters.o obj/Atom.o obj/Hatom.o obj/Liatom.o obj/Catom.o obj/Natom.o obj/Oatom.o obj/Satom.o obj/AtomFactory.o obj/Molecule.o obj/InputParser.o obj/GTOExpansionSTO.o obj/RealSphericalHarmonicsIndex.o obj/MOLogger.o obj/DensityLogger.o obj/HoleDensityLogger.o obj/ParticleDensityLogger.o obj/Cndo2.o obj/Indo.o obj/ZindoS.o obj/Mndo.o obj/Am1.o obj/Am1D.o obj/Pm3.o obj/Pm3D.o obj/Pm3Pddg.o obj/ElectronicStructureFactory.o obj/MD.o obj/MC.o obj/RPMD.o obj/NASCO.o obj/Optimizer.o obj/ConjugateGradient.o obj/SteepestDescent.o obj/BFGS.o obj/OptimizerFactory.o obj/MolDS.o obj/Main.o | |
40 | +ALL_CPP_FILES = base/Enums.cpp base/PrintController.cpp base/MolDSException.cpp base/MallocerFreer.cpp mpi/MpiProcess.cpp mpi/AsyncCommunicator.cpp wrappers/Blas.cpp wrappers/Lapack.cpp base/Utilities.cpp base/MathUtilities.cpp base/EularAngle.cpp base/Parameters.cpp base/RealSphericalHarmonicsIndex.cpp base/atoms/Atom.cpp base/atoms/Hatom.cpp base/atoms/Liatom.cpp base/atoms/Catom.cpp base/atoms/Natom.cpp base/atoms/Oatom.cpp base/atoms/Satom.cpp base/factories/AtomFactory.cpp base/Molecule.cpp base/InputParser.cpp base/GTOExpansionSTO.cpp base/loggers/MOLogger.cpp base/loggers/DensityLogger.cpp base/loggers/HoleDensityLogger.cpp base/loggers/ParticleDensityLogger.cpp cndo/Cndo2.cpp indo/Indo.cpp zindo/ZindoS.cpp mndo/Mndo.cpp am1/Am1.cpp am1/Am1D.cpp pm3/Pm3.cpp pm3/Pm3D.cpp pm3/Pm3Pddg.cpp base/factories/ElectronicStructureFactory.cpp md/MD.cpp mc/MC.cpp rpmd/RPMD.cpp nasco/NASCO.cpp optimization/Optimizer.cpp optimization/ConjugateGradient.cpp optimization/SteepestDescent.cpp optimization/BFGS.cpp base/factories/OptimizerFactory.cpp base/MolDS.cpp Main.cpp | |
41 | +ALL_HEAD_FILES = base/Enums.h base/Uncopyable.h base/PrintController.h base/MolDSException.h base/containers/ThreadSafeQueue.h base/MallocerFreer.h mpi/MpiProcess.h mpi/AsyncCommunicator.h wrappers/Blas.h wrappers/Lapack.h base/Utilities.h base/MathUtilities.h base/EularAngle.h base/Parameters.h base/RealSphericalHarmonicsIndex.h base/atoms/Atom.h base/atoms/Hatom.h base/atoms/Liatom.h base/atoms/Catom.h base/atoms/Natom.h base/atoms/Oatom.h base/atoms/Satom.h base/factories/AtomFactory.h base/Molecule.h base/InputParser.h base/GTOExpansionSTO.h base/loggers/MOLogger.h base/loggers/DensityLogger.h base/loggers/HoleDensityLogger.h base/loggers/ParticleDensityLogger.h base/ElectronicStructure.h cndo/Cndo2.h cndo/ReducedOverlapAOsParameters.h indo/Indo.h zindo/ZindoS.h mndo/Mndo.h am1/Am1.h am1/Am1D.h pm3/Pm3.h pm3/Pm3D.h pm3/Pm3Pddg.h base/factories/ElectronicStructureFactory.h md/MD.h mc/MC.h rpmd/RPMD.h nasco/NASCO.h optimization/Optimizer.h optimization/ConjugateGradient.h optimization/SteepestDescent.h optimization/BFGS.h base/factories/OptimizerFactory.h base/MolDS.h | |
42 | +ALL_OBJ_FILES = obj/Enums.o obj/PrintController.o obj/MolDSException.o obj/MallocerFreer.o obj/MpiProcess.o obj/AsyncCommunicator.o obj/Blas.o obj/Lapack.o obj/Utilities.o obj/MathUtilities.o obj/EularAngle.o obj/Parameters.o obj/RealSphericalHarmonicsIndex.o obj/Atom.o obj/Hatom.o obj/Liatom.o obj/Catom.o obj/Natom.o obj/Oatom.o obj/Satom.o obj/AtomFactory.o obj/Molecule.o obj/InputParser.o obj/GTOExpansionSTO.o obj/MOLogger.o obj/DensityLogger.o obj/HoleDensityLogger.o obj/ParticleDensityLogger.o obj/Cndo2.o obj/Indo.o obj/ZindoS.o obj/Mndo.o obj/Am1.o obj/Am1D.o obj/Pm3.o obj/Pm3D.o obj/Pm3Pddg.o obj/ElectronicStructureFactory.o obj/MD.o obj/MC.o obj/RPMD.o obj/NASCO.o obj/Optimizer.o obj/ConjugateGradient.o obj/SteepestDescent.o obj/BFGS.o obj/OptimizerFactory.o obj/MolDS.o obj/Main.o | |
43 | 43 | |
44 | 44 | $(EXENAME): $(ALL_OBJ_FILES) |
45 | 45 | $(CC) -o $@ -Wl,-rpath=$(BOOST_LIB_DIR) -L$(BOOST_LIB_DIR) $(LDFLAGS) $(ALL_OBJ_FILES) $(LIBS) |
@@ -32,6 +32,7 @@ | ||
32 | 32 | #include"../mpi/MpiProcess.h" |
33 | 33 | #include"../base/EularAngle.h" |
34 | 34 | #include"../base/Parameters.h" |
35 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
35 | 36 | #include"../base/atoms/Atom.h" |
36 | 37 | #include"../base/atoms/Hatom.h" |
37 | 38 | #include"../base/atoms/Liatom.h" |
@@ -32,6 +32,7 @@ | ||
32 | 32 | #include"../base/Enums.h" |
33 | 33 | #include"../base/EularAngle.h" |
34 | 34 | #include"../base/Parameters.h" |
35 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
35 | 36 | #include"../base/atoms/Atom.h" |
36 | 37 | #include"../base/atoms/Hatom.h" |
37 | 38 | #include"../base/atoms/Liatom.h" |
@@ -37,6 +37,7 @@ | ||
37 | 37 | #include"Utilities.h" |
38 | 38 | #include"EularAngle.h" |
39 | 39 | #include"Parameters.h" |
40 | +#include"RealSphericalHarmonicsIndex.h" | |
40 | 41 | #include"atoms/Atom.h" |
41 | 42 | #include"atoms/Hatom.h" |
42 | 43 | #include"atoms/Liatom.h" |
@@ -41,6 +41,7 @@ | ||
41 | 41 | #include"Utilities.h" |
42 | 42 | #include"EularAngle.h" |
43 | 43 | #include"Parameters.h" |
44 | +#include"RealSphericalHarmonicsIndex.h" | |
44 | 45 | #include"atoms/Atom.h" |
45 | 46 | #include"factories/AtomFactory.h" |
46 | 47 | #include"Molecule.h" |
@@ -36,6 +36,7 @@ | ||
36 | 36 | #include"MathUtilities.h" |
37 | 37 | #include"EularAngle.h" |
38 | 38 | #include"Parameters.h" |
39 | +#include"RealSphericalHarmonicsIndex.h" | |
39 | 40 | #include"atoms/Atom.h" |
40 | 41 | #include"factories/AtomFactory.h" |
41 | 42 | #include"Molecule.h" |
@@ -35,6 +35,7 @@ | ||
35 | 35 | #include"../MathUtilities.h" |
36 | 36 | #include"../MallocerFreer.h" |
37 | 37 | #include"../EularAngle.h" |
38 | +#include"../RealSphericalHarmonicsIndex.h" | |
38 | 39 | #include"Atom.h" |
39 | 40 | using namespace std; |
40 | 41 | using namespace MolDS_base; |
@@ -59,6 +60,11 @@ Atom::Atom(int index){ | ||
59 | 60 | Atom::~Atom(){ |
60 | 61 | MallocerFreer::GetInstance()->Free<double>(&this->xyz, CartesianType_end); |
61 | 62 | MallocerFreer::GetInstance()->Free<double>(&this->pxyz, CartesianType_end); |
63 | + int valenceSize = this->valence.size(); | |
64 | + for(int i=0; i<valenceSize; i++){ | |
65 | + delete this->realSphericalHarmonicsIndeces[i]; | |
66 | + } | |
67 | + this->realSphericalHarmonicsIndeces.clear(); | |
62 | 68 | //this->OutputLog("atom deleted\n"); |
63 | 69 | } |
64 | 70 |
@@ -34,6 +34,8 @@ public: | ||
34 | 34 | inline double GetCoreMass() const{return this->atomicMass - static_cast<double>(this->numberValenceElectrons);} |
35 | 35 | inline int GetValenceSize() const{return this->valence.size();} |
36 | 36 | inline MolDS_base::OrbitalType GetValence(int index) const{return this->valence[index];} |
37 | + inline MolDS_base::RealSphericalHarmonicsIndex const* GetRealSphericalHarmonicsIndex(int valenceIndex) const{ | |
38 | + return this->realSphericalHarmonicsIndeces[valenceIndex];} | |
37 | 39 | inline double GetVdWCoefficient() const{return this->vdWCoefficient;} |
38 | 40 | inline double GetVdWRadii() const{return this->vdWRadii;} |
39 | 41 | double GetAtomicBasisValue(double x, |
@@ -109,6 +111,7 @@ protected: | ||
109 | 111 | MolDS_base::AtomType atomType; |
110 | 112 | double atomicMass; // Appendix 1 in [I_1998] |
111 | 113 | std::vector<MolDS_base::OrbitalType> valence; |
114 | + std::vector<MolDS_base::RealSphericalHarmonicsIndex*> realSphericalHarmonicsIndeces; | |
112 | 115 | MolDS_base::ShellType valenceShellType; |
113 | 116 | int firstAOIndex; |
114 | 117 | int numberValenceElectrons; |
@@ -31,6 +31,7 @@ | ||
31 | 31 | #include"../../mpi/MpiProcess.h" |
32 | 32 | #include"../EularAngle.h" |
33 | 33 | #include"../Parameters.h" |
34 | +#include"../RealSphericalHarmonicsIndex.h" | |
34 | 35 | #include"Atom.h" |
35 | 36 | #include"Catom.h" |
36 | 37 | using namespace std; |
@@ -50,6 +51,9 @@ void Catom::SetAtomicParameters(){ | ||
50 | 51 | this->valence.push_back(py); |
51 | 52 | this->valence.push_back(pz); |
52 | 53 | this->valence.push_back(px); |
54 | + for(int i=0; i<this->valence.size();i++){ | |
55 | + this->realSphericalHarmonicsIndeces.push_back(new RealSphericalHarmonicsIndex(this->valence[i])); | |
56 | + } | |
53 | 57 | this->vdWCoefficient = 1.65*Parameters::GetInstance()->GetJ2AU() |
54 | 58 | *pow(Parameters::GetInstance()->GetNm2AU(),6.0) |
55 | 59 | /Parameters::GetInstance()->GetAvogadro(); |
@@ -23,6 +23,7 @@ | ||
23 | 23 | #include<math.h> |
24 | 24 | #include<vector> |
25 | 25 | #include<boost/format.hpp> |
26 | +#include<boost/shared_ptr.hpp> | |
26 | 27 | #include"../Enums.h" |
27 | 28 | #include"../Uncopyable.h" |
28 | 29 | #include"../PrintController.h" |
@@ -31,6 +32,7 @@ | ||
31 | 32 | #include"../../mpi/MpiProcess.h" |
32 | 33 | #include"../EularAngle.h" |
33 | 34 | #include"../Parameters.h" |
35 | +#include"../RealSphericalHarmonicsIndex.h" | |
34 | 36 | #include"Atom.h" |
35 | 37 | #include"Hatom.h" |
36 | 38 | using namespace std; |
@@ -49,6 +51,9 @@ void Hatom::SetAtomicParameters(){ | ||
49 | 51 | this->numberValenceElectrons = 1; |
50 | 52 | this->valenceShellType = k; |
51 | 53 | this->valence.push_back(s); |
54 | + for(int i=0; i<this->valence.size();i++){ | |
55 | + this->realSphericalHarmonicsIndeces.push_back(new RealSphericalHarmonicsIndex(this->valence[i])); | |
56 | + } | |
52 | 57 | this->vdWCoefficient = 0.16*Parameters::GetInstance()->GetJ2AU() |
53 | 58 | *pow(Parameters::GetInstance()->GetNm2AU(),6.0) |
54 | 59 | /Parameters::GetInstance()->GetAvogadro(); |
@@ -31,6 +31,7 @@ | ||
31 | 31 | #include"../../mpi/MpiProcess.h" |
32 | 32 | #include"../EularAngle.h" |
33 | 33 | #include"../Parameters.h" |
34 | +#include"../RealSphericalHarmonicsIndex.h" | |
34 | 35 | #include"Atom.h" |
35 | 36 | #include"Liatom.h" |
36 | 37 | using namespace std; |
@@ -51,6 +52,9 @@ void Liatom::SetAtomicParameters(){ | ||
51 | 52 | this->valence.push_back(py); |
52 | 53 | this->valence.push_back(pz); |
53 | 54 | this->valence.push_back(px); |
55 | + for(int i=0; i<this->valence.size();i++){ | |
56 | + this->realSphericalHarmonicsIndeces.push_back(new RealSphericalHarmonicsIndex(this->valence[i])); | |
57 | + } | |
54 | 58 | this->bondingParameter = -9.0*Parameters::GetInstance()->GetEV2AU(); |
55 | 59 | this->imuAmuS = 3.106*Parameters::GetInstance()->GetEV2AU(); |
56 | 60 | this->imuAmuP = 1.258*Parameters::GetInstance()->GetEV2AU(); |
@@ -31,6 +31,7 @@ | ||
31 | 31 | #include"../../mpi/MpiProcess.h" |
32 | 32 | #include"../EularAngle.h" |
33 | 33 | #include"../Parameters.h" |
34 | +#include"../RealSphericalHarmonicsIndex.h" | |
34 | 35 | #include"Atom.h" |
35 | 36 | #include"Natom.h" |
36 | 37 | using namespace std; |
@@ -50,6 +51,9 @@ void Natom::SetAtomicParameters(){ | ||
50 | 51 | this->valence.push_back(py); |
51 | 52 | this->valence.push_back(pz); |
52 | 53 | this->valence.push_back(px); |
54 | + for(int i=0; i<this->valence.size();i++){ | |
55 | + this->realSphericalHarmonicsIndeces.push_back(new RealSphericalHarmonicsIndex(this->valence[i])); | |
56 | + } | |
53 | 57 | this->vdWCoefficient = 1.11*Parameters::GetInstance()->GetJ2AU() |
54 | 58 | *pow(Parameters::GetInstance()->GetNm2AU(),6.0) |
55 | 59 | /Parameters::GetInstance()->GetAvogadro(); |
@@ -31,6 +31,7 @@ | ||
31 | 31 | #include"../../mpi/MpiProcess.h" |
32 | 32 | #include"../EularAngle.h" |
33 | 33 | #include"../Parameters.h" |
34 | +#include"../RealSphericalHarmonicsIndex.h" | |
34 | 35 | #include"Atom.h" |
35 | 36 | #include"Oatom.h" |
36 | 37 | using namespace std; |
@@ -50,6 +51,9 @@ void Oatom::SetAtomicParameters(){ | ||
50 | 51 | this->valence.push_back(py); |
51 | 52 | this->valence.push_back(pz); |
52 | 53 | this->valence.push_back(px); |
54 | + for(int i=0; i<this->valence.size();i++){ | |
55 | + this->realSphericalHarmonicsIndeces.push_back(new RealSphericalHarmonicsIndex(this->valence[i])); | |
56 | + } | |
53 | 57 | this->vdWCoefficient = 0.70*Parameters::GetInstance()->GetJ2AU() |
54 | 58 | *pow(Parameters::GetInstance()->GetNm2AU(),6.0) |
55 | 59 | /Parameters::GetInstance()->GetAvogadro(); |
@@ -31,6 +31,7 @@ | ||
31 | 31 | #include"../../mpi/MpiProcess.h" |
32 | 32 | #include"../EularAngle.h" |
33 | 33 | #include"../Parameters.h" |
34 | +#include"../RealSphericalHarmonicsIndex.h" | |
34 | 35 | #include"Atom.h" |
35 | 36 | #include"Satom.h" |
36 | 37 | using namespace std; |
@@ -58,6 +59,9 @@ void Satom::SetAtomicParameters(){ | ||
58 | 59 | this->valence.push_back(dzx); |
59 | 60 | this->valence.push_back(dxxyy); |
60 | 61 | } |
62 | + for(int i=0; i<this->valence.size();i++){ | |
63 | + this->realSphericalHarmonicsIndeces.push_back(new RealSphericalHarmonicsIndex(this->valence[i])); | |
64 | + } | |
61 | 65 | this->vdWCoefficient = 10.3*Parameters::GetInstance()->GetJ2AU() |
62 | 66 | *pow(Parameters::GetInstance()->GetNm2AU(),6.0) |
63 | 67 | /Parameters::GetInstance()->GetAvogadro(); |
@@ -29,6 +29,7 @@ | ||
29 | 29 | #include"../MolDSException.h" |
30 | 30 | #include"../MallocerFreer.h" |
31 | 31 | #include"../../mpi/MpiProcess.h" |
32 | +#include"../RealSphericalHarmonicsIndex.h" | |
32 | 33 | #include"../atoms/Atom.h" |
33 | 34 | #include"../atoms/Hatom.h" |
34 | 35 | #include"../atoms/Liatom.h" |
@@ -32,6 +32,7 @@ | ||
32 | 32 | #include"../../mpi/MpiProcess.h" |
33 | 33 | #include"../EularAngle.h" |
34 | 34 | #include"../Parameters.h" |
35 | +#include"../RealSphericalHarmonicsIndex.h" | |
35 | 36 | #include"../atoms/Atom.h" |
36 | 37 | #include"AtomFactory.h" |
37 | 38 | #include"../Molecule.h" |
@@ -33,6 +33,7 @@ | ||
33 | 33 | #include"../../mpi/MpiProcess.h" |
34 | 34 | #include"../EularAngle.h" |
35 | 35 | #include"../Parameters.h" |
36 | +#include"../RealSphericalHarmonicsIndex.h" | |
36 | 37 | #include"../atoms/Atom.h" |
37 | 38 | #include"../Molecule.h" |
38 | 39 | #include"../ElectronicStructure.h" |
@@ -38,6 +38,7 @@ | ||
38 | 38 | #include"../MallocerFreer.h" |
39 | 39 | #include"../EularAngle.h" |
40 | 40 | #include"../Parameters.h" |
41 | +#include"../RealSphericalHarmonicsIndex.h" | |
41 | 42 | #include"../atoms/Atom.h" |
42 | 43 | #include"../Molecule.h" |
43 | 44 | #include"DensityLogger.h" |
@@ -37,6 +37,7 @@ | ||
37 | 37 | #include"../Utilities.h" |
38 | 38 | #include"../EularAngle.h" |
39 | 39 | #include"../Parameters.h" |
40 | +#include"../RealSphericalHarmonicsIndex.h" | |
40 | 41 | #include"../atoms/Atom.h" |
41 | 42 | #include"../Molecule.h" |
42 | 43 | #include"DensityLogger.h" |
@@ -37,6 +37,7 @@ | ||
37 | 37 | #include"../Utilities.h" |
38 | 38 | #include"../EularAngle.h" |
39 | 39 | #include"../Parameters.h" |
40 | +#include"../RealSphericalHarmonicsIndex.h" | |
40 | 41 | #include"../atoms/Atom.h" |
41 | 42 | #include"../Molecule.h" |
42 | 43 | #include"MOLogger.h" |
@@ -37,6 +37,7 @@ | ||
37 | 37 | #include"../Utilities.h" |
38 | 38 | #include"../EularAngle.h" |
39 | 39 | #include"../Parameters.h" |
40 | +#include"../RealSphericalHarmonicsIndex.h" | |
40 | 41 | #include"../atoms/Atom.h" |
41 | 42 | #include"../Molecule.h" |
42 | 43 | #include"DensityLogger.h" |
@@ -42,6 +42,7 @@ | ||
42 | 42 | #include"../base/MallocerFreer.h" |
43 | 43 | #include"../base/EularAngle.h" |
44 | 44 | #include"../base/Parameters.h" |
45 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
45 | 46 | #include"../base/atoms/Atom.h" |
46 | 47 | #include"../base/atoms/Hatom.h" |
47 | 48 | #include"../base/atoms/Liatom.h" |
@@ -51,7 +52,6 @@ | ||
51 | 52 | #include"../base/atoms/Satom.h" |
52 | 53 | #include"../base/Molecule.h" |
53 | 54 | #include"../base/GTOExpansionSTO.h" |
54 | -#include"../base/RealSphericalHarmonicsIndex.h" | |
55 | 55 | #include"../base/loggers/MOLogger.h" |
56 | 56 | #include"../base/ElectronicStructure.h" |
57 | 57 | #include"Cndo2.h" |
@@ -5650,7 +5650,8 @@ void Cndo2::CalcDiatomicOverlapAOsInDiatomicFrame(double** diatomicOverlapAOs, | ||
5650 | 5650 | |
5651 | 5651 | for(int a=0; a<atomA.GetValenceSize(); a++){ |
5652 | 5652 | OrbitalType valenceOrbitalA = atomA.GetValence(a); |
5653 | - RealSphericalHarmonicsIndex realShpericalHarmonicsA(valenceOrbitalA); | |
5653 | + RealSphericalHarmonicsIndex const* realShpericalHarmonicsA | |
5654 | + = atomA.GetRealSphericalHarmonicsIndex(a); | |
5654 | 5655 | orbitalExponentA = atomA.GetOrbitalExponent( |
5655 | 5656 | atomA.GetValenceShellType(), |
5656 | 5657 | valenceOrbitalA, |
@@ -5658,19 +5659,20 @@ void Cndo2::CalcDiatomicOverlapAOsInDiatomicFrame(double** diatomicOverlapAOs, | ||
5658 | 5659 | |
5659 | 5660 | for(int b=0; b<atomB.GetValenceSize(); b++){ |
5660 | 5661 | OrbitalType valenceOrbitalB = atomB.GetValence(b); |
5661 | - RealSphericalHarmonicsIndex realShpericalHarmonicsB(valenceOrbitalB); | |
5662 | + RealSphericalHarmonicsIndex const* realShpericalHarmonicsB | |
5663 | + = atomB.GetRealSphericalHarmonicsIndex(b); | |
5662 | 5664 | orbitalExponentB = atomB.GetOrbitalExponent( |
5663 | 5665 | atomB.GetValenceShellType(), |
5664 | 5666 | valenceOrbitalB, |
5665 | 5667 | this->theory); |
5666 | 5668 | |
5667 | - if(realShpericalHarmonicsA.GetM() == realShpericalHarmonicsB.GetM()){ | |
5668 | - m = abs(realShpericalHarmonicsA.GetM()); | |
5669 | + if(realShpericalHarmonicsA->GetM() == realShpericalHarmonicsB->GetM()){ | |
5670 | + m = abs(realShpericalHarmonicsA->GetM()); | |
5669 | 5671 | alpha = orbitalExponentA * rAB; |
5670 | 5672 | beta = orbitalExponentB * rAB; |
5671 | 5673 | |
5672 | - reducedOverlapAOs = this->GetReducedOverlapAOs(na, realShpericalHarmonicsA.GetL(), m, | |
5673 | - nb, realShpericalHarmonicsB.GetL(), alpha, beta); | |
5674 | + reducedOverlapAOs = this->GetReducedOverlapAOs(na, realShpericalHarmonicsA->GetL(), m, | |
5675 | + nb, realShpericalHarmonicsB->GetL(), alpha, beta); | |
5674 | 5676 | |
5675 | 5677 | |
5676 | 5678 | pre = pow(2.0*orbitalExponentA, na+0.5); |
@@ -32,6 +32,7 @@ | ||
32 | 32 | #include"../base/MallocerFreer.h" |
33 | 33 | #include"../mpi/MpiProcess.h" |
34 | 34 | #include"../base/EularAngle.h" |
35 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
35 | 36 | #include"../base/atoms/Atom.h" |
36 | 37 | #include"../base/atoms/Hatom.h" |
37 | 38 | #include"../base/atoms/Liatom.h" |
@@ -35,6 +35,7 @@ | ||
35 | 35 | #include"../mpi/MpiProcess.h" |
36 | 36 | #include"../base/EularAngle.h" |
37 | 37 | #include"../base/Parameters.h" |
38 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
38 | 39 | #include"../base/atoms/Atom.h" |
39 | 40 | #include"../base/Molecule.h" |
40 | 41 | #include"../base/ElectronicStructure.h" |
@@ -34,6 +34,7 @@ | ||
34 | 34 | #include"../mpi/MpiProcess.h" |
35 | 35 | #include"../base/EularAngle.h" |
36 | 36 | #include"../base/Parameters.h" |
37 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
37 | 38 | #include"../base/atoms/Atom.h" |
38 | 39 | #include"../base/Molecule.h" |
39 | 40 | #include"../base/ElectronicStructure.h" |
@@ -39,6 +39,7 @@ | ||
39 | 39 | #include"../base/MallocerFreer.h" |
40 | 40 | #include"../base/EularAngle.h" |
41 | 41 | #include"../base/Parameters.h" |
42 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
42 | 43 | #include"../base/atoms/Atom.h" |
43 | 44 | #include"../base/atoms/Hatom.h" |
44 | 45 | #include"../base/atoms/Liatom.h" |
@@ -35,6 +35,7 @@ | ||
35 | 35 | #include"../mpi/MpiProcess.h" |
36 | 36 | #include"../base/EularAngle.h" |
37 | 37 | #include"../base/Parameters.h" |
38 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
38 | 39 | #include"../base/atoms/Atom.h" |
39 | 40 | #include"../base/Molecule.h" |
40 | 41 | #include"../base/ElectronicStructure.h" |
@@ -38,6 +38,7 @@ | ||
38 | 38 | #include"../wrappers/Lapack.h" |
39 | 39 | #include"../base/EularAngle.h" |
40 | 40 | #include"../base/Parameters.h" |
41 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
41 | 42 | #include"../base/atoms/Atom.h" |
42 | 43 | #include"../base/Molecule.h" |
43 | 44 | #include"../base/ElectronicStructure.h" |
@@ -35,6 +35,7 @@ | ||
35 | 35 | #include"../mpi/MpiProcess.h" |
36 | 36 | #include"../base/EularAngle.h" |
37 | 37 | #include"../base/Parameters.h" |
38 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
38 | 39 | #include"../base/atoms/Atom.h" |
39 | 40 | #include"../base/Molecule.h" |
40 | 41 | #include"../base/ElectronicStructure.h" |
@@ -35,6 +35,7 @@ | ||
35 | 35 | #include"../mpi/MpiProcess.h" |
36 | 36 | #include"../base/EularAngle.h" |
37 | 37 | #include"../base/Parameters.h" |
38 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
38 | 39 | #include"../base/atoms/Atom.h" |
39 | 40 | #include"../base/Molecule.h" |
40 | 41 | #include"../base/ElectronicStructure.h" |
@@ -35,6 +35,7 @@ | ||
35 | 35 | #include"../mpi/MpiProcess.h" |
36 | 36 | #include"../base/EularAngle.h" |
37 | 37 | #include"../base/Parameters.h" |
38 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
38 | 39 | #include"../base/atoms/Atom.h" |
39 | 40 | #include"../base/Molecule.h" |
40 | 41 | #include"../base/ElectronicStructure.h" |
@@ -32,6 +32,7 @@ | ||
32 | 32 | #include"../mpi/MpiProcess.h" |
33 | 33 | #include"../base/EularAngle.h" |
34 | 34 | #include"../base/Parameters.h" |
35 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
35 | 36 | #include"../base/atoms/Atom.h" |
36 | 37 | #include"../base/atoms/Hatom.h" |
37 | 38 | #include"../base/atoms/Liatom.h" |
@@ -32,6 +32,7 @@ | ||
32 | 32 | #include"../mpi/MpiProcess.h" |
33 | 33 | #include"../base/EularAngle.h" |
34 | 34 | #include"../base/Parameters.h" |
35 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
35 | 36 | #include"../base/atoms/Atom.h" |
36 | 37 | #include"../base/atoms/Hatom.h" |
37 | 38 | #include"../base/atoms/Liatom.h" |
@@ -32,6 +32,7 @@ | ||
32 | 32 | #include"../mpi/MpiProcess.h" |
33 | 33 | #include"../base/EularAngle.h" |
34 | 34 | #include"../base/Parameters.h" |
35 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
35 | 36 | #include"../base/atoms/Atom.h" |
36 | 37 | #include"../base/atoms/Hatom.h" |
37 | 38 | #include"../base/atoms/Liatom.h" |
@@ -35,6 +35,7 @@ | ||
35 | 35 | #include"../mpi/MpiProcess.h" |
36 | 36 | #include"../base/EularAngle.h" |
37 | 37 | #include"../base/Parameters.h" |
38 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
38 | 39 | #include"../base/atoms/Atom.h" |
39 | 40 | #include"../base/Molecule.h" |
40 | 41 | #include"../base/ElectronicStructure.h" |
@@ -39,6 +39,7 @@ | ||
39 | 39 | #include"../base/MathUtilities.h" |
40 | 40 | #include"../base/EularAngle.h" |
41 | 41 | #include"../base/Parameters.h" |
42 | +#include"../base/RealSphericalHarmonicsIndex.h" | |
42 | 43 | #include"../base/atoms/Atom.h" |
43 | 44 | #include"../base/atoms/Hatom.h" |
44 | 45 | #include"../base/atoms/Liatom.h" |