/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  dev
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      potentials;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

// Subdictionaries specifying types of intermolecular potential.
// Sub-sub dictionaries specify the potentials themselves.

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Removal order

// This is the order in which to remove overlapping pairs if more than one
// type of molecule is present.  The most valuable molecule type is at the
// right hand end, the molecule that will be removed 1st is 1st on the list.
// Not all types need to be present, a molecule that is not present is
// automatically less valuable than any on the list.  For molecules of the
// same type there is no control over which is removed.

removalOrder ( Ar );

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Potential Energy Limit

// Maximum permissible pair energy allowed at startup.  Used to remove
// overlapping molecules created during preprocessing.

potentialEnergyLimit 1e-18;

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Pair potentials

// If there are r different type of molecules, and a pair force is required
// between all combinations, then there are C = r(r+1)/2 combinations,
// i.e. for r = {1,2,3,4}, C = {1,3,6,10} (sum of triangular numbers).

// Pair potentials are specified by the combinaition of their ids,
// for MOLA and MOLB, "MOLA-MOLB" OR "MOLB-MOLA" is acceptable
// (strictly OR, both or neither is an error)

pair
{
    Ar-Ar
    {
        pairPotential   maitlandSmith;
        rCut            1.0e-9;
        rMin            0.15e-9;
        dr              5e-14;
        maitlandSmithCoeffs
        {
            m           13.0;
            gamma       7.5;
            rm          0.3756e-9;
            epsilon     1.990108438e-21;
        }
        energyScalingFunction   doubleSigmoid;
        doubleSigmoidCoeffs
        {
            shift1      0.9e-9;
            scale1      0.3e11;
            shift2      0.97e-9;
            scale2      1.2e11;
        }
        writeTables     yes;
    }

    electrostatic
    {
        pairPotential   dampedCoulomb;
        rCut            1.0e-9;
        rMin            0.1e-9;
        dr              2e-12;
        dampedCoulombCoeffs
        {
            alpha       2e9;
        }
        energyScalingFunction   shiftedForce;
        writeTables     yes;
    }
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Tethering Potentials

tether
{
    O
    {
        tetherPotential restrainedHarmonicSpring;
        restrainedHarmonicSpringCoeffs
        {
            springConstant  0.277;
            rR              1.2e-9;
        }
    }
}


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// External Forces

// Bulk external forces (namely gravity) will be specified as forces rather
// than potentials to allow their direction to be controlled.

external
{
    gravity             (0 0 0);
}


// ************************************************************************* //
