Skip to main content

An end to end differentiable finite element framework.

Project description

anabel

An end to end differentiable finite element framework.


Code Style: Black PyPI Version Documentation

Foundations

Installation

The base Anabel package can be installed from a terminal with the following command:

$ pip install anabel

This installation includes basic tools for composing "neural network" -like models along with some convenient IO utilities. However, both automatic differentiation and JIT capabilities require Google's Jaxlib module which is currently in early development and only packaged for Ubuntu systems. On Windows systems this can be easily overcome by downloading the Ubuntu terminal emulator from Microsoft's app store and enabling the Windows Subsystem for Linux (WSL). The following extended command will install Anabel along with all necessary dependencies for automatic differentiation and JIT compilation:

$ pip install anabel[jax]

The in-development version can be installed the following command:

$ pip install https://github.com/claudioperez/anabel/archive/master.zip

Core API - Modeling PDEs

from anabel import template, diff, MappedMesh
from anabel.interpolate import lagrange_t6

@template(6)
def poisson_template(u,v,iso,f,):
    def poisson(uh,xyz):
        return diff.jacx(u)(u,v)

Utility Modules

anabel.sections

from anabel.sections import Tee

t_section = Tee(bf=60, tf=6, tw=18, d=24)
t_section.plot()

anabel.transient

Building The Documentation

The following additional dependencies are required to build the project documentation:

  • Pandoc
  • Elstir (pip install elstir)

To build the documentation, run the following command from the project root directory:

$ elstir build

Organization of Source Code

Documentation

  • elstir.yml
  • style/ Directory holding style/template/theme files for documentation.
  • docs/api/ Automatically generated API documentation files.

Source Code

  • setup.py Installation/setup; used for pip installation.
  • src/anabel/ Python source code
  • [lib/] C++ source code for extension library

Data

Source Control, Testing, Continuous Integration

  • .gitignore Configuration for Git source control.
  • .appveyor.yml configuration file for Appveyor
  • .coveragerc configuration file for CodeCov, used to measure testing coverage.
  • pytest.ini configuration file for PyTest, used to setup testing.

FOSSA Status

Changelog

0.1.0 (2021-05-21)

  • First documented release

0.0.0 (2020-07-15)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anabel-0.0.11.tar.gz (81.7 MB view hashes)

Uploaded Source

Built Distribution

anabel-0.0.11-py3-none-any.whl (60.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page