Skip to content

Commit 440fdc7

Browse files
author
Roberto Di Remigio
committed
A better printer for GePolCavity + address feature request #13.
The printer for GePolCavity can possibly report wrong values for explicitly specified lists of spheres
1 parent 29f8b5d commit 440fdc7

File tree

14 files changed

+2149
-900
lines changed

14 files changed

+2149
-900
lines changed

CHANGELOG.md

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,30 @@
44
### Added
55
- A runtime check to ensure that all atoms have a nonzero radius.
66
API kills program execution if this is the case.
7+
- An API function to retrieve the areas/weights of the cavity finite elements.
8+
The values in the returned array are in Bohr^2.
9+
Addresses feature request from @shofener (Issue #13)
710

811
### Changed
12+
- GePolCavity learnt to print also the list of spheres used to generate
13+
the cavity.
14+
- Different internal handling of conversion factors from Bohr to Angstrom.
915
- CMake minimum required version is 2.8.10
10-
- Atom is now a POD
16+
- Atom and Solvent are now PODs. The radii and solvent lists are free functions.
1117
- `PCMSOLVER_ERROR ` kills program execution when an error arises but does
1218
not use C++ exceptions.
1319
- `include`-s are now specified on a per-directory basis (see programmers' manual
1420
for a more detailed explanation)
1521

16-
## [v1.1.0](https://github.com/PCMSolver/pcmsolver/tree/v1.1.0) (2016-02-07)
17-
[Full Changelog](https://github.com/PCMSolver/pcmsolver/compare/v1.0.4...v1.1.0)
22+
### Known Issues
23+
- The new printer in GePolCavity might not work properly when an explicit list
24+
of spheres is provided in the input.
25+
26+
### Removed
27+
- SurfaceFunction as a class is no longer available. We keep track of surface functions
28+
at the interface level _via_ a label-vector map.
29+
30+
## [v1.1.0] (2016-02-07)
1831

1932
### Added
2033
- Green's function for diffuse interfaces in spherical symmetry
@@ -23,19 +36,20 @@ for a more detailed explanation)
2336
- CMake minimum required version is 2.8.8 (2016-01-08)
2437
- Documentation is now served [here](http://pcmsolver.readthedocs.org/)
2538

26-
## [v1.0.4](https://github.com/PCMSolver/pcmsolver/tree/v1.0.4) (2015-07-22)
27-
[Full Changelog](https://github.com/PCMSolver/pcmsolver/compare/v1.0.3...v1.0.4)
28-
29-
## [v1.0.3](https://github.com/PCMSolver/pcmsolver/tree/v1.0.3) (2015-03-29)
30-
[Full Changelog](https://github.com/PCMSolver/pcmsolver/compare/v1.0.2...v1.0.3)
39+
## [v1.0.4] (2015-07-22)
3140

32-
## [v1.0.2](https://github.com/PCMSolver/pcmsolver/tree/v1.0.2) (2015-03-28)
33-
[Full Changelog](https://github.com/PCMSolver/pcmsolver/compare/v1.0.1...v1.0.2)
41+
## [v1.0.3] (2015-03-29)
3442

35-
## [v1.0.1](https://github.com/PCMSolver/pcmsolver/tree/v1.0.1) (2015-01-06)
36-
[Full Changelog](https://github.com/PCMSolver/pcmsolver/compare/1.0.0...v1.0.1)
43+
## [v1.0.2] (2015-03-28)
3744

38-
## [1.0.0](https://github.com/PCMSolver/pcmsolver/tree/1.0.0) (2014-09-30)
45+
## [v1.0.1] (2015-01-06)
3946

47+
## [1.0.0] (2014-09-30)
4048

41-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
49+
[Unreleased]: https://github.com/PCMSolver/pcmsolver/compare/v1.1.0...HEAD
50+
[v1.1.0]: https://github.com/PCMSolver/pcmsolver/compare/v1.0.4...v1.1.0
51+
[v1.0.4]: https://github.com/PCMSolver/pcmsolver/compare/v1.0.3...v1.0.4
52+
[v1.0.3]: https://github.com/PCMSolver/pcmsolver/compare/v1.0.2...v1.0.3
53+
[v1.0.2]: https://github.com/PCMSolver/pcmsolver/compare/v1.0.1...v1.0.2
54+
[v1.0.1]: https://github.com/PCMSolver/pcmsolver/compare/1.0.0...v1.0.1
55+
[1.0.0]: https://github.com/PCMSolver/pcmsolver/tree/1.0.0

api/pcmsolver.F90

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
!pcmsolver_copyright_start
22
! PCMSolver, an API for the Polarizable Continuum Model
33
! Copyright (C) 2013-2015 Roberto Di Remigio, Luca Frediani and contributors
4-
!
4+
!
55
! This file is part of PCMSolver.
6-
!
6+
!
77
! PCMSolver is free software: you can redistribute it and/or modify
88
! it under the terms of the GNU Lesser General Public License as published by
99
! the Free Software Foundation, either version 3 of the License, or
1010
! (at your option) any later version.
11-
!
11+
!
1212
! PCMSolver is distributed in the hope that it will be useful,
1313
! but WITHOUT ANY WARRANTY; without even the implied warranty of
1414
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1515
! GNU Lesser General Public License for more details.
16-
!
16+
!
1717
! You should have received a copy of the GNU Lesser General Public License
1818
! along with PCMSolver. If not, see <http://www.gnu.org/licenses/>.
19-
!
19+
!
2020
! For information on the complete list of contributors to the
2121
! PCMSolver API, see: <http://pcmsolver.readthedocs.org/>
2222
!pcmsolver_copyright_end
@@ -37,6 +37,7 @@ module pcmsolver
3737
public pcmsolver_get_irreducible_cavity_size
3838
public pcmsolver_get_centers
3939
public pcmsolver_get_center
40+
public pcmsolver_get_areas
4041
public pcmsolver_compute_asc
4142
public pcmsolver_compute_response_asc
4243
public pcmsolver_compute_polarization_energy
@@ -142,6 +143,14 @@ subroutine pcmsolver_get_center(context, its, center) bind(C)
142143
end subroutine pcmsolver_get_center
143144
end interface pcmsolver_get_center
144145

146+
interface pcmsolver_get_areas
147+
subroutine pcmsolver_get_areas(context, areas) bind(C)
148+
import
149+
type(c_ptr), value :: context
150+
real(c_double), intent(inout) :: areas(*)
151+
end subroutine pcmsolver_get_areas
152+
end interface pcmsolver_get_areas
153+
145154
interface pcmsolver_compute_asc
146155
subroutine pcmsolver_compute_asc(context, mep_name, asc_name, irrep) bind(C)
147156
import

api/pcmsolver.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,12 @@ PCMSOLVER_API void pcmsolver_get_centers(pcmsolver_context_t * context, double c
159159
*/
160160
PCMSOLVER_API void pcmsolver_get_center(pcmsolver_context_t * context, int its, double center[]);
161161

162+
/*! \brief Getter for the areas/weights of the finite elements
163+
* \param[in, out] context the PCM context object
164+
* \param[out] areas array holding the weights/areas of the finite elements
165+
*/
166+
PCMSOLVER_API void pcmsolver_get_areas(pcmsolver_context_t * context, double areas[]);
167+
162168
/*! \brief Computes ASC given a MEP and the desired irreducible representation
163169
* \param[in, out] context the PCM context object
164170
* \param[in] mep_name label of the MEP surface function

0 commit comments

Comments
 (0)