Skip to content

Commit b1db5e7

Browse files
committed
init II.
1 parent 7f8053f commit b1db5e7

25 files changed

+104933
-4637
lines changed

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021 Vladimír Lukeš
3+
Copyright (c) 2022 Vladimír Lukeš
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
Two-scale numerical simulation of a large deforming fluid-saturated porous structure
2-
====================================================================================
1+
Homogenization of peristaltic flows in piezoelectric porous media
2+
=================================================================
33

4+
* [Example Page](https://sfepy.org/sfepy_examples/example_piezo_flow/)
45

5-
* [Example Page](https://sfepy.org/sfepy_examples/example_largedef_porous/)
6-
7-
* [The Paper](https://arxiv.org/abs/2012.03730)
6+
* [The Paper](https://arxiv.org/abs/XXXX)
87

98
* [SfePy](https://sfepy.org)

doc/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# You can set these variables from the command line.
55
SPHINXOPTS =
66
SPHINXBUILD = sphinx-build
7-
SPHINXPROJ = largedef_porous
7+
SPHINXPROJ = pieze_flow
88
SOURCEDIR = .
99
BUILDDIR = _build
1010

doc/_static/cflux_varying_phi.png

35.8 KB
Loading
-35.7 KB
Binary file not shown.

doc/_static/fig_bolus_1Dtube_l_20.png

118 KB
Loading

doc/_static/macro_geom_bc.png

60.1 KB
Loading

doc/_static/micro_geom.png

164 KB
Loading
Loading

doc/_static/results1.png

-29.9 KB
Binary file not shown.

doc/conf.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
master_doc = 'index'
5555

5656
# General information about the project.
57-
project = u'sfepy_example_largedef_porous'
58-
copyright = u'2021, Vladimír Lukeš, Eduard Rohan'
57+
project = u'sfepy_example_piezo_flow'
58+
copyright = u'2023, Vladimír Lukeš, Eduard Rohan'
5959
author = u'Vladimír Lukeš, Eduard Rohan'
6060

6161
# The version info for the project you're documenting, acts as replacement for
@@ -102,11 +102,11 @@
102102
# Set the following variables to generate the resulting github URL for each page.
103103
# Format Template: https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/blob/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}
104104
'github_user': 'vlukes',
105-
'github_repo': 'example_largedef_porous',
105+
'github_repo': 'example_piezo_flow',
106106
'menu_links_name': 'Connections',
107107
'menu_links': [
108-
('<i class="fa fa-github fa-fw"></i> Source Code', 'https://github.com/sfepy/example_largedef_porous'),
109-
('<i class="fa fa-file-text fa-fw"></i> The Paper', 'https://arxiv.org/abs/2012.03730'),
108+
('<i class="fa fa-github fa-fw"></i> Source Code', 'https://github.com/sfepy/example_piezo_flow'),
109+
('<i class="fa fa-file-text fa-fw"></i> The Paper', 'https://arxiv.org/abs/XXX'),
110110
('<i class="fa fa-external-link fa-fw"></i> SfePy', 'https://sfepy.org'),
111111
],
112112
}
@@ -138,7 +138,7 @@
138138
# html_sidebars = {}
139139

140140
# Output file base name for HTML help builder.
141-
htmlhelp_basename = 'example_largedef_porous'
141+
htmlhelp_basename = 'example_piezo_flow'
142142

143143
# -- Options for LaTeX output ---------------------------------------------
144144

doc/index.rst

+75-55
Original file line numberDiff line numberDiff line change
@@ -2,104 +2,124 @@
22
:maxdepth: 2
33
:caption: Contents:
44

5-
Two-scale numerical simulation of a large deforming fluid-saturated porous structure
6-
====================================================================================
5+
Homogenization of peristaltic flows in piezoelectric porous media
6+
=================================================================
77

8-
Mathematical model
9-
------------------
8+
Model
9+
-----
10+
11+
This example shows the numerical implementation of the homogenized problem of
12+
peristaltic flow in porous piezoelectric materials saturated by electrically
13+
inert fluid. The solid part of a representative volume element consists of the
14+
piezoelectric skeleton with embedded conductors. The pore fluid in the periodic
15+
structure constitutes a single connected domain. The electrodes control the
16+
electric field at the pore level, so that the peristaltic wave of the
17+
deformation influences the pore volume and can control the direction of fluid
18+
flow. For details, see [RohanLukes2023]_.
1019

11-
We consider a fluid-saturated porous medium undergoing large deformations. A
12-
double porous medium is constituted by a hyperelastic skeleton and an
13-
incompressible viscous fluid. Within the Eulerian framework related to the
14-
current deformed configuration, the two-scale homogenization approach is
15-
applied to a linearized model discretized in time, being associated with an
16-
incremental formulation. The homogenization procedure of the linearized
17-
equations provides effective (homogenized) material properties which are
18-
computed to constitute the incremental macroscopic problem. The multiscale
19-
model is derived and discussed in [LukesRohan2020]_.
2020

2121

2222
Implementation
2323
--------------
2424

25-
The local subproblems defined within the reference cell and the global
26-
macroscopic equations are discretized and solved by means of the finite element
27-
method. The macroscopic equations and the incremental ULF algorithm are defined
28-
in :code:`largedef_porous_mac.py`. The finite element mesh representing the
29-
macroscopic domain and the applied boundary conditions are depicted in
30-
:numref:`fig_macro`.
31-
32-
.. :code:`macro_mesh_3x2.vtk`
25+
The homogenized coefficients, their sensitivities, and the microscopic
26+
subproblems are defined in :code:`poropiezo_micro.py` and
27+
:code:`poropiezo_micro_sa.py`. The periodic reference cell, on which the
28+
microscopic subproblems are solved, is depicted in :numref:`fig_micro`.
29+
The FE mesh of the reference cell is stored in :code:`mesh_micro_1D.vtk`.
3330

34-
.. _fig_macro:
31+
.. _fig_micro:
3532

36-
.. figure:: _static/displ_boundary_conditions.png
37-
:width: 400px
33+
.. figure:: _static/micro_geom.png
34+
:width: 500px
3835
:align: center
3936
:figclass: align-center
4037

41-
Boundary conditions applied to the macroscopic 2D sample.
38+
Decomposition of the microscopic reference cell.
4239

43-
The local microscopic problems and the homogenized coefficients are specified
44-
in :code:`largedef_porous_mic.py`. The domain, on which the microscopic
45-
calculations are performed, is shown in :numref:`fig_micro`. It consists of the
46-
porous matrix :math:`Y_3` and two fluid channels :math:`Y_1`, :math:`Y_2`.
40+
The problem description file coding the homogenized macroscopic equations
41+
invokes :code:`poropiezo_macro_nl.py`. The FE mesh related to the macroproblem
42+
is defined in :code:`mesh_macro_20x1x1.vtk`. The applied boundary conditions are shown
43+
in :numref:`fig_macro_bc`, and the prescribed electric potential, inducing
44+
the deformation and thus the fluid flow through the structure, is depicted in
45+
:numref:`fig_macro_phi`.
4746

48-
The macro-micro coupling is governed by the SfePy homogenization engine, see
49-
[CimrmanLukesRohan2019]_, which ensures efficient evaluation of the homogenized
50-
coefficients demanded by the macroscopic simulation.
47+
.. _fig_macro_bc:
5148

52-
.. :code:`micro_mesh.vtk`
49+
.. figure:: _static/macro_geom_bc.png
50+
:width: 500px
51+
:align: center
52+
:figclass: align-center
5353

54-
.. _fig_micro:
54+
Boundary conditions applied to the macroscopic sample.
5555

56-
.. figure:: _static/micro_geom.png
57-
:width: 200px
56+
.. _fig_macro_phi:
57+
58+
.. figure:: _static/fig_bolus_1Dtube_l_20.png
59+
:width: 400px
5860
:align: center
5961
:figclass: align-center
6062

61-
Decomposition of the microscopic domain :math:`Y`.
63+
Electric potential at selected times.
6264

6365

6466
Running simulation
6567
------------------
6668

6769
To run the multiscale numerical simulation, download the
68-
`archive <https://github.com/sfepy/example_largedef_porous/archive/v1.zip>`_,
69-
unpack it in the main SfePy directory and type:
70+
`archive <https://github.com/sfepy/example_piezo_flow/archive/v1.zip>`_,
71+
unpack it and type:
7072

7173
.. code::
7274
73-
./simple.py example_largedef_porous-1/largedef_porous_mac.py
75+
sfepy-run example_piezo_flow-1/piezo_macro_nl.py
76+
77+
In the first step, SfePy invokes the homogenization engine, see
78+
[CimrmanLukesRohan2019]_, which solves the microscopic subproblems and
79+
evaluates the homogenized coefficients required at the macroscopic level. In
80+
the second step, the time-stepping solver resolves the macroscopic problem for
81+
given boundary conditions, and the reconstruction of the displacement,
82+
pressure, and velocity fields at the microscopic level is performed.
83+
84+
The reconstructed pressure and velocity fields are shown in
85+
:numref:`fig_results_rec`.
86+
87+
.. _fig_results_rec:
88+
89+
.. figure:: _static/pressure_velocity_reconstructed.png
90+
:width: 600px
91+
:align: center
92+
:figclass: align-center
7493

75-
This invokes the time-stepping solver for the problem at the macroscopic level
76-
which calls the homogenization engine evaluating the homogenized coefficients
77-
defined in :code:`largedef_porous_mic.py`. The coefficients are evaluated in
78-
several embedded loops associated with the time steps and the macroscopic
79-
integration points, see [LukesRohan2020]_ for details.
94+
Reconstructed pressure and velocity fields at a given time step.
8095

81-
The computed macroscopic results can be visualized using the :code:`resview.py`
82-
post-processing script as follows:
96+
The above figure was generated by the post-processing script as follows:
8397

8498
.. code::
8599
86-
./resview.py example_largedef_porous-1/results/macro_mesh_3x2_*.vtk -w u0 -f cauchy_stress:p0 -v "0,0" -s 18
100+
sfepy-view output/mesh_micro_1D.recovered_0.001.040_Yf.vtk -f p:o.4:p0 w:g:f5e-4:p1 0:o.4:p1 --camera-position="0.101136,-0.0016623,0.00179498,0.0917673,0.00652579,-0.000337183,-0.1227,0.116262,0.98561"
101+
102+
This simulation demonstrates the ability of the porose piezoelectric structure
103+
to transport fluid against the pressure drop given by the prescribed boundary
104+
pressures. The dependence of the transported fluid on the magnitude of the
105+
electrical potential is depicted in :numref:`fig_results_flux`.
87106

88-
.. figure:: _static/results1.png
89-
:width: 700px
107+
.. _fig_results_flux:
108+
109+
.. figure:: _static/cflux_varying_phi.png
110+
:width: 400px
90111
:align: center
91112
:figclass: align-center
92113

93-
Distribution of the Cauchy stress magnitude (average values per element) in
94-
the macroscopic deformed domain at time step 18.
114+
Dependence of cumulative flux on the amplitude of the prescribed electric potential.
95115

96116

97117
References
98118
----------
99119

100-
.. [LukesRohan2020] Lukeš V. Rohan E.
101-
Homogenization of large deforming fluid-saturated porous structures
102-
`arXiv:2012.03730 <https://arxiv.org/abs/2012.03730>`_
120+
.. [RohanLukes2023] Rohan E., Lukeš V.
121+
xxx,
122+
`xxx <https://arxiv.org/abs/xxx>`_
103123
104124
.. [CimrmanLukesRohan2019] Cimrman R., Lukeš V., Rohan E.
105125
Multiscale finite element calculations in Python using SfePy.

0 commit comments

Comments
 (0)