Hi Kheerti,
I was the PhD student at the time who implemented the MEMD method in
the
ScaFaCoS library. However, I am not in scientific research anymore and
don't think I will be easily able to debug the code, at least not on an
acceptable timeline.
May I ask why you picked the MEMD algorithm out of all the available?
Because it is a very special algorithm that does provide some benefits
in very special and particular cases, mostly a smoothly varying
inhomogenous dielectric background constant. But this feature is not
available in the ScaFaCoS library, since you don't have an interface to
set the local dielectric background anyways.
So honestly, even though I implemented the code and got to like the
algorithm with time, I would probably recommend you to pick a different
algorithm for your Coulomb solver. Most other methods are much more
established, at least as fast, and are more regularly updated. Last I
looked, the P3M method is the most commonly used for coarse grained
soft
matter physics applications, and it is the one I would probably use
myself if I plugged the library into any of my codes.
If you desperately need the MEMD method to work, I can take another
look
at it, but it has been years since I even compiled this, and I cannot
guarantee that this would be fast.
I hope this answer helps you to some degree and wish you the best of
luck in your research,
Florian
Am 25.09.2021 um 16:13 schrieb Keerthi Radhakrishnan 150503 via
ESPResSo
developers' discussions:
Dear all,
I am a PhD student currently pursuing research in soft matter physics.
My work mostly deals with charged polymeric systems. Presently, my
project at hand demands the incorporation of dielectric variation
within the solvent in the presence of explicit charges. For that I
resort to the MEMD solver included in SCAFACOS library for the
electrostatics. This is the code snippet from my pypresso script where
it incubates MEMD following the instructions given in the espresso
manual.
from espressomd.electrostatics import Scafacos
from espressomd.electrostatics import Scafacos
scafacos = Scafacos(prefactor=1, method_name="memd",
method_params={"timestep": 0.005, "mesh": 1, "temperature":1,
"bjerrum_length":3})
system.actors.add(scafacos)
Following this I get an error regarding the unrecognition of the
passed
argument, which I have carefully taken the argument names mentioned in
SCAFACOS manual itself for MEMD Solver-specific parameters. If this is
not the case of how arguments are named, then where in espresso
documentations is anything regarding it given.
The ERROR is follows:
New handle created!
terminate called after throwing an instance of 'std::runtime_error'
what(): interface (parser): error in parameter string at
'timestep'!
[Langevin:04113] *** Process received signal ***
[Langevin:04113] Signal: Aborted (6)
[Langevin:04113] Signal code: (-6)
[Langevin:04113] [ 0]
/lib/x86_64-linux-gnu/libc.so.6(+0x3efd0)[0x7f58ac287fd0]
[Langevin:04113] [ 1]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f58ac287f47]
[Langevin:04113] [ 2]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f58ac2898b1]
[Langevin:04113] [ 3]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8c957)[0x7f58a9d42957]
[Langevin:04113] [ 4]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x92ae6)[0x7f58a9d48ae6]
[Langevin:04113] [ 5]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x92b21)[0x7f58a9d48b21]
[Langevin:04113] [ 6]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x92d54)[0x7f58a9d48d54]
[Langevin:04113] [ 7]
/home/system1/espresso/test_build2/src/scafacos/Scafacos.so(_ZN8Scafacos8Scafacos16parse_parametersERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x68)[0x7f58a1931938]
[Langevin:04113] [ 8]
/home/system1/espresso/test_build2/src/scafacos/Scafacos.so(_ZN8Scafacos8ScafacosC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP19ompi_communicator_tS8_+0xca)[0x7f58a1931a1a]
[Langevin:04113] [ 9]
/home/system1/espresso/test_build2/src/core/EspressoCore.so(+0x25261d)[0x7f58aa79d61d]
[Langevin:04113] [10]
/home/system1/espresso/test_build2/src/core/EspressoCore.so(_ZN8Scafacos14set_parametersERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_b+0x3a6)[0x7f58aa79dab6]
[Langevin:04113] [11]
/home/system1/espresso/test_build2/src/python/espressomd/scafacos.so(+0xb651)[0x7f58084c3651]
[Langevin:04113] [12]
/home/system1/espresso/test_build2/src/python/espressomd/electrostatics.so(+0x39c3d)[0x7f5808704c3d]
[Langevin:04113] [13]
/home/system1/espresso/test_build2/src/python/espressomd/electrostatics.so(+0x39e0d)[0x7f5808704e0d]
[Langevin:04113] [14]
/home/system1/espresso/test_build2/src/python/espressomd/electrostatics.so(+0x4ff46)[0x7f580871af46]
[Langevin:04113] [15]
/home/system1/espresso/test_build2/src/python/espressomd/actors.so(+0xd47d)[0x7f585c92947d]
[Langevin:04113] [16]
/home/system1/espresso/test_build2/src/python/espressomd/actors.so(+0xd64d)[0x7f585c92964d]
[Langevin:04113] [17]
/home/system1/espresso/test_build2/src/python/espressomd/actors.so(+0x19b06)[0x7f585c935b06]
[Langevin:04113] [18]
/home/system1/espresso/test_build2/src/python/espressomd/script_interface.so(+0x135ec)[0x7f589df195ec]
[Langevin:04113] [19]
/home/system1/espresso/test_build2/src/python/espressomd/actors.so(+0xd47d)[0x7f585c92947d]
[Langevin:04113] [20]
/home/system1/espresso/test_build2/src/python/espressomd/actors.so(+0xd64d)[0x7f585c92964d]
[Langevin:04113] [21]
/home/system1/espresso/test_build2/src/python/espressomd/actors.so(+0x1146a)[0x7f585c92d46a]
[Langevin:04113] [22]
/usr/bin/python3(_PyObject_FastCallKeywords+0x19c)[0x5a9d2c]
[Langevin:04113] [23] /usr/bin/python3[0x50a533]
[Langevin:04113] [24]
/usr/bin/python3(_PyEval_EvalFrameDefault+0x444)[0x50bf44]
[Langevin:04113] [25] /usr/bin/python3[0x507cd4]
[Langevin:04113] [26] /usr/bin/python3(PyEval_EvalCode+0x23)[0x50ae13]
[Langevin:04113] [27] /usr/bin/python3[0x635262]
[Langevin:04113] [28]
/usr/bin/python3(PyRun_FileExFlags+0x97)[0x635317]
[Langevin:04113] [29]
/usr/bin/python3(PyRun_SimpleFileExFlags+0x17f)[0x638acf]
[Langevin:04113] *** End of error message ***
Aborted (core dumped)
Following, this I also figured that the interface file in scafacos:
scafacos-fcs-0.1/src/FCSInterface.c - line 1633 the part where
arguments for memd is defined is commented. Don't know if this has
anything to do with the existing issue.
An insight into the root of this problem and a practical resolve to it
would be highly appreciated.
Regards
Keerthi