DOI: 10.48804/xjfeie
title: Supplementary materials for: From Microstructure to Mechanics: A Multi-constituent Micro-scale Computational Model of Arterial Tissue

description: This dataset in KU Leuven's research data repository is the supplementary materials for the research paper entitled "From Microstructure to Mechanics: A Multi-constituent Micro-scale Computational Model of Arterial Tissue". Authors: Maïté Pétré (UCLouvain & KULeuven), Hannes Wolfs (KULeuven), Lauranne Maes (KULeuven), Greet Kerckhofs (UCLouvain) and Nele Famaey (KULeuven). The following supplementary files enables the creation of a representative volume element (RVE) of arterial tissue based on microstructural information. Microstructural parameters were derived from 3D contrast-enhancing computed tomography images of the medial porcine aortic layer and relevant literature studies using scanning electron microscopy (SEM). The 360 x 360 x 360 μm³ RVE consists of twelve 15μm thick elastic lamellae spaced by 15μm.
Collagen fibers between elastic lamellae are periodic and follow a preferred orientation and dispersion determined by probability density functions. In addition, elastin struts and interlamellar elastin fibers (IEFs) are introduced between the lamellae, connecting the lower plane to the upper. The different constituents of the model are embedded in the ground matrix. Truss elements (T3D2) are selected for collagen fibers, elastin struts, and IEFs, shell elements (S4R) for the elastic lamellae, and solid elements (C3D8RH) for the ground matrix. The same neo-Hookean material model was applied for the elastin constituents, while the ground matrix is also modeled with a neo-Hookean material. Finally, analogous to Dalbosco et al. 2021, a user-defined material model (UMAT) for the collagen fibers with periodic boundary conditions is implemented in Abaqus. A tutorial presentation explaining the code structure and its different steps is available under the name "rve-generation-code-training.pdf".
 
INPUT DATA - optional

*ID01. Name input datafile(s)

cube_60.inp, cube_60_PBC.inp
cube_120.inp, cube_120_PBC.inp
cube_240.inp, cube_240_PBC.inp
cube_360.inp, cube_360_PBC.inp
cube_480.inp, cube_480_PBC.inp
cube_600.inp, cube_600_PBC.inp
cube_660.inp, cube_660_PBC.inp
cube_720.inp, cube_720_PBC.inp
smc_ellipsoid.inp


*ID02. Description input datafile(s)
Pyvista cannot create C3D8H elements used for the ground matrix and C3D10H elements for the smooth muscle cells in ellipsoid shape.
Therefore, these parts need to be created beforehand in abaqus so that Pyvista can use them and merge the elements and nodes in the big .inp file
that is generated by the main.py and that can be used to run in Abaqus.
cube_size.inp are the Abaqus input files created beforehand in Abaqus and imported in the main.py script.
Few sizes has already been created for the user such as size [60, 120, 240, 360, 480, 600, 660, 720].
If the user want another size, the user will need to create a solid cube in Abaqus with C3D8H elements and save the .inp file.
cube_size_PBC.inp are the Abaqus input files defining all the nodes of the different faces of the cube for periodic bounadry conditions. If the user want another cube size, the user will need to first create the new cube in Abaqus and then run the periodic_boundary_conditions_assignement.py
smc_ellipsoid.inp is the Abaqus input file for one smooth muscle cell (smc) having an ellipsoid shape and having C3D10H elements. The code main.py uses
this one instance of ellipsoid to orient and assemble many other instances of smcs in the volume of the cube.

CODE

CA01. Name and description of code file(s)

main.py : main python file to create a RVE of arterial tissue.
Several parameters can be modified by the user such as the fiber diameter d, the uniaxial stiffness modulus of collagen fibers,
the neohookean material properties (C10, D) for elastin constituents and ground matrix, the size of the RVE...

geometry.py: contains all geometrical function to generate collagen fibers, elastic lammellae, elastin struts, interlammellar elastin fibers
and smooth muscle cells. The cube of the ground matrix is first generated, then the elastic lamellae are generated based on their thickness
and the interlammellar spacing. Then, in between the elastic lammellae, like a sandwich formation, all other constituents are created.

distribution.py: create all the distribution (von-mises, beta) used for generating the in-plane and out-of-plane angle for collagen fibers
as well as the distribution for the recruitment stretch values assigned to collagen fibers.

mathematics.py : mathematical functions implemented for vectorial used in the geometry.py

recruitment_stretch_collagen_fibers: create from a beta distribution all the recruitment stretch values assigned to all the elements
of collagen fibers. These recruitment stretches are needed for the UMAT.

write_input_files: functions to create the main abaqus input file that can be run in Abaqus. It also creates a .ssh file if want to run
the main abaqus input file on a cluster (super computer).

arguments.for: arguments used in the fortran user material subroutine (UMAT). Needed only when running the main abaqus input file on Abaqus.

UMAT_fiber.for: the user material subroutine used for the collagen fibers to implement the concept of recruitment stretch
(see reference [1] or the tutorial presentation for more information). Needed only when running the main abaqus input file on Abaqus.

periodic_boundary_conditions_assignement.py : create an Abaqus .inp file with all the nodes belonging to the different face of the cube to implement periodic
boundary conditions.

USAGE

US01. Installation instructions - add relevant links
Intsall pyvista, meshio in your python environment as well as numpy, scipy and math.
pyvista: https://docs.pyvista.org/
meshio: https://pypi.org/project/meshio/2.3.5/
scipy: https://pypi.org/project/scipy/

US02. How to run
After installation of the relevant packages, adapt the path of directory in main.py as well as the path to the input files (cube_size.inp, cube_size_PBC.inp, smc_ellipsoid.inp).
Run the main.py and it will automatically generate all the .inp file needed for Abaqus to run it. The typical output files it will generate are:

RVE_size_60.inp
RVE_size_60.ssh
collagen_renumbering_size_60.inp
recruitment_stretch_size_60.inp
ief_renumbering_size_60.inp
smc_renumbering_size_60.inp
elstrut_renumbering_size_60.inp
planes_renumbering_size_60.inp