Code Monkey home page Code Monkey logo

magpy's Introduction

Poole

The Strange Case of Dr. Jekyll and Mr. Hyde tells the story of a lawyer investigating the connection of two persons, Dr. Henry Jekyll and Mr. Edward Hyde. Chief among the novel's supporting cast is a man by the name of Mr. Poole, Dr. Jekyll's loyal butler.


Poole is the butler for Jekyll, the static site generator. It's designed and developed by @mdo to provide a clear and concise foundational setup for any Jekyll site. It does so by furnishing a full vanilla Jekyll install with example templates, pages, posts, and styles.

Poole

See Poole in action with the demo site.

There are currently two official themes built on Poole:

Individual theme feedback and bug reports should be submitted to the theme's individual repository.

Contents

Usage

1. Install dependencies

Poole is built on Jekyll and uses its built-in SCSS compiler to generate our CSS. Before getting started, you'll need to install the Jekyll gem:

$ gem install jekyll

Windows users: Windows users have a bit more work to do, but luckily @juthilo has your back with his Run Jekyll on Windows guide.

Need syntax highlighting? Poole includes support for Pygments or Rouge, so install your gem of choice to make use of the built-in styling. Read more about this in the Jekyll docs.

2a. Quick start

To help anyone with any level of familiarity with Jekyll quickly get started, Poole includes everything you need for a basic Jekyll site. To that end, just download Poole and start up Jekyll.

2b. Roll your own Jekyll site

Folks wishing to use Jekyll's templates and styles can do so with a little bit of manual labor. Download Poole and then copy what you need (likely _layouts/, *.html files, atom.xml for RSS, and public/ for CSS, JS, etc.).

3. Running locally

To see your Jekyll site with Poole applied, start a Jekyll server. In Terminal, from /poole (or whatever your Jekyll site's root directory is named):

$ jekyll serve

Open http://localhost:4000 in your browser, and voilà.

4. Serving it up

If you host your code on GitHub, you can use GitHub Pages to host your project.

  1. Fork this repo and switch to the gh-pages branch.
  2. If you're using a custom domain name, modify the CNAME file to point to your new domain.
  3. If you're not using a custom domain name, modify the baseurl in _config.yml to point to your GitHub Pages URL. Example: for a repo at github.com/username/poole, use http://username.github.io/poole/. Be sure to include the trailing slash.
  4. Done! Head to your GitHub Pages URL or custom domain.

No matter your production or hosting setup, be sure to verify the baseurl option file and CNAME settings. Not applying this correctly can mean broken styles on your site.

Options

Poole includes some customizable options, typically applied via classes on the <body> element.

Rems, font-size, and scaling

Poole is built almost entirely with rems (instead of pixels). rems are like ems, but instead of building on the immediate parent's font-size, they build on the root element, <html>.

By default, we use the following:

html {
  font-size: 16px;
  line-height: 1.5;
}
@media (min-width: 38em) {
  html {
    font-size: 20px;
  }
}

To easily scale your site's typography and components, simply customize the base font-sizes here.

Development

Poole has two branches, but only one is used for active development.

  • master for development. All pull requests should be to submitted against master.
  • gh-pages for our hosted site, which includes our analytics tracking code. Please avoid using this branch.

CSS is handled via Jeykll's built-in Sass compiler. Source Sass files are located in _sass/, included into styles.scss, and compile to styles.css.

Author

Mark Otto

License

Open sourced under the MIT license.

<3

magpy's People

Contributors

waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

magpy's Issues

Convergence tests

Finish convergence tests for numerical schemes. Create notebook with results

Test equilibrium distribution of LLG

These sort of tests could belong in a separate executable that runs some standard problems to check the physics.

Doesn't make sense for this to be a normal test.

Performance tests

It would be good to have some baseline performance tests.
To start with these could just be anecdotal: a standard problem ran on multiple machines.

Ideally performance tests would measure speed up from parallel simulations, as well as the real-time cost (and efficiency in simulation time) of the different integrators

Tidy up library build

The following would greatly improve the building of the magpy library

  • Use CMAKE or at least autoconf tools to automate configuration of system
  • The shared object is redundant (mostly users will want the python interface). Try compiling all code with cython (auto handles all the conda PREFIX stuff). Any performance hit?

OSX build

Possibly related to #47 - need an OSX build. Could be helpful to link with the introduction of CMAKE

Conda OSX build.

Compute dynamic hysteresis and power loss

It would be great if the results could be used to compute dynamic hysteresis loop areas and power loss.

These could be stored in the output json file. Maybe the config can add an option as to whether or not these would be added.

Use Kramers escape rates

DOModel in limited to aligned applied field and anisotropy. Oblique fields are easily accounted for using Kramers escape rates.

Allow multi-node scheduling

Embarrassing parallelism is currently implemented with joblib but this does not work if the job should be distributed across multiple nodes of a cluster (i.e. distributed memory). It would be really good to allow this for massive horizontal scaling of computational resources.

A good option could be MPI for python

Add schema for json config

It is no longer clear which fields are necessary and when.

Write a schema for the json config and a function to validate it in moma_config

Add master equation simulation

When simulating a single particle with strong anisotropy - the discrete orientation model and master equation simulation are very efficient.

This could be added as an option rather than using the full LLG dynamics.

mulitvariate newton-raphson

The Newton-Raphson implementation is currently implemented for scalar only but takes multiple arguments.

The multi-variate case operates on the Jacobian. Needs fixing.

Test MKL speeds

Recent changes enabled MKL libs when compiling with intel compilers.

Currently BLAS and LAPACK routines are only used to solve small systems. Overhead of MKL might be detrimental to overall speed.

Todo: create a benchmark test

Where are the docs?!

This code would be a lot more usable if it had some documentation.

A higher level docs with examples and getting started guides.
A lower level reference (could be generated with doxygen).

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.