Git Product home page Git Product logo

petiga's Introduction

PetIGA: A framework for high performance Isogeometric Analysis

Overview

This software framework implements a NURBS-based Galerkin finite element method (FEM), popularly known as isogeometric analysis (IGA). It is heavily based on PETSc, the Portable, Extensible Toolkit for Scientific Computation. PETSc is a collection of algorithms and data structures for the solution of scientific problems, particularly those modeled by partial differential equations (PDEs). PETSc is written to be applicable to a range of problem sizes, including large-scale simulations where high performance parallel is a must. PetIGA can be thought of as an extension of PETSc, which adds the NURBS discretization capability and the integration of forms. The PetIGA framework is intended for researchers in the numeric solution of PDEs who have applications which require extensive computational resources.

Installation

After installing PETSc, set appropriate values for PETSC_DIR and PETSC_ARCH in your environment:

$ export PETSC_DIR=/home/user/petsc
$ export PETSC_ARCH=arch-linux2-c-debug

Clone the Git repository hosted at GitHub

$ git clone https://github.com/dalcinl/PetIGA.git

Finally, enter PetIGA top level directory and use make to compile the code and build the PetIGA library:

$ cd PetIGA
$ make all
$ make test

Scripting Support

PetIGA is designed to be efficient and as such, we do not directly do things like output VTK files suitable for viewing the solution. We do have routines which output the discretization information and solution vectors, but these are in a binary format to minimize I/O time. We have written a python package, igakit which handles post-processing for visualization as well as geometry generation. A series of tutorials in how to use PetIGA and igakit are underway and can be found here.

Citation

If you find PetIGA helpful in conducting research projects, we would appreciate a citation to the following article:

@article{PetIGA,
 author = "L. Dalcin and N. Collier and P. Vignal and A.M.A. Côrtes and V.M. Calo",
 title = "PetIGA: A framework for high-performance isogeometric analysis",
 journal = "Computer Methods in Applied Mechanics and Engineering",
 volume = "308",
 pages = "151--181",
 year = "2016",
 issn = "0045-7825",
 doi = "https://doi.org/10.1016/j.cma.2016.05.011",
}

Acknowledgments

This project was partially supported by the Extreme Computing Research Center (ECRC), Division of Computer, Electrical, and Mathematical Sciences & Engineering (CEMSE), King Abdullah University of Science and Technology (KAUST).

petiga's People

Contributors

dalcinl avatar nocollier avatar stefanozampini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

petiga's Issues

Possible issue with IGALocateElement in older version / no IGALocateElement for new PetIGA

I am using the new version of PetIGA posted here, but I need to use IGALocateElement for integration of an embedded manifold. As I have been using a uniform discretization in the past, the element index in each direction can be found through (PetscInt) ParametricCoordinate/knot_parametric_coordinate (so it is floored). However, the previous implementation of IGALocateElement does not have this behavior, because points on the right edges of elements are assigned an index corresponding to the next element. I think this is incorrect, as if I assign ranks to my foreground particles in this way, probe cannot find them. I think

if(pnt[i] > U[j] && pnt[i] <= U[j+1]) ID[i] = e;

has to be changed to

if((pnt[i] >= U[j] && pnt[i] < U[j+1]) || sqrt((pnt[i]-1.0)*(pnt[i]-1.0)) ) ID[i] = e;

in this function to be consistent with the IGA partition. This came up for me when I switched to a non-uniform mesh and needed to actually search for the element.

PetIGA-MF

Is the PetIGA-MF implementation available in this repository? because I can't find an example where it is used

Problem with PETSC_DIR

Hello there,

I have compiled PETSC and followed the instruction to set the PETSC_DIR. But when I run "make all" command in PetIGA directory I get this error:
/home/omid/PetIGA/lib/petiga/conf/variables:6: *** Incorrect PETSC_DIR: . Stop.
I checked the variables file in lib/petiga/conf folder, which makes this error. It seems that the file can not read the data at all. e.g. when I check the DIR, it echos correctly, but when I run make command it pops up that error. I defined the DIR manually in the variables file, it goes ahead till it reaches to lib/petiga/conf/variables:45: *** Incorrect PETSC_ARCH: /home/omid/Desktop/Program/petsc-3.18.2/arch-linux-c-debug. Stop. According to line 45, if the petscconf.h is missing, it has to print this error. The file is there! It seems that this error comes from disability of reading the data from PETSC folder. I checked the permissions, it's OK. Do you have any advice for me?

Thanks and regards,
Omid

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.