Git Product home page Git Product logo

comp_phys_2's Issues

Improving computational time for the interactive case

So far computation of the interactive term has been done rather naively with updating the entire correlation term for each new position. This is wildly inefficient. Since each term in the correlation function is dependent only on the particle positions in question we can either:

  1. Do the metropolis sampling by way of moving every particle such that recalculating the correlation function is necessary (I don't know that this is a good idea)
  2. Update the methods such that the product of jastrow factors is only updated with the relevant term.

Suggestion 1 requires little to no change in implementation - as only the proposed sampling R_p needs be changed by two lines. Suggestion 2 requires a bit more thought as we don't have an implementation of taking indices to the evaluation of the local energy. It might be simplest to just pass dummy variables to all methods, i.e the call to psi_t -> E_l(R, i, j) for all wavefunctions and hamiltonians, but the indices are in effect dummy variables for the non-interactive case.

This issue depends on #2 and #7

Implementing post-run analyis in python

This is dependent on #5 being completed

There needs to be implemented a bootstrap or blocking algorithm. We can base this implementation on the code written by Marius that is on the course website. The output should be a variance-reduced local energy.

We also need scripts in python to do comparative analysis in particular for the task 1.d (importance sampling).

Wrong local energy for Non-interactive numerical interaction on gaussian

When running the current code the local energy does not stabilize to an equilibrium value (i.e. it changes for each run). I suspect that the problem lies in the computation of the metropolis hastings test.

I propose that we follow this sign convention for all MH implementations, let:

then the MH test should read:

for a random uniformly distributed number epsilon in the interval [0, 1].

EDIT: WRONG MH TEST - SIGN SHOULD BE REVERSED AND NEW POSITION SHOULD BE IN THE DIVISOR

Implementation of Analytic Non-interactive gaussian

We had this implementation in the previous code (main.cpp in the src dir). Should be pretty straightforward to implement.

Note that the energy should go as

Where the variable N denotes the "number of" particles and dimensions for the respective sub indices p and d.

Writing report for differentiation

In the report we should include the derivations of the local energy for the trial wavefunctions in 1-3 dimensions with and without interaction for 1 and N particles.

We also have to have a derivation of the drift force.

Implement run metrics and output

There should be a standardized output of the run-metrics and output of the local energies according to some rule.

The run-metrics should be calculated in the monte_carlo function of the VMC class.
I think the metrics we should record are:

  • Time spent over the monte-carlo loop
  • Accepted states per 1e3 cycles
  • Record the local energy in an iterable, once every 1e3 steps

The output should be to a file specified by a string class member of VMC that is set with the method set_params And the filename should contain meta-information about the run (that the file might need to contain?) i.e. number of particles, numeric or analytic solution, if there is interaction etc.

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.