Git Product home page Git Product logo

gelato's Introduction

Welcome to GeLaTo

build status Documentation Status binder

GeLaTo is a python library for the Generalized Locally Toeplitz theory for IsoGeometric Analysis.

Install

From PyPi

Simply run, for a local installation:

pip3 install --user gelato

or:

pip3 install gelato

for a global installation.

From sources

  • Standard mode:

    python3 -m pip install .
    
  • Development mode:

    python3 -m pip install --user -e .
    

Examples

gelato's People

Contributors

ratnani avatar ratnania avatar saidctb avatar yguclu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gelato's Issues

Importing `gelato.expr` seems to import `gelato.utils` which in turn imports `matplotlib`

Running psydac on the CoolMUC2 cluster with 112 processes (on two nodes, basically each thread -> MPI process...), the matplotlib import from the gelato.utils file caused some errors, since apparently matplotlib somehow caused all processes on one processor to serialize, and subsequently to timeout and throw a Python error.
Removing the only GeLaTo reference, a gelato.expr import from psydac (see https://github.com/pyccel/psydac/blob/a87c616b6d72066275207e26efc440457e5c7266/psydac/api/ast/glt.py#L39 ) removed this problem. Thing is, gelato.utils is neither explicitly imported nor needed in the code, but somehow seems to be imported anyways when importing gelato.expr.

The solution might be to change the gelato.__init__.py to not import all subfiles, or alternatively to move the matplotlib import inside the function where it is used.

domain attribute is missing when gelatizing a bilinear form

When running the following notebook from GeLaTo, and executing the following lines:

p = 3

sl = gelatize(laplace, p)
sm = gelatize(mass, p)

expr = sl/sm

I get the following error,

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-3b5c3059c8da> in <module>
      1 p = 3
      2 
----> 3 sl = gelatize(laplace, p)
      4 sm = gelatize(mass, p)
      5 

~/CODES/PYCCEL/gelato/gelato/expr.py in gelatize(a, degrees, n_elements, evaluate, mapping, human, expand)
     34 
     35     # ... compute tensor form
---> 36     expr = TensorExpr(a, mapping=mapping, expand=expand)
     37     # ...
     38 

~/CODES/PYCCEL/sympde/sympde/expr/evaluation.py in __new__(cls, *args, **options)
   1054 
   1055         if options.pop('evaluate', True):
-> 1056             r = cls.eval(*args, **options)
   1057         else:
   1058             r = None

~/CODES/PYCCEL/sympde/sympde/expr/evaluation.py in eval(cls, *_args, **kwargs)
   1151 
   1152             # ... # TODO improve
-> 1153             terminal_expr = TerminalExpr(expr, domain)[0]
   1154             # ...
   1155 

~/CODES/PYCCEL/sympde/sympde/expr/evaluation.py in __new__(cls, expr, domain, **options)
    496 
    497         if options.pop('evaluate', True):
--> 498             r = cls.eval(expr, domain)
    499         else:
    500             r = None

~/.local/lib/python3.8/site-packages/sympy/core/cache.py in wrapper(*args, **kwargs)
     92             def wrapper(*args, **kwargs):
     93                 try:
---> 94                     retval = cfunc(*args, **kwargs)
     95                 except TypeError:
     96                     retval = func(*args, **kwargs)

~/CODES/PYCCEL/sympde/sympde/expr/evaluation.py in eval(cls, expr, domain)
    525         """."""
    526 
--> 527         dim = domain.dim
    528         if isinstance(expr, Add):
    529             args = [cls.eval(a, domain=domain) for a in expr.args]

AttributeError: 'NoneType' object has no attribute 'dim'

Run unit tests on GitHub Actions

As done for Pyccel, SymPDE, Psydac and PyGyro, we should migrate our continuous integration pipeline from Travis CI to GitHub Actions.

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.