Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F80109687
test_saturated_pressure.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Aug 29, 22:40
Size
2 KB
Mime Type
text/x-python
Expires
Sat, Aug 31, 22:40 (2 d)
Engine
blob
Format
Raw Data
Handle
20172521
Attached To
rTAMAAS tamaas
test_saturated_pressure.py
View Options
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# @author Valentine Rey <valentine.rey@epfl.ch>
#
# @section LICENSE
#
# Copyright (©) 2016 EPFL (Ecole Polytechnique Fédérale de
# Lausanne) Laboratory (LSMS - Laboratoire de Simulation en Mécanique des
# Solides)
#
# Tamaas is free software: you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# Tamaas is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Tamaas. If not, see <http://www.gnu.org/licenses/>.
#
#
################################################################
from
__future__
import
print_function
,
division
import
numpy
as
np
import
tamaas
as
tm
def
test_saturated_pressure
():
tm
.
initialize
()
grid_size
=
256
load
=
0.06
effective_modulus
=
1.
p_sat
=
0.4
do_plot
=
1
SG
=
tm
.
SurfaceGeneratorFilterFFT
()
SG
.
getGridSize
()
.
assign
(
grid_size
)
SG
.
getHurst
()
.
assign
(
0.8
)
SG
.
getRMS
()
.
assign
(
0.01
)
SG
.
getQ0
()
.
assign
(
4
)
SG
.
getQ1
()
.
assign
(
4
)
SG
.
getQ2
()
.
assign
(
16
)
SG
.
getRandomSeed
()
.
assign
(
2
)
SG
.
Init
()
surface
=
SG
.
buildSurface
()
surface
-=
np
.
max
(
surface
)
bem
=
tm
.
BemKato
(
surface
)
bem
.
setDumpFreq
(
100
)
bem
.
setEffectiveModulus
(
effective_modulus
)
bem
.
setMaxPressure
(
p_sat
)
bem
.
setMaxIterations
(
6000
)
bem
.
computeEquilibrium
(
1e-12
,
load
)
tractions
=
bem
.
getTractions
()
true_displacements
=
bem
.
getTrueDisplacements
()
true_gap
=
true_displacements
-
surface
mean_pressure_error
=
abs
(
np
.
mean
(
tractions
)
-
load
)
/
load
max_pressure_error
=
np
.
max
(
tractions
)
-
p_sat
gaps
=
true_gap
gaps
[
np
.
where
(
tractions
==
p_sat
)]
=
0.
press
=
tractions
orthogonality_error
=
np
.
max
(
press
*
gaps
)
/
(
press
.
max
()
*
gaps
.
max
())
assert
mean_pressure_error
<
1e-12
and
max_pressure_error
<
1e-12
and
\
orthogonality_error
<
2e-10
tm
.
finalize
()
if
__name__
==
"__main__"
:
test_saturated_pressure
()
Event Timeline
Log In to Comment