lemurpwned / cmtj Goto Github PK
View Code? Open in Web Editor NEWA Python library for simulating multilayer magnetic structures.
Home Page: https://lemurpwned.github.io/cmtj/
License: GNU General Public License v2.0
A Python library for simulating multilayer magnetic structures.
Home Page: https://lemurpwned.github.io/cmtj/
License: GNU General Public License v2.0
Sometimes, specifically for Windows builds, some users have issues installing and importing. Provide ready Colab examples to facilitate user adoption.
Integrate basic parallelism for HEBO optimisation in the optimisation
submodule.
Override the scalar driver to be able to pass just a value and make it constant by default.
See if this can be propagated to the layer/junction api.
A model that's in-between macrospin and microspin -- where a set of coupled loose domains can be simulated as a set of macrospin vectors, adjusted for domain size.
Currently, none of the objects are pickle able.
Try to introduce pickle support through pybind11
https://pybind11.readthedocs.io/en/latest/advanced/classes.html#pickling-support
Right now we sample noise in all directions -- allowing the user to specify just a single direction would be useful.
A set of drivers that depend on each other in a chain. E.g. a driver that changes its value based on a value of a chained/coupled driver.
Example: anisotropy driver that changes based on the value of the current driver.
LLB equation is rather important for finite temp. computations.
It should be an easy extension for the existing basis.
Refs:
[1] Macrospin LLB in CoNi/Pd: https://hal.science/hal-01345392/document
Drivers need a smart-pointer overhaul to reduce complexity of adding a new scalar driver.
Should switch to pyproject.toml if possible to avoid using ancient setup.py
-based builds.
or from Meiklejohn-Bean model.
W. H. Meiklejohn and C. P. Bean. New Magnetic Anisotropy. Physical Review, 102(5):1413โ1414, June
1956. Publisher: American Physical Society.
E. C. Stoner and E. P. Wohlfarth. Interpretation of High Coercivity in Ferromagnetic Materials. Na-
ture, 160(4071):650โ651, November 1947. Number: 4071 Publisher: Nature Publishing Group.
There are use cases where DMI interaction is a good addition for the macrospin model.
Check if in the the thermal torque generation we are properly converting to A/m, despite Ms being in T.
The manylinux build package used currently is deprecated, use the new one in favour of the old one
https://github.com/pypa/cibuildwheel
Implement perturbation in C++ for the magnetisation vector.
This is now implemented in procedures, but in Python. Should be repeated for C++.
The bug causes the devices not to synchronise under any conditions and exists only in #47.
To be fixed by appropriate revert.
Test the following things:
Using pytest and automatic tests for push is desirable.
Some users may not be able to successfully benefit from pip install
, perhaps it's better to have the docker
image built.
Currently dipole coupling between two devices is possible if simulated as "one device".
An abstraction should be added to make this obvious -- for example by extension of the Stack e.g. DipoleCoupledStack
.
After pip
installation the hints for the pyi.typed
files may not be packaged properly and hence may not work properly.
Fix is to properly package typing hints with in the setup.cfg
file.
A relax function would be useful.
It could either:
Driver functions should be aliased on both C++ and Python level for quicker reference and more reasonable naming convention.
Just do PIMM and perhaps use gradio.app ?
Ability to define custom drivers in Python would be extremely useful for experimentation
Domain dynamics should have a simple visualisation to show an animation of the domain displacement, angle change and potentially also speed.
It'd be useful to include dipole tensor interaction for the SB model
Issues:
squeeze
to be removed here:Line 138 in 90b77f4
tqdm
quiet needs to be passed in all proceduresIf we want to set a constant value for an Axial
driver we need to do something like:
AxialDriver(ScalarDriver.getConstantDriver(H[0]),
ScalarDriver.getConstantDriver(H[1]),
ScalarDriver.getConstantDriver(H[2])))
instead, perhaps an easier way:
AxialDriver(*H)
Scalar Driver can also be assumed to be constant by default:
ScalarDriver(val) == ScalarDriver.getConstantDriver(val)
Add a pipeline that auto deploys on doc push on master.
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.