• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisão55598dea043b46b3d05b9c69c91c6ec2e4e38cc9 (tree)
Hora2013-08-20 11:08:25
AutorMikiya Fujii <mikiya.fujii@gmai...>
CommiterMikiya Fujii

Mensagem de Log

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

Mudança Sumário

Diff

--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -30,6 +30,7 @@
3030 #include"base/MallocerFreer.h"
3131 #include"mpi/MpiProcess.h"
3232 #include"base/EularAngle.h"
33+#include"base/RealSphericalHarmonicsIndex.h"
3334 #include"base/atoms/Atom.h"
3435 #include"base/Molecule.h"
3536 #include"base/MolDS.h"
--- a/src/Makefile
+++ b/src/Makefile
@@ -37,9 +37,9 @@ EXENAME = MolDS.out
3737 DEPFILE = obj/objfile.dep
3838 LDFLAGS =
3939
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
4343
4444 $(EXENAME): $(ALL_OBJ_FILES)
4545 $(CC) -o $@ -Wl,-rpath=$(BOOST_LIB_DIR) -L$(BOOST_LIB_DIR) $(LDFLAGS) $(ALL_OBJ_FILES) $(LIBS)
--- a/src/am1/Am1.cpp
+++ b/src/am1/Am1.cpp
@@ -32,6 +32,7 @@
3232 #include"../mpi/MpiProcess.h"
3333 #include"../base/EularAngle.h"
3434 #include"../base/Parameters.h"
35+#include"../base/RealSphericalHarmonicsIndex.h"
3536 #include"../base/atoms/Atom.h"
3637 #include"../base/atoms/Hatom.h"
3738 #include"../base/atoms/Liatom.h"
--- a/src/am1/Am1D.cpp
+++ b/src/am1/Am1D.cpp
@@ -32,6 +32,7 @@
3232 #include"../base/Enums.h"
3333 #include"../base/EularAngle.h"
3434 #include"../base/Parameters.h"
35+#include"../base/RealSphericalHarmonicsIndex.h"
3536 #include"../base/atoms/Atom.h"
3637 #include"../base/atoms/Hatom.h"
3738 #include"../base/atoms/Liatom.h"
--- a/src/base/InputParser.cpp
+++ b/src/base/InputParser.cpp
@@ -37,6 +37,7 @@
3737 #include"Utilities.h"
3838 #include"EularAngle.h"
3939 #include"Parameters.h"
40+#include"RealSphericalHarmonicsIndex.h"
4041 #include"atoms/Atom.h"
4142 #include"atoms/Hatom.h"
4243 #include"atoms/Liatom.h"
--- a/src/base/MolDS.cpp
+++ b/src/base/MolDS.cpp
@@ -41,6 +41,7 @@
4141 #include"Utilities.h"
4242 #include"EularAngle.h"
4343 #include"Parameters.h"
44+#include"RealSphericalHarmonicsIndex.h"
4445 #include"atoms/Atom.h"
4546 #include"factories/AtomFactory.h"
4647 #include"Molecule.h"
--- a/src/base/Molecule.cpp
+++ b/src/base/Molecule.cpp
@@ -36,6 +36,7 @@
3636 #include"MathUtilities.h"
3737 #include"EularAngle.h"
3838 #include"Parameters.h"
39+#include"RealSphericalHarmonicsIndex.h"
3940 #include"atoms/Atom.h"
4041 #include"factories/AtomFactory.h"
4142 #include"Molecule.h"
--- a/src/base/atoms/Atom.cpp
+++ b/src/base/atoms/Atom.cpp
@@ -35,6 +35,7 @@
3535 #include"../MathUtilities.h"
3636 #include"../MallocerFreer.h"
3737 #include"../EularAngle.h"
38+#include"../RealSphericalHarmonicsIndex.h"
3839 #include"Atom.h"
3940 using namespace std;
4041 using namespace MolDS_base;
@@ -59,6 +60,11 @@ Atom::Atom(int index){
5960 Atom::~Atom(){
6061 MallocerFreer::GetInstance()->Free<double>(&this->xyz, CartesianType_end);
6162 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();
6268 //this->OutputLog("atom deleted\n");
6369 }
6470
--- a/src/base/atoms/Atom.h
+++ b/src/base/atoms/Atom.h
@@ -34,6 +34,8 @@ public:
3434 inline double GetCoreMass() const{return this->atomicMass - static_cast<double>(this->numberValenceElectrons);}
3535 inline int GetValenceSize() const{return this->valence.size();}
3636 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];}
3739 inline double GetVdWCoefficient() const{return this->vdWCoefficient;}
3840 inline double GetVdWRadii() const{return this->vdWRadii;}
3941 double GetAtomicBasisValue(double x,
@@ -109,6 +111,7 @@ protected:
109111 MolDS_base::AtomType atomType;
110112 double atomicMass; // Appendix 1 in [I_1998]
111113 std::vector<MolDS_base::OrbitalType> valence;
114+ std::vector<MolDS_base::RealSphericalHarmonicsIndex*> realSphericalHarmonicsIndeces;
112115 MolDS_base::ShellType valenceShellType;
113116 int firstAOIndex;
114117 int numberValenceElectrons;
--- a/src/base/atoms/Catom.cpp
+++ b/src/base/atoms/Catom.cpp
@@ -31,6 +31,7 @@
3131 #include"../../mpi/MpiProcess.h"
3232 #include"../EularAngle.h"
3333 #include"../Parameters.h"
34+#include"../RealSphericalHarmonicsIndex.h"
3435 #include"Atom.h"
3536 #include"Catom.h"
3637 using namespace std;
@@ -50,6 +51,9 @@ void Catom::SetAtomicParameters(){
5051 this->valence.push_back(py);
5152 this->valence.push_back(pz);
5253 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+ }
5357 this->vdWCoefficient = 1.65*Parameters::GetInstance()->GetJ2AU()
5458 *pow(Parameters::GetInstance()->GetNm2AU(),6.0)
5559 /Parameters::GetInstance()->GetAvogadro();
--- a/src/base/atoms/Hatom.cpp
+++ b/src/base/atoms/Hatom.cpp
@@ -23,6 +23,7 @@
2323 #include<math.h>
2424 #include<vector>
2525 #include<boost/format.hpp>
26+#include<boost/shared_ptr.hpp>
2627 #include"../Enums.h"
2728 #include"../Uncopyable.h"
2829 #include"../PrintController.h"
@@ -31,6 +32,7 @@
3132 #include"../../mpi/MpiProcess.h"
3233 #include"../EularAngle.h"
3334 #include"../Parameters.h"
35+#include"../RealSphericalHarmonicsIndex.h"
3436 #include"Atom.h"
3537 #include"Hatom.h"
3638 using namespace std;
@@ -49,6 +51,9 @@ void Hatom::SetAtomicParameters(){
4951 this->numberValenceElectrons = 1;
5052 this->valenceShellType = k;
5153 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+ }
5257 this->vdWCoefficient = 0.16*Parameters::GetInstance()->GetJ2AU()
5358 *pow(Parameters::GetInstance()->GetNm2AU(),6.0)
5459 /Parameters::GetInstance()->GetAvogadro();
--- a/src/base/atoms/Liatom.cpp
+++ b/src/base/atoms/Liatom.cpp
@@ -31,6 +31,7 @@
3131 #include"../../mpi/MpiProcess.h"
3232 #include"../EularAngle.h"
3333 #include"../Parameters.h"
34+#include"../RealSphericalHarmonicsIndex.h"
3435 #include"Atom.h"
3536 #include"Liatom.h"
3637 using namespace std;
@@ -51,6 +52,9 @@ void Liatom::SetAtomicParameters(){
5152 this->valence.push_back(py);
5253 this->valence.push_back(pz);
5354 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+ }
5458 this->bondingParameter = -9.0*Parameters::GetInstance()->GetEV2AU();
5559 this->imuAmuS = 3.106*Parameters::GetInstance()->GetEV2AU();
5660 this->imuAmuP = 1.258*Parameters::GetInstance()->GetEV2AU();
--- a/src/base/atoms/Natom.cpp
+++ b/src/base/atoms/Natom.cpp
@@ -31,6 +31,7 @@
3131 #include"../../mpi/MpiProcess.h"
3232 #include"../EularAngle.h"
3333 #include"../Parameters.h"
34+#include"../RealSphericalHarmonicsIndex.h"
3435 #include"Atom.h"
3536 #include"Natom.h"
3637 using namespace std;
@@ -50,6 +51,9 @@ void Natom::SetAtomicParameters(){
5051 this->valence.push_back(py);
5152 this->valence.push_back(pz);
5253 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+ }
5357 this->vdWCoefficient = 1.11*Parameters::GetInstance()->GetJ2AU()
5458 *pow(Parameters::GetInstance()->GetNm2AU(),6.0)
5559 /Parameters::GetInstance()->GetAvogadro();
--- a/src/base/atoms/Oatom.cpp
+++ b/src/base/atoms/Oatom.cpp
@@ -31,6 +31,7 @@
3131 #include"../../mpi/MpiProcess.h"
3232 #include"../EularAngle.h"
3333 #include"../Parameters.h"
34+#include"../RealSphericalHarmonicsIndex.h"
3435 #include"Atom.h"
3536 #include"Oatom.h"
3637 using namespace std;
@@ -50,6 +51,9 @@ void Oatom::SetAtomicParameters(){
5051 this->valence.push_back(py);
5152 this->valence.push_back(pz);
5253 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+ }
5357 this->vdWCoefficient = 0.70*Parameters::GetInstance()->GetJ2AU()
5458 *pow(Parameters::GetInstance()->GetNm2AU(),6.0)
5559 /Parameters::GetInstance()->GetAvogadro();
--- a/src/base/atoms/Satom.cpp
+++ b/src/base/atoms/Satom.cpp
@@ -31,6 +31,7 @@
3131 #include"../../mpi/MpiProcess.h"
3232 #include"../EularAngle.h"
3333 #include"../Parameters.h"
34+#include"../RealSphericalHarmonicsIndex.h"
3435 #include"Atom.h"
3536 #include"Satom.h"
3637 using namespace std;
@@ -58,6 +59,9 @@ void Satom::SetAtomicParameters(){
5859 this->valence.push_back(dzx);
5960 this->valence.push_back(dxxyy);
6061 }
62+ for(int i=0; i<this->valence.size();i++){
63+ this->realSphericalHarmonicsIndeces.push_back(new RealSphericalHarmonicsIndex(this->valence[i]));
64+ }
6165 this->vdWCoefficient = 10.3*Parameters::GetInstance()->GetJ2AU()
6266 *pow(Parameters::GetInstance()->GetNm2AU(),6.0)
6367 /Parameters::GetInstance()->GetAvogadro();
--- a/src/base/factories/AtomFactory.cpp
+++ b/src/base/factories/AtomFactory.cpp
@@ -29,6 +29,7 @@
2929 #include"../MolDSException.h"
3030 #include"../MallocerFreer.h"
3131 #include"../../mpi/MpiProcess.h"
32+#include"../RealSphericalHarmonicsIndex.h"
3233 #include"../atoms/Atom.h"
3334 #include"../atoms/Hatom.h"
3435 #include"../atoms/Liatom.h"
--- a/src/base/factories/ElectronicStructureFactory.cpp
+++ b/src/base/factories/ElectronicStructureFactory.cpp
@@ -32,6 +32,7 @@
3232 #include"../../mpi/MpiProcess.h"
3333 #include"../EularAngle.h"
3434 #include"../Parameters.h"
35+#include"../RealSphericalHarmonicsIndex.h"
3536 #include"../atoms/Atom.h"
3637 #include"AtomFactory.h"
3738 #include"../Molecule.h"
--- a/src/base/factories/OptimizerFactory.cpp
+++ b/src/base/factories/OptimizerFactory.cpp
@@ -33,6 +33,7 @@
3333 #include"../../mpi/MpiProcess.h"
3434 #include"../EularAngle.h"
3535 #include"../Parameters.h"
36+#include"../RealSphericalHarmonicsIndex.h"
3637 #include"../atoms/Atom.h"
3738 #include"../Molecule.h"
3839 #include"../ElectronicStructure.h"
--- a/src/base/loggers/DensityLogger.cpp
+++ b/src/base/loggers/DensityLogger.cpp
@@ -38,6 +38,7 @@
3838 #include"../MallocerFreer.h"
3939 #include"../EularAngle.h"
4040 #include"../Parameters.h"
41+#include"../RealSphericalHarmonicsIndex.h"
4142 #include"../atoms/Atom.h"
4243 #include"../Molecule.h"
4344 #include"DensityLogger.h"
--- a/src/base/loggers/HoleDensityLogger.cpp
+++ b/src/base/loggers/HoleDensityLogger.cpp
@@ -37,6 +37,7 @@
3737 #include"../Utilities.h"
3838 #include"../EularAngle.h"
3939 #include"../Parameters.h"
40+#include"../RealSphericalHarmonicsIndex.h"
4041 #include"../atoms/Atom.h"
4142 #include"../Molecule.h"
4243 #include"DensityLogger.h"
--- a/src/base/loggers/MOLogger.cpp
+++ b/src/base/loggers/MOLogger.cpp
@@ -37,6 +37,7 @@
3737 #include"../Utilities.h"
3838 #include"../EularAngle.h"
3939 #include"../Parameters.h"
40+#include"../RealSphericalHarmonicsIndex.h"
4041 #include"../atoms/Atom.h"
4142 #include"../Molecule.h"
4243 #include"MOLogger.h"
--- a/src/base/loggers/ParticleDensityLogger.cpp
+++ b/src/base/loggers/ParticleDensityLogger.cpp
@@ -37,6 +37,7 @@
3737 #include"../Utilities.h"
3838 #include"../EularAngle.h"
3939 #include"../Parameters.h"
40+#include"../RealSphericalHarmonicsIndex.h"
4041 #include"../atoms/Atom.h"
4142 #include"../Molecule.h"
4243 #include"DensityLogger.h"
--- a/src/cndo/Cndo2.cpp
+++ b/src/cndo/Cndo2.cpp
@@ -42,6 +42,7 @@
4242 #include"../base/MallocerFreer.h"
4343 #include"../base/EularAngle.h"
4444 #include"../base/Parameters.h"
45+#include"../base/RealSphericalHarmonicsIndex.h"
4546 #include"../base/atoms/Atom.h"
4647 #include"../base/atoms/Hatom.h"
4748 #include"../base/atoms/Liatom.h"
@@ -51,7 +52,6 @@
5152 #include"../base/atoms/Satom.h"
5253 #include"../base/Molecule.h"
5354 #include"../base/GTOExpansionSTO.h"
54-#include"../base/RealSphericalHarmonicsIndex.h"
5555 #include"../base/loggers/MOLogger.h"
5656 #include"../base/ElectronicStructure.h"
5757 #include"Cndo2.h"
@@ -5650,7 +5650,8 @@ void Cndo2::CalcDiatomicOverlapAOsInDiatomicFrame(double** diatomicOverlapAOs,
56505650
56515651 for(int a=0; a<atomA.GetValenceSize(); a++){
56525652 OrbitalType valenceOrbitalA = atomA.GetValence(a);
5653- RealSphericalHarmonicsIndex realShpericalHarmonicsA(valenceOrbitalA);
5653+ RealSphericalHarmonicsIndex const* realShpericalHarmonicsA
5654+ = atomA.GetRealSphericalHarmonicsIndex(a);
56545655 orbitalExponentA = atomA.GetOrbitalExponent(
56555656 atomA.GetValenceShellType(),
56565657 valenceOrbitalA,
@@ -5658,19 +5659,20 @@ void Cndo2::CalcDiatomicOverlapAOsInDiatomicFrame(double** diatomicOverlapAOs,
56585659
56595660 for(int b=0; b<atomB.GetValenceSize(); b++){
56605661 OrbitalType valenceOrbitalB = atomB.GetValence(b);
5661- RealSphericalHarmonicsIndex realShpericalHarmonicsB(valenceOrbitalB);
5662+ RealSphericalHarmonicsIndex const* realShpericalHarmonicsB
5663+ = atomB.GetRealSphericalHarmonicsIndex(b);
56625664 orbitalExponentB = atomB.GetOrbitalExponent(
56635665 atomB.GetValenceShellType(),
56645666 valenceOrbitalB,
56655667 this->theory);
56665668
5667- if(realShpericalHarmonicsA.GetM() == realShpericalHarmonicsB.GetM()){
5668- m = abs(realShpericalHarmonicsA.GetM());
5669+ if(realShpericalHarmonicsA->GetM() == realShpericalHarmonicsB->GetM()){
5670+ m = abs(realShpericalHarmonicsA->GetM());
56695671 alpha = orbitalExponentA * rAB;
56705672 beta = orbitalExponentB * rAB;
56715673
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);
56745676
56755677
56765678 pre = pow(2.0*orbitalExponentA, na+0.5);
--- a/src/indo/Indo.cpp
+++ b/src/indo/Indo.cpp
@@ -32,6 +32,7 @@
3232 #include"../base/MallocerFreer.h"
3333 #include"../mpi/MpiProcess.h"
3434 #include"../base/EularAngle.h"
35+#include"../base/RealSphericalHarmonicsIndex.h"
3536 #include"../base/atoms/Atom.h"
3637 #include"../base/atoms/Hatom.h"
3738 #include"../base/atoms/Liatom.h"
--- a/src/mc/MC.cpp
+++ b/src/mc/MC.cpp
@@ -35,6 +35,7 @@
3535 #include"../mpi/MpiProcess.h"
3636 #include"../base/EularAngle.h"
3737 #include"../base/Parameters.h"
38+#include"../base/RealSphericalHarmonicsIndex.h"
3839 #include"../base/atoms/Atom.h"
3940 #include"../base/Molecule.h"
4041 #include"../base/ElectronicStructure.h"
--- a/src/md/MD.cpp
+++ b/src/md/MD.cpp
@@ -34,6 +34,7 @@
3434 #include"../mpi/MpiProcess.h"
3535 #include"../base/EularAngle.h"
3636 #include"../base/Parameters.h"
37+#include"../base/RealSphericalHarmonicsIndex.h"
3738 #include"../base/atoms/Atom.h"
3839 #include"../base/Molecule.h"
3940 #include"../base/ElectronicStructure.h"
--- a/src/mndo/Mndo.cpp
+++ b/src/mndo/Mndo.cpp
@@ -39,6 +39,7 @@
3939 #include"../base/MallocerFreer.h"
4040 #include"../base/EularAngle.h"
4141 #include"../base/Parameters.h"
42+#include"../base/RealSphericalHarmonicsIndex.h"
4243 #include"../base/atoms/Atom.h"
4344 #include"../base/atoms/Hatom.h"
4445 #include"../base/atoms/Liatom.h"
--- a/src/nasco/NASCO.cpp
+++ b/src/nasco/NASCO.cpp
@@ -35,6 +35,7 @@
3535 #include"../mpi/MpiProcess.h"
3636 #include"../base/EularAngle.h"
3737 #include"../base/Parameters.h"
38+#include"../base/RealSphericalHarmonicsIndex.h"
3839 #include"../base/atoms/Atom.h"
3940 #include"../base/Molecule.h"
4041 #include"../base/ElectronicStructure.h"
--- a/src/optimization/BFGS.cpp
+++ b/src/optimization/BFGS.cpp
@@ -38,6 +38,7 @@
3838 #include"../wrappers/Lapack.h"
3939 #include"../base/EularAngle.h"
4040 #include"../base/Parameters.h"
41+#include"../base/RealSphericalHarmonicsIndex.h"
4142 #include"../base/atoms/Atom.h"
4243 #include"../base/Molecule.h"
4344 #include"../base/ElectronicStructure.h"
--- a/src/optimization/ConjugateGradient.cpp
+++ b/src/optimization/ConjugateGradient.cpp
@@ -35,6 +35,7 @@
3535 #include"../mpi/MpiProcess.h"
3636 #include"../base/EularAngle.h"
3737 #include"../base/Parameters.h"
38+#include"../base/RealSphericalHarmonicsIndex.h"
3839 #include"../base/atoms/Atom.h"
3940 #include"../base/Molecule.h"
4041 #include"../base/ElectronicStructure.h"
--- a/src/optimization/Optimizer.cpp
+++ b/src/optimization/Optimizer.cpp
@@ -35,6 +35,7 @@
3535 #include"../mpi/MpiProcess.h"
3636 #include"../base/EularAngle.h"
3737 #include"../base/Parameters.h"
38+#include"../base/RealSphericalHarmonicsIndex.h"
3839 #include"../base/atoms/Atom.h"
3940 #include"../base/Molecule.h"
4041 #include"../base/ElectronicStructure.h"
--- a/src/optimization/SteepestDescent.cpp
+++ b/src/optimization/SteepestDescent.cpp
@@ -35,6 +35,7 @@
3535 #include"../mpi/MpiProcess.h"
3636 #include"../base/EularAngle.h"
3737 #include"../base/Parameters.h"
38+#include"../base/RealSphericalHarmonicsIndex.h"
3839 #include"../base/atoms/Atom.h"
3940 #include"../base/Molecule.h"
4041 #include"../base/ElectronicStructure.h"
--- a/src/pm3/Pm3.cpp
+++ b/src/pm3/Pm3.cpp
@@ -32,6 +32,7 @@
3232 #include"../mpi/MpiProcess.h"
3333 #include"../base/EularAngle.h"
3434 #include"../base/Parameters.h"
35+#include"../base/RealSphericalHarmonicsIndex.h"
3536 #include"../base/atoms/Atom.h"
3637 #include"../base/atoms/Hatom.h"
3738 #include"../base/atoms/Liatom.h"
--- a/src/pm3/Pm3D.cpp
+++ b/src/pm3/Pm3D.cpp
@@ -32,6 +32,7 @@
3232 #include"../mpi/MpiProcess.h"
3333 #include"../base/EularAngle.h"
3434 #include"../base/Parameters.h"
35+#include"../base/RealSphericalHarmonicsIndex.h"
3536 #include"../base/atoms/Atom.h"
3637 #include"../base/atoms/Hatom.h"
3738 #include"../base/atoms/Liatom.h"
--- a/src/pm3/Pm3Pddg.cpp
+++ b/src/pm3/Pm3Pddg.cpp
@@ -32,6 +32,7 @@
3232 #include"../mpi/MpiProcess.h"
3333 #include"../base/EularAngle.h"
3434 #include"../base/Parameters.h"
35+#include"../base/RealSphericalHarmonicsIndex.h"
3536 #include"../base/atoms/Atom.h"
3637 #include"../base/atoms/Hatom.h"
3738 #include"../base/atoms/Liatom.h"
--- a/src/rpmd/RPMD.cpp
+++ b/src/rpmd/RPMD.cpp
@@ -35,6 +35,7 @@
3535 #include"../mpi/MpiProcess.h"
3636 #include"../base/EularAngle.h"
3737 #include"../base/Parameters.h"
38+#include"../base/RealSphericalHarmonicsIndex.h"
3839 #include"../base/atoms/Atom.h"
3940 #include"../base/Molecule.h"
4041 #include"../base/ElectronicStructure.h"
--- a/src/zindo/ZindoS.cpp
+++ b/src/zindo/ZindoS.cpp
@@ -39,6 +39,7 @@
3939 #include"../base/MathUtilities.h"
4040 #include"../base/EularAngle.h"
4141 #include"../base/Parameters.h"
42+#include"../base/RealSphericalHarmonicsIndex.h"
4243 #include"../base/atoms/Atom.h"
4344 #include"../base/atoms/Hatom.h"
4445 #include"../base/atoms/Liatom.h"