Coder Social home page Coder Social logo

ollamc / juliapf Goto Github PK

View Code? Open in Web Editor NEW
8.0 1.0 3.0 14.13 MB

Julia finite element implementation of a phase-field model for fracture.

License: Other

Julia 98.33% Python 1.67%
phase-field fracture brittle-materials quasi-static monolithic finite-element-methods

juliapf's Introduction

juliaPF

A finite element implementation of a variational phase-field model for fracture in Julia.

The script FEM.jl contains the Julia implementation of the quasi-static AT1 phase-field model with the volumetric-deviatoric split. Each time step is solved using the modified Newton scheme presented in

O. Lampron, D. Therriault, and M. Lévesque, “An efficient and robust monolithic approach to phase-field quasi-static brittle fracture using a modified Newton method,” Computer Methods in Applied Mechanics and Engineering, vol. 386, p. 114091, Dec. 2021, doi: 10.1016/j.cma.2021.114091.

A preprint of the paper is available at https://arxiv.org/abs/2109.05373.

The script main.jl contains the pre-processing and settings of the problem. It calls the functions of FEM.jl.

This work was originally developped for the aforementionned publication. If you use this work, please cite this paper.

Dependencies and usage

FEM.jl relies on the Pardiso and WriteVTK library. You can add them to your environment using, in the Julia session, the command Pkg.add("Pardiso") or Pkg.add("WriteVTK"). You might need to build Pardiso after adding the package with the command Pkg.build("Pardiso"). For more detail see the Pardiso.jl package documentation (https://github.com/JuliaSparse/Pardiso.jl).

To run a simulation, 2 options are available:

    • Open a terminal and place yourself in the directory containing the mesh files, the FEM.jl script and main.jl script.
    • Open a Julia session (if properly installed, on Linux, simply call julia. Otherwise see Julia documentation).
    • To read and compile the FEM.jl script, execute: include("FEM.jl").
    • To launch the simulation, execute: include("main.jl").
  1. If you are using Atom (text editor) and Juno (Atom environment for the Julia language), then simply:
    • Open and execute the FEM.jl file with Atom+Juno (Ctrl + Shift + Enter to execute the file).
    • Open and execute the main.jl file with Atom+Juno (Ctrl + Shift + Enter to execute the file).

Validation

The validation file contains the solution obtained for the SENP-shear test with the implemented model. The force-displacement solution is compared with results from the literature.

Geometries

Geometries contains the mesh used for multiple geometries or benchmarks:

  • Single-edge notched plate submitted to tensile (SENP-tensile).
  • Single-edge notched plate submitted to shear (SENP-shear).
  • Three-point bending notched beam (3Point-n).
  • L-shaped panel (L-shaped).
  • Notched bilayer (Bilayer).

Notes

This project is licensed under the terms of the MIT license (see LICENSE.txt).

Author: Olivier Lampron

juliapf's People

Contributors

ollamc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  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.