quacateam / quaca Goto Github PK
View Code? Open in Web Editor NEWQuaCa is an open-source library which provides fast calculations of nonequilibrium atom-surface interactions.
Home Page: https://quacateam.github.io/quaca/
License: MIT License
QuaCa is an open-source library which provides fast calculations of nonequilibrium atom-surface interactions.
Home Page: https://quacateam.github.io/quaca/
License: MIT License
Check for and remove sensitive files.
The input file constructor for the Friction class is faulty.
Let us prepare for our upcoming publication of QuaCa in JOSS. They have a guide on how to publish and these are the requirements:
ToDos Paper:
paper/paper.bib
(remove file links)ToDos Repositories:
Tutorial 3 needs to be updated: Currently, no cpp file is created which prevents proper execution of the tutorial's result.
Originally posted by @ddanzer in #74 (review)
Should be done in branch UX_check before merge into main can be completed. Recommend reconfirming test of functionality of tutorial 3 before submitting.
Test and check tutorials with respect to consistency and functionality.
In github it is not possible to transfer the ownership to several persons. However, one can transfer the ownership to a organization. Thus, the repository should be transferred to the QuaCa Foundation.
The reflection coefficient returns nan's for a frequency of oemga = 0. This is due the fact, that the PermittivityDrude.calculate returns a value of (-inf, nan), leading to a return value of (-nan, -nan) in ReflectionCoefficientLocBulk.calculate
The permittivity class has the member function
virtual std::complex<double> calculate_times_omega(double omega) const = 0;
which never seems to be used. I also think that it is not very useful, e.g. in the lorentz permittivity, where it does not remove any singularities.
I think it is best to delete it.
Our git repository still contains directories/files that we would not want to track, such as: bin/, .idea/ and .DS_Store.
They should already be included in the .gitignore but have not been removed from tracking.
The indices (0,2), (2,0) and (2,2) are divided by kappa_double, therefore returning a value of inf for kappa_double == 0. This could be resolved by correctly canceling all kappa's appearing in the Green's tensor.
We should aim for a proper installation of QuaCa and its executables. This will also get rid of the bin/ and lib/ directory.
Adjust draft with respect to the new core message, incorporate a Section of Need and avoid scientific jargon within the introductory section.
Please consider the JOSS guideline https://joss.readthedocs.io/en/latest/submitting.html#what-should-my-paper-contain
Please check the draft in the branch "paper_draft". Directly implement your modifications.
The input-file constructor of the friction class is still incorrect. Several instances of greens tensor and polarizability are created.
Several warnings are thrown in our test cases because we use vec::fixed<2> for our indices. Indices should be unsigned integers.
For some combinations of kappa_double and omega the reconstructed k in integrand_2d_k is incorreclty computed. It seems that this issue occurs as soon as v*|omega| > k.
An example being: k = 0.001, omega = 1., v = 0.01
Currently the plot script shows the frictional force with natural units. This does not match the results shown in the paper, which is cited in the tutorial.
Besides an characteristic frequency of the memory kernel or Green's tensor, a characteristic decay rate should be calculated, too. This would give a more solid integration interval around omega_a as the current 0.99 to 1.01.
Either one calculates the decay rate for every point v (or za), or one does a reasonable estimate for each Green's tensor and memory kernel.
In order to provide an efficient integration scheme, we implemented a characteristic frequency
To safe some time, it would probably sufficient to build and test solely the pull requests.
This issue shall resolve the comments from openjournals/joss-reviews#5160 (comment):
-Performance
It is mentioned that QuaCa is meant for efficient computation of
on any regular personal computer, but providing a few performance benchmarks and minimum prescribed hardware configuration would be ideal.
[...]
I would also suggest setting a default value for the no. of threads (OMP_NUM_THREADS) to 1 (when no environment variable is set) within the package to prevent high CPU usage or oversubscription of processors which could risk crashing the system.
So far there is not a consistent scheme for shared_ptr getter functions (compare e.g. PowerSpectrum and Polarizability)
Here is the output when running "test_quaca_unit"
test_quaca_unit is a Catch v2.13.9 host application.
Run with -? for options
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
-------------------------------------------------------------------------------
The operations calculate_tensor and the integrand_2d_k coincide
-------------------------------------------------------------------------------
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:75
...............................................................................
/Users/livi/Arkajit/quaca/test/UnitTests/GreensTensor/test_GreensTensorPlate_unit.cpp:140: FAILED:
REQUIRE( approx_equal(Green_fancy_I_ct, Green_fancy_I_ik2d, "reldiff", 10E-4) )
with expansion:
false
===============================================================================
test cases: 44 | 43 passed | 1 failed
assertions: 2723 | 2697 passed | 26 failed
Test via analytically known result
Some minor issue the authors can fix:
Update the Catch2 library and check if everything works afterwards.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.