lcpp-org / RustBCA

A free, open-source Binary Collision Approximation (BCA) code for ion-material interactions including sputtering, implantation, and reflection
https://github.com/lcpp-org/RustBCA/wiki
GNU General Public License v3.0
37 stars 11 forks source link

Error when using a new interaction potential #31

Closed jackstahl closed 3 years ago

jackstahl commented 4 years ago

I attempted to add a new interaction potential based on results from a DFT code. The best fit of the data is a modified Lennard-Jones potential:

16.0*( (1.87/xi).powf(6.5) - (1.87/xi).powf(6.0) )

After our conversation yesterday, I attempted to convert this V(r) potential to a dimensionless phi(r) potential by multiplying by r, without worrying about any additional scaling factor.

xi*(16.0*( (1.87/xi).powf(6.5) - (1.87/xi).powf(6.0) ))

This code failed to run, seen in the image below, and I haven't been able to find the backtrace variable to obtain a better backtrace. Let me know if there's any additional information I can give that would be helpful when diagnosing this problem.

image

jackstahl commented 3 years ago

Okay, I'm going into cargo.toml and commenting out the HDF5 lines. Is that sufficient to build without it, or do I need to do something else as well?

jackstahl commented 3 years ago

Actually, I just installed HDF5. That seemed like a faster way to fix the problem.

drobnyjt commented 3 years ago

Oh, all you need to do is build with: cargo build --features cpr_rootfinder instead of: cargo build --features cpr_rootfinder,hdf5_input

It should automatically disable all hdf5 code, no need to make changes to Cargo.toml.

jackstahl commented 3 years ago

Right, that would make sense, now that I think about it. Anyways, it seems to be building successfully now.

drobnyjt commented 3 years ago

Great! Let me know if you're able to successfully run one of the new input files on the wiki - also, try running: cargo test --features cpr_rootfinder and making sure all 8 tests return ok.

jackstahl commented 3 years ago

Everything seemed to be working until I ran out of storage-- I guess giving 10GB to the VM wasn't enough. After turning the machine off, adding storage, and turning it back on, I started getting these errors. Looks like this may be something I need to sort out on my end, because it seems the VM isn't recognizing the new space it should be able to access.

VirtualBoxVM_4m1E8ejkIj VirtualBoxVM_6731LTCKGJ
drobnyjt commented 3 years ago

Those are some of the least helpful error messages I've seen in a long time - you've got cmake and gcc, but did you run sudo apt-get install build-essential? Maybe there's something still missing.

jackstahl commented 3 years ago

That command seemed to run with no errors. I'm fairly certain that it just ran out of space, because the internal storage disk only tells me it has 10GB filled up, not the 25 it should have access to now. If I can't figure this out, I think I'll just make a fresh VM with enough space to begin with, and repeat the steps that we went through over the past few hours on that.

jackstahl commented 3 years ago

Got everything running after reinstalling on a new VM, so it was just some weird storage issue. I was able to do some data analysis with the LJ 65-6 potential, and the results seem to be pretty interesting. I have a meeting coming up with my contacts at ASML and I expect they'll want to hear all about the theory behind getting this part of the code working; at some point I may have to ask some further questions regarding the process.

In the meantime though, thanks so much for your help figuring this out! I appreciate all the work you've put into this, and also for the troubleshooting help tonight.

drobnyjt commented 3 years ago

Awesome! You're very welcome - right now you're literally the only other user of the code, so it's 100% worth my while.

The big thing I've noticed with the attractive-repulsive potentials so far is that, once the particle energy gets small enough, they kind of get stuck bouncing back and forth in a highly localized space, since they've essentially transitioned from a random walk weighted towards small angle deflections to a nearly ideal random walk at the orbiting condition. I bet the transport analysis would be really interesting.

I'd be happy to provide whatever you need regarding the theory side - I have to write this all up for my thesis anyhow so I might as well get started, haha.

drobnyjt commented 3 years ago

@jackstahl Heads up, if you git pull after today, you'll have to slightly change how you build the code. I spun off the LAPACK/BLAS dependency into a user choice, so instead of building with --features cpr_rootfinder, you have the option of building with one of the following:

--features cpr_rootfinder_openblas
--features cpr_rootfinder_netlib
--features cpr_rootfinder_intel_mkl

Allegedly, intel-mkl will work on Windows natively, but I haven't been able to get that to work yet. To replicate the current behavior, build with the netlib option.

drobnyjt commented 3 years ago

Closing this once again, as I'm pretty sure all the requisite pieces are now in place!