ericksen_leslie_x

FEniCSx implementation of numerical methods for the Ericksen--Leslie equations for nematic liquid crystal flow.

https://github.com/max-reiter-math/ericksen_leslie_x

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

FEniCSx implementation of numerical methods for the Ericksen--Leslie equations for nematic liquid crystal flow.

Basic Info
  • Host: GitHub
  • Owner: Max-Reiter-math
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 1.08 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Created almost 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

ericksenlesliex

FEniCSx implementation of numerical methods for the Ericksen--Leslie equations for nematic liquid crystal flow.

Governing equations

The governing equations in a general form can be stated as:

$$ \begin{aligned} \partialt v + ( v \cdot \nabla) v + \nabla p + \nabla \cdot T^E - \nabla \cdot T^L = 0, \ \nabla \cdot v = 0, \ d \times (\partialt d + ( v \cdot \nabla) d - {(\nabla v)} _{skw} d + \lambda {(\nabla v)} _{sym} d - \Delta d ) =0, \ \vert d \vert^2 = 1. \end{aligned} $$

Depending on the choice of complexity for the different stress tensors, we consider the following submodels.

Submodel 1

$$ \begin{aligned} \partialt v + ( v \cdot \nabla) v + \nabla p + \nabla \cdot [\nabla d]^T ( I - d \otimes d ) \Delta d - \nu \Delta v = 0, \ \nabla \cdot v = 0, \ \partialt d + ( I - d \otimes d ) [ ( v \cdot \nabla) d - \Delta d ] =0, \ \vert d \vert^2 = 1. \end{aligned} $$

Submodel 2

$$ \begin{aligned} \partialt v + ( v \cdot \nabla) v + \nabla p + \nabla \cdot [\nabla d]^T ( I - d \otimes d ) \Delta d - \nabla \cdot T^L = 0, \ \nabla \cdot v = 0, \ \partialt d + ( I - d \otimes d ) [ ( v \cdot \nabla) d - {(\nabla v)} _{skw} d + ( \lambda {(\nabla v)} _{sym} d - \Delta d ) ] =0, \ \vert d \vert^2 = 1. \end{aligned} $$

Numerical Methods

Currently the following numerical schemes are available. - linear Continuous Galerkin (CG) scheme fulfilling a discrete energy law - with mass-lumping - with a projection step (LhP) - without projection step (Lh) - with the standard $L^2$ inner product - with a projection step (LL2P) - without projection step (LL2) - linear Discontinuous Galerkin (DG) scheme fulfilling a discrete energy law - with a projection step (lpdg) - without projection step (ldg) - a linearized, decoupled fixed point solver to approximate a fully implicit Continuous Galerkin (CG) scheme (FPhD) - with mass-lumping, --> fulfills the unit-norm constraint exactly at every node of the mesh

All of the above methods use P2-P1-Taylor-Hood Finite Elements for velocity and space and CG1 elements for the director field and its discrete Laplacian.

Getting Started and Usage

All arguments to run simulations are given via the command line input. To see the options run the following command in the package directory:

python -m sim -h

Another usage example with several arguments:

python -m sim -m "LhP" -e spiral -cp -vtx -dh 20 -dt 0.01 -tur 0 -fsr 0.05 -sid "spiral-experiment" -T 0.05

Presets for several simulations --- usually in the context of publications --- are given in the folder 'sim/sim_presets/' usually in the form of a bash or python file. Examples for usage:

python -m sim.sim_presets.projection-spiral and sim/sim_presets/spiral.sh

Requirements

All requirements can be found in the file requirements.txt and can be installed via pip by

pip install -r requirements.txt

or via conda by

conda create --name my-env-name --file requirements.txt -c conda-forge

Notes

  • Experiments of the class 'spiral' need a predefined mesh in .msh or .xdmf format in the folder 'input/meshes'.
  • Results are automatically named and saved in the folder 'output/'

References to relevant publications

List references with links to publications this code was used for: - The decoupled fixed point solver is based on [1].

[1] Lasarzik, R., Reiter, M.E.V. Analysis and Numerical Approximation of Energy-Variational Solutions to the Ericksen–Leslie Equations. Acta Appl Math 184, 11 (2023). https://doi.org/10.1007/s10440-023-00563-9

Authors

  • Maximilian E. V. Reiter, https://orcid.org/0000-0001-9137-7978

License

This project is licensed under the MIT License - see the LICENSE file for details

Owner

  • Login: Max-Reiter-math
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Reiter
    given-names: Maximilian E.V.
    orcid: https://orcid.org/0000-0001-9137-7978 
title: "ericksen_leslie_x"
version: 1.2.0
doi: 
date-released: 15/01/2025

GitHub Events

Total
  • Release event: 1
  • Watch event: 1
  • Push event: 9
  • Create event: 1
Last Year
  • Release event: 1
  • Watch event: 1
  • Push event: 9
  • Create event: 1

Dependencies

requirements.txt pypi
  • adios4dolfinx ==0.7.3
  • fenics_dolfinx ==0.6.0
  • fenics_ufl ==2023.1.1.post0
  • mpi4py ==3.1.4
  • numpy ==1.24.2
  • pandas ==1.5.3
  • petsc4py ==3.17.4