Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F86001696
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, Oct 3, 14:22
Size
2 KB
Mime Type
text/x-python
Expires
Sat, Oct 5, 14:22 (2 d)
Engine
blob
Format
Raw Data
Handle
21294324
Attached To
rTAMAAS tamaas
test_saturated_pressure.py
View Options
# -*- coding: utf-8 -*-
# @file
# @section LICENSE
#
# Copyright (©) 2016-19 EPFL (École Polytechnique Fédérale de Lausanne),
# Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program 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 Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
from
__future__
import
print_function
,
division
import
numpy
as
np
import
tamaas
as
tm
def
test_saturated_pressure
(
tamaas_fixture
):
tm
.
set_log_level
(
tm
.
LogLevel
.
debug
)
grid_size
=
256
load
=
0.06
p_sat
=
0.4
iso
=
tm
.
Isopowerlaw2D
()
iso
.
q0
=
4
iso
.
q1
=
4
iso
.
q2
=
16
iso
.
hurst
=
0.8
sg
=
tm
.
SurfaceGeneratorFilter2D
()
sg
.
random_seed
=
2
sg
.
setSizes
([
grid_size
,
grid_size
])
sg
.
setSpectrum
(
iso
)
surface
=
sg
.
buildSurface
()
surface
*=
0.01
/
iso
.
rmsHeights
()
surface
-=
np
.
max
(
surface
)
model
=
tm
.
ModelFactory
.
createModel
(
tm
.
model_type
.
basic_2d
,
[
1.
,
1.
],
[
grid_size
,
grid_size
])
model
.
E
=
1.
model
.
nu
=
0
solver
=
tm
.
KatoSaturated
(
model
,
surface
,
1e-12
,
p_sat
)
solver
.
setMaxIterations
(
6000
)
assert
solver
.
solve
(
load
)
<
1e-12
tractions
=
model
[
'traction'
]
mean_pressure_error
=
abs
(
np
.
mean
(
tractions
)
-
load
)
/
load
max_pressure_error
=
np
.
max
(
tractions
)
-
p_sat
gaps
=
model
[
'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
<
4e-8
Event Timeline
Log In to Comment