Git Product home page Git Product logo

pyxel's Introduction

pyxel

python library for experimental mechanics using finite elements

pyxel is an open-source Finite Element (FE) Digital Image Correlation (DIC) library for experimental mechanics application. It is freely available for research and teaching. It is based on numpy, scipy and matplotlib

In its present form, it is restricted to 2D-DIC. Stereo (SDIC) and Digital Volume Correlation (DVC) will be updated later. The gray level conservation problem is written in three-dimensional space. It relies on camera models (which must be calibrated) and on a dedicated quadrature rule in the 3d space. Considering only 2D-DIC and front-parallel camera settings, the implemented camera model is a simplified pinhole model (including only 4 parameters: 2 translations, 1 rotation and the focal length). More complex camera models (including distorsions) could easily be implemented within this framework (next update?). The library natively includes linear triangles and quadrilateral elements, but other element types could be added very easily (again?). The library also includes a VTK library such that the measurements can be post-processed in Paraview.

  1. SCRIPT FILE

    • pyxel is a library. For each testcase, a script file must be written.
    • the input data (images, meshes...) are stored in the ./data folder.
    • a sample script named dic_composite.py is provided to understand some functionnalities of the library.
  2. ABOUT MESHES

    • a mesh is entierly defined by two variables: (1) a python dictionnary for the elements (the key is the element number and the value is an integer numpy array of size N+1 (N being the number of nodes of this element). The first value of this array is the element type (according to gmsh numbering) and the remainder are the node numbers, example:
      e[num]=np.array([type_el,n0,n1,n2,n3])
      (2) a numpy array n for the node coordinates, example:
      n=np.array([[x0,y0],[x1,y1],...])
    • There is an home made mesher for rectangular and parallelipedic domains. give size and number of elements in each direction (see examples).
    • a (not robust) parser for GMSH and Abaqus meshes is embeded in the library. But prefer using existing open-source python parsers.
  3. USING THE LIBRARY

    • Open the mesh:
      m=px.ReadMeshGMSH('data/mesh.msh')
    • Open the image:
      f=px.Image('data/image.tif').Load()
    • Connectivity, quadrature, Interpolation:
      m.Connectivity()
      m.DICIntegration(cam)
    • Compute DIC approx. Hessian H and right hand side b:
      dic=px.DICEngine()
      H=dic.ComputeLHS(f,m,cam)
      [b,res]=dic.ComputeRHS(g,m,cam,U)
  4. OUTPUT FILES

    • It is possible to post-process the results using matplotlib. but a more convenient way is to use Paraview www.paraview.org
    • The output files are written in ./vtk directory
    • *.vtu files are generated, but it is also possible to generate *.pvd files for use in paraview.
  5. TERM OF USE. This program is a free software: you can redistribute it/or modify it. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. pyxel is distributed under the terms of CeCILL which is a french free software license agreement in the spirit of GNU GPL

References

Jean-Emmanuel Pierré, Jean-Charles Passieux, Jean-Noël Périé. Finite Element Stereo Digital Image Correlation: Framework and Mechanical Regularization. Experimental Mechanics, Society for Experimental Mechanics, p.443-456, 57, 2017

Jean-Emmanuel Pierré, Jean-Charles Passieux, Jean-Noël Périé, Florian Bugarin, Laurent Robert. Unstructured finite element-based digital image correlation with enhanced management of quadrature and lens distortions. Optics and Lasers in Engineering, Elsevier, 44-53, 77, 2016.

pyxel's People

Contributors

jcpassieux avatar rfouque avatar

Watchers

 avatar

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.