Open bernstei opened 2 years ago
[ADDED LATER] deleted comment which was a red herring. Adding IPFitting
to the using
line let it get further (and in pure julia would have been enough), but led to some sort of low level python conflict, perhaps because IPFitting uses PyCall, and so the nesting of processes was python -> C -> julia -> python.
@cortner says it's just an incompatibility, and the test script's assets potential is actually and ACE, not an ACE1. We should create a proper ACE1, and use it in the test script when checking ACE1 functionality.
The potential in the test was fitted using ACE v0.8.x which is what ACE1 is as far as I understand.
So what is the problem currently? Sorry, I am a little confused.
Ask @cortner how the incompatibility came to be, but with using JuLIP, ACE1
in the C code, it fails with the error ERROR: LoadError: JuLIP.FIO.read_dict no implemented for symbol ACE_PolyPairPot
. Can you confirm that it works for you, when julia is installed following the current directions (i.e. JuLIP, ACE1, PyCall, ASE, IPFitting@0.4.3)
@cortner @davkovacs do you want me to edit out the misleading and irrelevant stack traces in the earlier messages?
I am now trying to create a new ACE1 test potential that we can use. I am not sure how useful or not those stack traces are. I will probably rewrite a little the whole interface to give better error messges. For the OpenMM I have figured out a little how to do it.
I think they are not useful (at least for this issue), because they have more to do with how things behave if you try to import ACE1 when you only have ACE installed, or try to "fix" the ACE dict loading problem by adding "using IPFitting", which are both the wrong thing to do. In general we could use a lot more error checking in all of ACE.
[ADDED LATER] deleted irrelevant stack trace, but left first one in with more explanation as to what's actually going wrong.
With the new ACE1 configured for julia, running the ase interface test (ensuring that JULIA_PROJECT is set correctly) crashes with the following stack trace. This is inside the call to the
ace_c.c
functionenergy()
, specifically the call tojlE = jl_call2(_energyfcn, calc, at);
.[ADDED LATER] Note that this stack trace is probably irrelevant. The problem is the reference potential file being incompatible with ACE1.