Git Product home page Git Product logo

phasefield-precipitate-aging's People

Contributors

iamjulian0 avatar tkphd avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

phasefield-precipitate-aging's Issues

sharp phase boundaries

The intermetallics are defined in the CALPHAD database with finite domains, outside of which the free energy landscape does not exist. To provide the KKS rootsolver something to do outside these domains, the free energies are constructed as piecewise functions with CALPHAD free energy inside and the Taylor series approximation outside these regions. However, no attempt has been made to produce a smooth transition, which means the code iterates indefinitely when -DCALPHAD is provided to the compiler. W.J. Boettinger recommends using a tanh function to interpolate. Quick prototyping shows that this approach yields smooth, continuously differentiable transitions. Further, where the CALPHAD energy slopes downward toward the boundary, tanh interpolation produces a sharp edge where the rootsolver could find a solution. It might not be the "right" solution, but it's better than searching for infinity.

description.tex

Documentation in the readme says to build your description via "pdflatex description.tex", but that's the not the name of the file.

More importantly, *description.tex seems to have an error in the equations in section 1 describing the free energy density (after eq. 3).
phasefield-precipitate-aging_description.pdf

performance

Could be better. Profiling output:

% time cum. sec self sec self calls s/call total name
12.02 4.65 4.65 4548218880 0.00 0.00 MMSP::vector<double>::operator[](int) const
8.88 8.08 3.43 1 3.43 32.68 void MMSP::update<2, double>(MMSP::grid<2, MMSP::vector<double> >&, int)
8.46 11.35 3.27 61440000 0.00 0.00 MMSP::vector<double> maskedlaplacian<2, double>(MMSP::grid<2, MMSP::vector<double> > const&, MMSP::vector<int> const&, int)
7.71 14.33 2.98 307691520 0.00 0.00 MMSP::grid<2, MMSP::vector<double> >::operator()(MMSP::vector<int>) const
6.19 16.72 2.39 2521128970 0.00 0.00 MMSP::vector<double>::operator[](int)
4.54 18.47 1.76 1846149120 0.00 0.00 MMSP::vector<int>::operator[](int)
4.17 20.08 1.61 61440000 0.00 0.00 double rootsolver::solve<double>(MMSP::vector<double>&)
3.99 21.62 1.54 369254400 0.00 0.00 MMSP::vector<int>::vector(MMSP::vector<int> const&)
3.44 22.95 1.33 123002880 0.00 0.00 MMSP::grid<2, MMSP::vector<double> >::position(int) const
3.31 24.23 1.28 61440000 0.00 0.00 parallelTangent_f(gsl_vector const*, void*, gsl_vector*)
3.13 25.44 1.21 61440000 0.00 0.00 parallelTangent_df(gsl_vector const*, void*, gsl_matrix*)
2.99 26.60 1.16 430080 0.00 0.00 MMSP::vector<double>::length() const
2.85 27.70 1.10 246005760 0.00 0.00 h(double const&)
2.81 28.78 1.09 492257280 0.00 0.00 MMSP::vector<int>::~vector()
2.36 29.69 0.91 61501441 0.00 0.00 MMSP::vector<double>::vector<double>(int, double const&)
2.25 30.56 0.87 615383040 0.00 0.00 MMSP::check_boundary(int&, int, int, int, int)
1.94 31.31 0.75 738508800 0.00 0.00 MMSP::vector<int>::operator[](int) const
1.76 31.99 0.68 184320000 0.00 0.00 dg_gam_dxNb(double, double)
1.42 32.54 0.55 369254400 0.00 0.00 MMSP::vector<int>::length() const

redundant contruction of rootsolver objects

Each thread creates a new rootsolver object for each node in the grid. This could be expensive -- profile to see whether allocating a grid of rootsolvers, to preserve state, would accelerate the fictitious composition updates.

too many phases

Fitting a tangent plane to four phases (γ, δ, μ, and Laves) is mathematically impossible. Attempting to do so may be slowing down the rootsolver and, esp. using the CALPHAD free energies, precluding solution of the equations. Recommend dropping μ phase from the model, as it is metastable at best.

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.