-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dielectric constant #185
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Dear all,
I was checking the compute for the dielectric constant and I figure it out that implementation is only for a epsilon where εReaction Field =∞. According to Neumann theory (1983), this way to compute is missing +1. I think for large values like in liquid water is a good approximation.
https://github.com/leeping/forcebalance/blob/master/src/data/npt.py#L686:
However, what about other values? For example when εRF tends to 1 or another value.
I think we can add more cases without a lot of work. For example, dipole fluctuations could come from
calc_eps0
function in a general way like this:dipoleFluctuations = calc_eps0(None,**{'d_':Dips, 'v_':V})/3.0
or modify
calc_eps0
function to something like this: name and return.dipoleFluctuations = calc_dipFluc(None,**{'d_':Dips, 'v_':V})
where
return prefactor*D2/bzavg(v_,b)/T/3.0
Thus we can add three cases: εRF = ∞, εRF = 1 and εRF = ε .
Case 1:
Eps0 = dipoleFluctuations*3.0 + 1.0
Case 2:
Eps0 = (dipoleFluctuations*2.0 + 1.0)/(1.0-dipoleFluctuations)
Case 3: .....
And this line calls the case selected:
https://github.com/leeping/forcebalance/blob/master/src/data/npt.py#L691
But I don't know if Eps0_err will change and analytic derivative too.
https://github.com/leeping/forcebalance/blob/master/src/data/npt.py#L693
https://github.com/leeping/forcebalance/blob/master/src/data/npt.py#L703
Thank you in advance,
Anthoni
The text was updated successfully, but these errors were encountered: