GithubHelp home page GithubHelp logo

mangerij / ferret Goto Github PK

View Code? Open in Web Editor NEW
6.0 14.0 6.0 877.35 MB

Open-source MOOSE application "Ferret" for parallel mesoscale simulations of ferroic and related electronic materials

Shell 0.52% Makefile 0.12% M4 0.14% C++ 14.49% Python 0.02% C 57.27% GLSL 0.09% Assembly 27.35%
ferroelectrics micromagnetics thermoelectrics dynamics piezoelectric-materials mesoscale

ferret's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ferret's Issues

Make sure _Ms parameter is set properly

Currently, the saturation magnetization can only be identically 1.0 [in Ferret units: equal to 10.0*10^5 "Coulombs"/"Seconds" "Meters"]

Need to ensure factors of Ms are properly set throughout the LLB implementation

Add Kernel for demagnetization field in Cahn-Hilliard problem

In Koyama (2004), the demagnetization field is calculated by using dipole kernel presumably to reduce computational load. We can, instead, explicitly calculate the magnetostatic potential due to the Poisson equation and then use that stray (demagnetizing) field as input to the Cahn-Hilliard problem. So instead of using Eq (6) in Koyama, we can use the form proposed in the 11/2 meeting. Basically it's M dot (grad potential) * function of concentrations after taking the variation in the CH equation.

Delete ElectrostaticsCombo.C

old kernel from old attempt at coupling in free charges to FE models - did not work and should not be in the code

clean up LLG attempts

USLL, CartLLG (should be renamed CartLL), and CartLLB seem to work. Note that we can add LLBLongitudinal to CartLL to ensure magnetization is constrained. Related to #12

Add DMI Kernels

See Mumag ref paper - Vansteenkiste, A. and Van de Wiele, B., 2011. MuMax: A new high-performance micromagnetic simulation tool. Journal of Magnetism and Magnetic Materials, 323(21), pp.2585-2591

Clean up LLG kernels

Delete any LLG kernel not used/working (with the exception of the USLLG implementation)

update headers

Need to include information about being on github, not bitbucket

Generalize electro- and magnetostrictive tensor kernels

Go back to the "old" way, where symmetry is included before the Kernel is constructed - allows for rotations of crystallographic axes and Kernel contributions that are not restricted by symmetry. See FerroelectricCouplingP.C for example.

Current implementations only have cubic crystal classes. The "old" approach was abandoned for a number of reasons in order to test cubic form (for example canonical pervoskites like lead titanate).

Test CI and skip Magnet test

This is just to test CI... But it can be merged if folks are comfortable disabling a test instead of fixing it :)

Lighten the testing load

Need to make tests faster - and perhaps cover a few more pieces of the code in the mean time.

Will regold critical tests

Add missing LLB terms

The LLB implementation needs one "global" term for the saturation magnetization and other terms for each component of the effective field.

  • Might fix the magnetic benchmark problem at the moment.

use_displaced_mesh = false in all Mesh blocks for linear elastic coupling

displacements=’disp_x disp_y disp_z’ in GlobalParams activates the displaced mesh in the Mesh block by default. This is problematic because it creates needless overhead while we are working with small strains (the linear elastic limit).

Tests should reflect this so users don't get confused and all calculations can run a little faster. May require re-golding.

Add AFM sublattice exchange field

Assuming two ferromagnetic sublattices that are coupled antiferromagnetically and both obey their own LLB equations, a simple effective field can be entered into the residual statements linear in the opposing magnetization field (see arxiv.org/pdf/1808.03773.pdf for an example).

Add Bulk (Zhang-Li) spin-torque Kernels

Add term from Zhang and Li that takes into account non-equilibrium conduction electrons adding to a "bulk" spin torque effect (see Physical Review Letters, 93(12):127204, September 2004)

Integrate Ferret with CIVET again

We recently moved from BitBucket.

The webhook for CIVET needs to be made active.

All changes to the code will go to the devel branch and then the tests will run on CIVET and then pushed to master.

Put in perturbed Kernels for induced polarization changes of relaxor

Procedure as follows:

Generate domain structure Pk(r) under some boundary conditions and concentration field. ✓

Set Pk(r) to be an AuxVariable

Expand free energy Pk -> Pk + 𝛿Pk such that 𝛿Pk << Pk (drop higher orders of 𝛿Pk) for k = x, y, z and use relaxation equation to evolve 𝛿Pk (Variable) in the presence of Pk (AuxVariable) and a small AC probing field and calculate the linear dielectric response.

AuxKernels and Postprocessors for relaxor problem

Need to have AuxKernels to compute bulk and gradient energy densities to differentiate inhomogenieties in the polar field as to those from concenrtation variation or domain wall formation.

also need self-consistent energy postprocessors to use the terminator.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.