1Interfacing a QM program and PCMSolver 2====================================== 3 4For the impatients: tl;dr 5------------------------- 6 7In these examples, we want to show how *every function* in the API works. 8If your program is written in Fortran, head over to :ref:`fortran-example` 9If your program is written in C/C++, head over to :ref:`C-example` 10 11How PCMSolver handles potentials and charges: surface functions 12--------------------------------------------------------------- 13 14Electrostatic potential vectors and the corresponding apparent surface 15charge vectors are handled internally as `surface functions`. 16The actual values are stored into Eigen vectors and saved into a 17map. The mapping is between the name of the surface function, given by 18the programmer writing the interface to the library, and the vector holding 19the values. 20 21What you should care about: API functions 22----------------------------------------- 23 24These are the contents of the ``pcmsolver.h`` file defining 25the public API of the PCMSolver library. The Fortran bindings 26for the API are in the ``pcmsolver.f90`` file. 27The indexing of symmetry operations and their mapping to a bitstring 28is explained in the following Table. This is important when passing 29symmetry information to the :cpp:func:`pcmsolver_new` function. 30 31.. _symmetry-ops: 32.. table:: Symmetry operations indexing within the module 33 34 ===== === ========= ====== 35 Index zyx Generator Parity 36 ===== === ========= ====== 37 0 000 E 1.0 38 1 001 Oyz -1.0 39 2 010 Oxz -1.0 40 3 011 C2z 1.0 41 4 100 Oxy -1.0 42 5 101 C2y 1.0 43 6 110 C2x 1.0 44 7 111 i -1.0 45 ===== === ========= ====== 46 47 48.. doxygenfile:: mock_pcmsolver.h 49 :project: PCMSolver 50 51Host input forwarding 52--------------------- 53 54.. doxygenstruct:: PCMInput 55 :project: PCMSolver 56 57Internal details of the API 58--------------------------- 59 60.. doxygenclass:: pcm::Meddle 61 :project: PCMSolver 62 :members: 63 :protected-members: 64 :private-members: 65 66.. doxygenclass:: pcm::Input 67 :project: PCMSolver 68 :members: 69 :protected-members: 70 :private-members: 71