Skip to content

cesmix-mit/PotentialUQ.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[WIP] PotentialUQ.jl

Perform UQ for learned potentials

Roadmap

This is planned to be implemented alongside Potential.jl (soon to exist) and PotentialLearning.jl.

  • Potential.jl should provide access to energies, forces, and stresses (along with derivatives of each of those quantities with respect to the potential parameters).
  • PotentialLearning.jl should implement fitting strategies for each of the potentials in Potential.jl.
  • PotentialUQ.jl will extend PotentialLearning.jl by providing a distribution layer. This distribution layer will keep track of the current negative log likelihood, trainable parameters, and non-trainable parameters.
    • PotentialUQ.jl will also allow users to add priors to the distribution (to be implemented).

Basic Usage

See "/test" for current test examples.

SNAP Example: Define A, b, β, and Q for b ∼ N(Aβ, Q)

    A = ...         (n x m Matrix)
    b = ...         (n x 1 Vector)
    beta = ...      (m x 1 Vector)
    Q = ...         (n x n Covariance)

Set up corresponding structures

sampler(rng::Random.AbstractRNG, d::ContinuousMultivariateDistribution) = ...
snap_prior = PotentialUQ.SNAP_Prior_Distribution(...)
snap_likelihood(x::Vector) = ...
dsnap = PotentialUQ.PotentialDistribution(snap, named_tuple, snap_prior, snap_likelihood)

Produces samples using Turing.jl

samp = PotentialUQ.Sample(dsnap)

MAP estimate is placed in data structure

dsnap.x.β

About

Perform UQ for learned potentials

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published