# Calculating the electrostatic potential of a molecule: what is a good 3D Poisson equation solver?

I was wondering if anybody can recommend an easy-to-use library/program to solve the 3D Poisson equation $$\Delta V(r,\theta,\phi) = \rho(r,\theta,\phi)$$ with vanishing solutions at infinity:

$$V(r,\theta,\phi) = \int d^3\mathbf{r}'\frac{\rho(\mathbf{r}')}{|\mathbf{r}-\mathbf{r}'|}$$,

where $$\mathbf{r} \rightarrow (r,\theta,\phi)$$. Here $$\rho$$ is a discrete + continuous charge density. The intended application is to calculate the electrostatic potential of a model polyatomic molecule composed of static, point-like nuclear charges and an arbitrary continuous electron density.

This question is a follow up to: 3D Poisson equation solver for arbitrary charge distribution? , which remains unanswered.

I am looking for a library, which is straightforward to use and which does not invoke the multipole expansion. There is plenty of solvers available on the market. I am familiar with three:

1. The Fenics project (finite element methods)
2. The 'multipoles' python library (solutions in the form of the multipole expansion)
3. COMSOL Multiphysics (not a freeware, finite elements),

but if anybody has a good experience with some other library (ideally in python or fortran), sharing this experience here would be appreciated. The widely used J. Burkardt's libraries do not seem to contain such a solver routine.

Ideally, I wish to define the charge distribution $$\rho$$ (on a grid or analytically) and receive the value of the potential $$V$$ at any point $$(r,\theta,\phi)$$, without too much hustle.

Best wishes,

Emil