GithubHelp home page GithubHelp logo

gdrealm / caid Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pyccel/caid

0.0 2.0 1.0 7.98 MB

Computer Aided Design software for IsoGeometric Analysis

License: MIT License

Python 93.18% Fortran 6.82%

caid's Introduction

CAID

CAID is a multi-platform software that has been designed for IsoGeometric Analysis Pre and Post Processing. Its design goal is to provide a fast, light and user-friendly designer and meshing tool.

The Post-Processing and advanced visualization capabilities are still under development, as well as an optimized 3D computing engine.

For more details, please read [CAID](http://ratnani.org/caid_doc/)

CAID can be used in 2 different ways:

  • as a python package: using ipython or scripts
  • as a GUI modeler: for a better interactive use

In order to follow related developments to CAID, please visit our JOREK-Django project on (https://tree.taiga.io/project/ratnani-jorek-django/)

Common requierements

numpy

[NumPy](http://www.numpy.org/) is the fundamental package for scientific computing with Python

Installation can be done using

sudo apt-get install python-numpy

scipy

[SciPy](http://www.scipy.org/) is a Python-based ecosystem of open-source software for mathematics, science, and engineering.

Installation can be done using

sudo apt-get install python-scipy

You can install both numpy and scipy using

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

matplotlib

[Matplotlib](http://www.matplotlib.org/) is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala MATLAB or Mathematica)

Installation can be done using

sudo apt-get install python-matplotlib

igakit

[igakit](http://bitbucket.org/dalcinl/igakit) is a package that implements many of the NURBS routines from Piegl's book using Fortran and Python.

GUI Requierements

wxPython

Install wxGTK 2.8 with the command

sudo apt-get install python-wxgtk2.8

Verify that everything is OK:

import wx
import wxversion

PyOpenGL

[PyOpenGL](http://pyopengl.sourceforge.net/) is the most common cross platform Python binding to OpenGL and related APIs.

Installation can be done using [pip](https://pypi.python.org/pypi/pip)

sudo pip install PyOpenGL PyOpenGL_accelerate

Installation

Installation can be done by runing the following command, giving PATH_FOR_INSTALLATION

python setup.py install --prefix=PATH_FOR_INSTALLATION

Add the following lines in your .bashrc/.bash_profile by replacing PATH_TO_CAID_SRC

alias caid="python $PATH_TO_CAID_SRC/caid-gui/main.py"

Package-Usage

Start by import the CAID package:

import caid

In order to check that the fortran code has been well installed, use:

import caid.core
import caid.core.bspline
import caid.core.hbezier

If you don't get any message, then everything seems to be fine.

Let's now import a square geometry and refine it:

from caid.cad_geometry import square
geo = square(n=[3,3], p=[2,2])
geo.plotMesh()
import matplotlib.pyplot as plt
plt.show()

A cad_geometry object contains a list of cad_nurbs (more generally any class that inherits from the cad_object class) with some additional informations. The class cad_nurbs inherits the NURBS class in igakit. It represents a single patch but with some additional informations like

  • orientation: needed for Neumann boundary conditions
  • rational: True if we use the weights. Default value : False

In the future, the cad_geometry class will also contain Splines on triangulations (using splitri)

GUI-Usage

Runing CAID can be done in different ways.

  • without any argument

    caid

  • with a given workgroup session

    caid session.wkl

  • with given domains files session

    caid domain1.xml domain2.xml domain3.xml

  • with a given field file

    caid U.pfl

TODO

  • update setup file, using pip to install all dependencies.

caid's People

Contributors

celinecq avatar lasofivec avatar ratnani avatar ratnania avatar

Watchers

 avatar  avatar

Forkers

batmanabcdefg

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.