Skip to main content

Theory of Functional Connections (TFC): A functional interpolation framework with applications in differential equations.

Project description

Theory of Functional Connections (TFC)

A functional interpolation method with applications in solving differential equations.

This repository is currently under development.

Installation:

The following instructions can be used to install a source distribution via pip or build TFC directly from source. Currently, we support building tfc navitely on Linux or macOS, but Windows users can still use TFC via the Windows Subsystem for Linux.

pip installation:

pip install --upgrade pip cmaketools setuptools wheel
pip install --upgrade tfc

Note that you may need to first install the system package dependencies listed below if they are not already installed.

Build from source:

  1. Create a dist directory in the main directory.
  2. Run python setup.py bdist_wheel from the main directory.
  3. Navigate to dist, and run pip3 install "wheel" where "wheel" is the name of the wheel created in the previous step.

Dependencies:

  • System Packages:
    • swig
    • cmake
    • graphviz
  • Python Packages:
    • matplotlib
    • jax
    • jaxlib
    • colorama
    • graphviz
    • yattag

Testing instructions:

After following the build instructions:

  1. Navigate to the tests directory.
  2. Run py.test or python -m pytest These serve as simple unit tests that test basic functionality of the code. These include tests for individual TFC functions, as well as full ODE and PDE tests.

Reference Documentation:

For tutorials on how to use this package as well as information about the tfc API, see the reference documentation.

Building Reference Documentation from Source:

If for some reason you want to build the reference documentation from source, you can do so using these two steps:

  1. Change into the docs directory.
  2. Run:
sphinx-build . _build/html

The code documentation will appear under _build/html and the main file is index.html. This file can also be accessed using the SphinxDocumentation.html symbolic link in the docs directory.

Dependencies:

  • System Packages:
    • graphviz
    • doxygen
    • python3-sphinx
  • Python Packages:
    • sphinx
    • sphinx_rtd_theme
    • nbsphinx
    • breathe
    • exhale

Mathematical Documentation:

Any users interested in the theory behind this method should start with this journal article; note that the article is open access, so you should be able to download it for free. The curious user can continue their study of the theory by visiting the TFC article repository on ResearchGate for a complete list of TFC publications with free downloadable PDFs.

Citing this repository:

The authors of this repsitory and the associated theory have gone to lengths to ensure that both are publicy available at no cost to the user. All that we ask in return is that if you use them, please add a reference to this GitHub and following journal article. Thank you.

@misc{tfc2020github,
    author = {Carl Leake and Hunter Johnston},
    title = {{TFC: A Functional Interpolation Framework}},
    url = {https://github.com/leakec/tfc},
    version = {0.0.1},
    year = {2020},
}
@article{TFC, 
    title={The Multivariate Theory of Functional Connections: Theory, Proofs, and Application in Partial Differential Equations}, 
    volume={8}, 
    ISSN={2227-7390}, 
    url={http://dx.doi.org/10.3390/math8081303}, 
    DOI={10.3390/math8081303},
    number={8}, 
    journal={Mathematics},
    publisher={MDPI AG},
    author={Leake, Carl and Johnston, Hunter and Mortari, Daniele}, 
    year={2020}, 
    month={Aug}, 
    pages={1303}
}

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

tfc-0.0.10.tar.gz (102.0 kB view hashes)

Uploaded Source

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