Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
content badge
swh:1:cnt:e450cdb02543546bf223592493cb8b520546b298

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
This project solve the linear elasticity problem using PETSc in 2d and 3d for lamé coefficients which are constant or constant by cell on a cartesian grid.

# Installation

To install this package, you need first an installation of anaconda. If you don't have anaconda on your system, you can download miniconda for Python 3 (https://conda.io/miniconda.html).

Next, we will create an environment with all the needed packages using the following command.

    conda env create -f environment.yml

To activate your environment

    source activate petsc-elasticity

The final step is to install `petsc4py`. To do that, you have to specify the environment variable `PETSC_DIR`.

Run the following command in your terminal
    conda env list

    # conda environments:
    #
    ...
    petsc-elasticity      *  /home/loic/miniconda3/envs/petsc-elasticity
    ...

The path after the conda environment name `petsc-elasticity` is the path of `PETSC_DIR`.

    export PETSC_DIR=/home/loic/miniconda3/envs/petsc-elasticity

You can know install `petsc4py`

    pip install petsc4py

To install this project, you have to clone it

    git clone https://gitlab.centralesupelec.fr/gouarin/elasticity.git

Then

    cd elasticity
    python setup.py install

It's important to be in the conda environment created previously. If it is not the case

    source activate petsc-elasticity

# Execute demo file

In the directory of this project you have a `demos` directory with 2d and 3d examples.

This is an example of how to test one of them

    python elasticity_2d.py -ksp_monitor -pc_type gamg

- `ksp_monitor` indicates to PETSc to print the residual at each step.
- `pc_type gamg` indicates to PETSc to use an algebric multigrid as a preconditioner.

And in parallel

    mpiexec -n 4 python elasticity_2d.py -ksp_monitor -pc_type gamg

# Visualize the results

If the execution of `elasticity_2d.py` succeeded, you should have a file name `solution_2d.vts`. 

To visualize this file, you have to install paraview (https://www.paraview.org/download/).

- Start `paraview` and select file->load state. 
- Then select the file in the directory `paraview` of this project called `visu_2d.pvsm`.
- Then select the `vts` file.

You should see the results.

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API