The main contribution of the program is in the analytic approach to the setting of dielectric constant for all discretization points of a grid in the computational domain according to their locations with respect to the molecular surface allowing also taking into account possible cavities. Assigned values of dielectric constant are used in a solver of the linear Poisson–Boltzmann equation for a protein–water system using a finite difference method. Program summary: Program Title: PBCAVE Program Files doi: http://dx.doi.org/10.17632/d77n7yskmc.1 Licensing provisions: MIT Programming language: C++11 (or more recent) Nature of problem: A key problem in the solution of the Poisson–Boltzmann equation for protein using a discretization of the domain consists in the assignment of proper dielectric constants at the individual mesh points of the discretization. A widely used approach is to check if a given point is inside some atom and then its dielectric constant is set to the one of an internal point while if it is not, then its constant is set to the value of the solvent (usually water). While this approach is sufficient for most of the points, there are still many points which do not belong to these two groups, for instance because they are close to the surface of the protein, but are not accessible yet by the solvent. Solution method: To secure proper dielectric constant values, we use our previous work on the calculation of the volume and the accessible volume of a protein (see, e.g., [1–3]). A prerequisite for setting dielectric constants is to load the user provided protein. Then the so-called enveloping triangulation [4] is built with the aim to identify the cavities inside the protein and to make a list of the points close to the exterior part of triangles forming this triangulation. After this we conduct a series of tests for each mesh point and determine its proper dielectric constant with respect to the molecular surface. The tests allow us to define four types of points. Based on analytic calculations verifying the fulfillment of inequality systems or calculating the total oriented spherical angle of a point with respect of the enveloping triangulation. Now we have all dielectric constants set and we can solve the Poisson–Boltzmann equation. To solve this equation we have used the SOR method over the Gauss–Seidel iterative finite differences scheme with parameter choice according to [5]. Since the main focus of our research was the classification of the mesh points, we have not studied other potentially more suitable methods of solving this equation. Also, we used only homogeneous Dirichlet conditions while the program allows the user for implementing his own boundary conditions. Additional comments including restrictions and unusual features: While we have built our program to comply with C++17, it also compiles without problems with older standards (C++11). We have used CMake to make installation and transfer of the program easier between various computers/operating systems but it is also possible to compile the whole project by hand as well in the case of missing CMake. [1] J. Buša, I. Pokorný, E. A. Hayryan, J. Skřivánek, Identification of Internal Points of Macromolecular System for the Definition of the Parameters of a Poisson–Boltzmann Equation, Bulletin of PFUR Series Mathematics. Information Sciences. Physics. 2 (2) (2010) 70–75. http://vestnik-miph.sci.pfu.edu.ru/webfm_send/32. [2] J. Buša, S. Hayryan, C.-K. Hu, J. Skřivánek, M.-C. Wu, CAVE: A package for detection and quantitative analysis of internal cavities in a system of overlapping balls: Application to proteins, Computer Physics Communications 181 (12) (2010) 2116–2125. http://dx.doi.org/10.1016/j.cpc.2010.08.032. [3] J. Buša Jr, J. Buša, S. Hayryan, C.-K. Hu, M.-C. Wu, CAVE-CL: An OpenCL version of the package for detection and quantitative analysis of internal cavities in a system of overlapping balls: Application to proteins, Computer Physics Communications 190 (2015) 224–227. http://dx.doi.org/10.1016/j.cpc.2014.12.017. [4] J. Buša, S. Hayryan, C.-K. Hu, J. Skřivánek, M.-C. Wu, Enveloping triangulation method for detecting internal cavities in proteins and algorithm for computing their surface areas and volumes, Journal of Computational Chemistry 30 (3) (2009) 346–357. http://dx.doi.org/10.1002/jcc.21060. [5] B. A. Carré, The determination of the optimum accelerating factor for successive over-relaxation, The Computer Journal 4 (1) (1961) 73–78. https://doi.org/10.1093/comjnl/4.1.73. © 2019 Elsevier B.V.