Skip to content

Commit fb69bbd

Browse files
author
Roberto Di Remigio
committed
Merge branch 'master' into release/1.Y
2 parents f705cee + cc7ddd0 commit fb69bbd

File tree

81 files changed

+1170
-2491
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+1170
-2491
lines changed

cmake/custom/autogenerated.cmake

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,17 @@ install(FILES ${PROJECT_BINARY_DIR}/include/Config.hpp DESTINATION include)
1717

1818

1919
# Configure the input parsing script
20-
configure_file(${PROJECT_SOURCE_DIR}/tools/pcmsolver.py.in ${PROJECT_BINARY_DIR}/bin/pcmsolver.py @ONLY)
20+
configure_file(${PROJECT_SOURCE_DIR}/tools/pcmsolver.py.in ${PROJECT_BINARY_DIR}/bin/tmp-pcmsolver-py @ONLY)
21+
add_custom_command(
22+
OUTPUT
23+
${PROJECT_BINARY_DIR}/bin/pcmsolver.py
24+
COMMAND
25+
cmake -E copy ${PROJECT_BINARY_DIR}/bin/tmp-pcmsolver-py ${PROJECT_BINARY_DIR}/bin/pcmsolver.py
26+
VERBATIM
27+
)
28+
add_custom_target(generate-pcmsolver-py ALL DEPENDS ${PROJECT_BINARY_DIR}/bin/pcmsolver.py)
2129
install(FILES ${PROJECT_BINARY_DIR}/bin/pcmsolver.py DESTINATION bin)
30+
2231
# Install GetKw Python bindings
2332
file(COPY ${PROJECT_SOURCE_DIR}/tools/getkw.py
2433
${PROJECT_SOURCE_DIR}/tools/pyparsing.py

src/bi_operators/CollocationIntegrator.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ struct CollocationIntegrator
7373
Eigen::MatrixXd singleLayer(const Vacuum<DerivativeTraits, CollocationIntegrator> & gf, const std::vector<Element> & e) const {
7474
return integrator::singleLayer(e,
7575
pcm::bind(integrator::SI, this->factor, 1.0, pcm::_1),
76-
pcm::bind(&Vacuum<DerivativeTraits, CollocationIntegrator>::kernelS, gf, pcm::_1, pcm::_2));
76+
gf.exportKernelS());
7777
}
7878
/*! \tparam DerivativeTraits how the derivatives of the Greens's function are calculated
7979
* \param[in] gf Green's function
@@ -83,7 +83,7 @@ struct CollocationIntegrator
8383
Eigen::MatrixXd doubleLayer(const Vacuum<DerivativeTraits, CollocationIntegrator> & gf, const std::vector<Element> & e) const {
8484
return integrator::doubleLayer(e,
8585
pcm::bind(integrator::DI, this->factor, pcm::_1),
86-
pcm::bind(&Vacuum<DerivativeTraits, CollocationIntegrator>::kernelD, gf, pcm::_1, pcm::_2, pcm::_3));
86+
gf.exportKernelD());
8787
}
8888
/**@}*/
8989

@@ -96,7 +96,7 @@ struct CollocationIntegrator
9696
Eigen::MatrixXd singleLayer(const UniformDielectric<DerivativeTraits, CollocationIntegrator> & gf, const std::vector<Element> & e) const {
9797
return integrator::singleLayer(e,
9898
pcm::bind(integrator::SI, this->factor, gf.epsilon(), pcm::_1),
99-
pcm::bind(&UniformDielectric<DerivativeTraits, CollocationIntegrator>::kernelS, gf, pcm::_1, pcm::_2));
99+
gf.exportKernelS());
100100
}
101101
/*! \tparam DerivativeTraits how the derivatives of the Greens's function are calculated
102102
* \param[in] gf Green's function
@@ -106,7 +106,7 @@ struct CollocationIntegrator
106106
Eigen::MatrixXd doubleLayer(const UniformDielectric<DerivativeTraits, CollocationIntegrator> & gf, const std::vector<Element> & e) const {
107107
return integrator::doubleLayer(e,
108108
pcm::bind(integrator::DI, this->factor, pcm::_1),
109-
pcm::bind(&UniformDielectric<DerivativeTraits, CollocationIntegrator>::kernelD, gf, pcm::_1, pcm::_2, pcm::_3));
109+
gf.exportKernelD());
110110
}
111111
/**@}*/
112112

src/bi_operators/IntegratorTypes.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22
/*
33
* PCMSolver, an API for the Polarizable Continuum Model
44
* Copyright (C) 2013-2015 Roberto Di Remigio, Luca Frediani and contributors
5-
*
5+
*
66
* This file is part of PCMSolver.
7-
*
7+
*
88
* PCMSolver is free software: you can redistribute it and/or modify
99
* it under the terms of the GNU Lesser General Public License as published by
1010
* the Free Software Foundation, either version 3 of the License, or
1111
* (at your option) any later version.
12-
*
12+
*
1313
* PCMSolver is distributed in the hope that it will be useful,
1414
* but WITHOUT ANY WARRANTY; without even the implied warranty of
1515
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1616
* GNU Lesser General Public License for more details.
17-
*
17+
*
1818
* You should have received a copy of the GNU Lesser General Public License
1919
* along with PCMSolver. If not, see <http://www.gnu.org/licenses/>.
20-
*
20+
*
2121
* For information on the complete list of contributors to the
2222
* PCMSolver API, see: <http://pcmsolver.readthedocs.org/>
2323
*/

src/bi_operators/NumericalIntegrator.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ struct NumericalIntegrator
6363
*/
6464
template <typename DerivativeTraits>
6565
Eigen::MatrixXd singleLayer(const Vacuum<DerivativeTraits, NumericalIntegrator> & gf, const std::vector<Element> & e) const {
66-
integrator::KernelS kernelS = pcm::bind(&Vacuum<DerivativeTraits, NumericalIntegrator>::kernelS, gf, pcm::_1, pcm::_2);
66+
integrator::KernelS kernelS = gf.exportKernelS();
6767
integrator::Diagonal diagS = pcm::bind(&integrator::integrateS<32, 16>, kernelS, pcm::_1);
6868
return integrator::singleLayer(e, diagS, kernelS);
6969
}
@@ -73,7 +73,7 @@ struct NumericalIntegrator
7373
*/
7474
template <typename DerivativeTraits>
7575
Eigen::MatrixXd doubleLayer(const Vacuum<DerivativeTraits, NumericalIntegrator> & gf, const std::vector<Element> & e) const {
76-
integrator::KernelD kernelD = pcm::bind(&Vacuum<DerivativeTraits, NumericalIntegrator>::kernelD, gf, pcm::_1, pcm::_2, pcm::_3);
76+
integrator::KernelD kernelD = gf.exportKernelD();
7777
integrator::Diagonal diagD = pcm::bind(&integrator::integrateD<32, 16>, kernelD, pcm::_1);
7878
return integrator::doubleLayer(e, diagD, kernelD);
7979
}
@@ -86,7 +86,7 @@ struct NumericalIntegrator
8686
*/
8787
template <typename DerivativeTraits>
8888
Eigen::MatrixXd singleLayer(const UniformDielectric<DerivativeTraits, NumericalIntegrator> & gf, const std::vector<Element> & e) const {
89-
integrator::KernelS kernelS = pcm::bind(&UniformDielectric<DerivativeTraits, NumericalIntegrator>::kernelS, gf, pcm::_1, pcm::_2);
89+
integrator::KernelS kernelS = gf.exportKernelS();
9090
integrator::Diagonal diagS = pcm::bind(&integrator::integrateS<32, 16>, kernelS, pcm::_1);
9191
return integrator::singleLayer(e, diagS, kernelS);
9292
}
@@ -96,7 +96,7 @@ struct NumericalIntegrator
9696
*/
9797
template <typename DerivativeTraits>
9898
Eigen::MatrixXd doubleLayer(const UniformDielectric<DerivativeTraits, NumericalIntegrator> & gf, const std::vector<Element> & e) const {
99-
integrator::KernelD kernelD = pcm::bind(&UniformDielectric<DerivativeTraits, NumericalIntegrator>::kernelD, gf, pcm::_1, pcm::_2, pcm::_3);
99+
integrator::KernelD kernelD = gf.exportKernelD();
100100
integrator::Diagonal diagD = pcm::bind(&integrator::integrateD<32, 16>, kernelD, pcm::_1);
101101
return integrator::doubleLayer(e, diagD, kernelD);
102102
}
@@ -109,7 +109,7 @@ struct NumericalIntegrator
109109
*/
110110
template <typename DerivativeTraits>
111111
Eigen::MatrixXd singleLayer(const IonicLiquid<DerivativeTraits, NumericalIntegrator> & gf, const std::vector<Element> & e) const {
112-
integrator::KernelS kernelS = pcm::bind(&IonicLiquid<DerivativeTraits, NumericalIntegrator>::kernelS, gf, pcm::_1, pcm::_2);
112+
integrator::KernelS kernelS = gf.exportKernelS();
113113
integrator::Diagonal diagS = pcm::bind(&integrator::integrateS<32, 16>, kernelS, pcm::_1);
114114
return integrator::singleLayer(e, diagS, kernelS);
115115
}
@@ -119,7 +119,7 @@ struct NumericalIntegrator
119119
*/
120120
template <typename DerivativeTraits>
121121
Eigen::MatrixXd doubleLayer(const IonicLiquid<DerivativeTraits, NumericalIntegrator> & gf, const std::vector<Element> & e) const {
122-
integrator::KernelD kernelD = pcm::bind(&IonicLiquid<DerivativeTraits, NumericalIntegrator>::kernelD, gf, pcm::_1, pcm::_2, pcm::_3);
122+
integrator::KernelD kernelD = gf.exportKernelD();
123123
integrator::Diagonal diagD = pcm::bind(&integrator::integrateD<32, 16>, kernelD, pcm::_1);
124124
return integrator::doubleLayer(e, diagD, kernelD);
125125
}
@@ -132,7 +132,7 @@ struct NumericalIntegrator
132132
*/
133133
template <typename DerivativeTraits>
134134
Eigen::MatrixXd singleLayer(const AnisotropicLiquid<DerivativeTraits, NumericalIntegrator> & gf, const std::vector<Element> & e) const {
135-
integrator::KernelS kernelS = pcm::bind(&AnisotropicLiquid<DerivativeTraits, NumericalIntegrator>::kernelS, gf, pcm::_1, pcm::_2);
135+
integrator::KernelS kernelS = gf.exportKernelS();
136136
integrator::Diagonal diagS = pcm::bind(&integrator::integrateS<32, 16>, kernelS, pcm::_1);
137137
return integrator::singleLayer(e, diagS, kernelS);
138138
}
@@ -142,7 +142,7 @@ struct NumericalIntegrator
142142
*/
143143
template <typename DerivativeTraits>
144144
Eigen::MatrixXd doubleLayer(const AnisotropicLiquid<DerivativeTraits, NumericalIntegrator> & gf, const std::vector<Element> & e) const {
145-
integrator::KernelD kernelD = pcm::bind(&AnisotropicLiquid<DerivativeTraits, NumericalIntegrator>::kernelD, gf, pcm::_1, pcm::_2, pcm::_3);
145+
integrator::KernelD kernelD = gf.exportKernelD();
146146
integrator::Diagonal diagD = pcm::bind(&integrator::integrateD<32, 16>, kernelD, pcm::_1);
147147
return integrator::doubleLayer(e, diagD, kernelD);
148148
}

src/bi_operators/PurisimaIntegrator.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ struct PurisimaIntegrator
7777
Eigen::MatrixXd singleLayer(const Vacuum<DerivativeTraits, PurisimaIntegrator> & gf, const std::vector<Element> & e) const {
7878
return integrator::singleLayer(e,
7979
pcm::bind(integrator::SI, this->factor, 1.0, pcm::_1),
80-
pcm::bind(&Vacuum<DerivativeTraits, PurisimaIntegrator>::kernelS, gf, pcm::_1, pcm::_2));
80+
gf.exportKernelS());
8181
}
8282
/*! \tparam DerivativeTraits how the derivatives of the Greens's function are calculated
8383
* \param[in] gf Green's function
@@ -86,7 +86,7 @@ struct PurisimaIntegrator
8686
template <typename DerivativeTraits>
8787
Eigen::MatrixXd doubleLayer(const Vacuum<DerivativeTraits, PurisimaIntegrator> & gf, const std::vector<Element> & e) const {
8888
// Obtain off-diagonal first
89-
Eigen::MatrixXd D = offDiagonalD(e, pcm::bind(&Vacuum<DerivativeTraits, PurisimaIntegrator>::kernelD, gf, pcm::_1, pcm::_2, pcm::_3));
89+
Eigen::MatrixXd D = offDiagonalD(e, gf.exportKernelD());
9090
// Fill diagonal based on Purisima's formula
9191
Eigen::VectorXd D_diag = diagonalD(e, D);
9292
D.diagonal() = D_diag;
@@ -103,7 +103,7 @@ struct PurisimaIntegrator
103103
Eigen::MatrixXd singleLayer(const UniformDielectric<DerivativeTraits, PurisimaIntegrator> & gf, const std::vector<Element> & e) const {
104104
return integrator::singleLayer(e,
105105
pcm::bind(integrator::SI, this->factor, gf.epsilon(), pcm::_1),
106-
pcm::bind(&UniformDielectric<DerivativeTraits, PurisimaIntegrator>::kernelS, gf, pcm::_1, pcm::_2));
106+
gf.exportKernelS());
107107
}
108108
/*! \tparam DerivativeTraits how the derivatives of the Greens's function are calculated
109109
* \param[in] gf Green's function
@@ -112,7 +112,7 @@ struct PurisimaIntegrator
112112
template <typename DerivativeTraits>
113113
Eigen::MatrixXd doubleLayer(const UniformDielectric<DerivativeTraits, PurisimaIntegrator> & gf, const std::vector<Element> & e) const {
114114
// Obtain off-diagonal first
115-
Eigen::MatrixXd D = offDiagonalD(e, pcm::bind(&UniformDielectric<DerivativeTraits, PurisimaIntegrator>::kernelD, gf, pcm::_1, pcm::_2, pcm::_3));
115+
Eigen::MatrixXd D = offDiagonalD(e, gf.exportKernelD());
116116
// Fill diagonal based on Purisima's formula
117117
Eigen::VectorXd D_diag = diagonalD(e, D);
118118
D.diagonal() = D_diag;

src/bin/CMakeLists.txt

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,9 @@
1-
# Executables for testing separate from Boost unit test framework or for profiling purposes
1+
# Executables for testing separate from the unit test framework or for profiling purposes
22
# The executables will be created in ${PROJECT_BINARY_DIR}/src/bin
33

44
#add_executable(debug_wavcav debug_wavcav.cpp)
55
#target_link_libraries(debug_wavcav solver cavity wavcav pwl wem utils)
66

7-
#add_executable(plot_green_spherical plot_green_spherical.cpp)
8-
#target_link_libraries(plot_green_spherical utils ${external_libraries})
9-
10-
#add_executable(plot_green_spherical-CASE1 plot_green_spherical-CASE1.cpp)
11-
#target_link_libraries(plot_green_spherical-CASE1 utils ${external_libraries})
12-
#add_executable(plot_green_spherical-CASE2 plot_green_spherical-CASE2.cpp)
13-
#target_link_libraries(plot_green_spherical-CASE2 utils ${external_libraries})
14-
#add_executable(plot_green_spherical-CASE3 plot_green_spherical-CASE3.cpp)
15-
#target_link_libraries(plot_green_spherical-CASE3 utils ${external_libraries})
16-
#add_executable(plot_green_spherical-CASE4 plot_green_spherical-CASE4.cpp)
17-
#target_link_libraries(plot_green_spherical-CASE4 utils ${external_libraries})
18-
19-
#add_executable(check_Coulomb_coefficient check_Coulomb_coefficient.cpp)
20-
#target_link_libraries(check_Coulomb_coefficient utils ${external_libraries})
21-
227
link_directories(${PROJECT_BINARY_DIR}/lib)
238
add_executable(run_pcm run_pcm.cpp)
249
add_dependencies(run_pcm generate-config-hpp)

src/bin/README.md

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/bin/check_Coulomb_coefficient.cpp

Lines changed: 0 additions & 105 deletions
This file was deleted.

0 commit comments

Comments
 (0)