Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F63216167
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
Sat, May 18, 13:19
Size
2 KB
Mime Type
text/x-python
Expires
Mon, May 20, 13:19 (2 d)
Engine
blob
Format
Raw Data
Handle
17709879
Attached To
rTAMAAS tamaas
test_saturated_pressure.py
View Options
# -*- coding: utf-8 -*-
#
# Copyright (©) 2016-2022 EPFL (École Polytechnique Fédérale de Lausanne),
# Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides)
# Copyright (©) 2020-2022 Lucas Frérot
#
# 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
import
pytest
@pytest.fixture
(
scope
=
"module"
)
def
saturated
():
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
([
grid_size
]
*
2
)
sg
.
random_seed
=
2
sg
.
spectrum
=
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
.
max_iter
=
6000
solver
.
solve
(
load
)
return
model
,
p_sat
,
load
def
test_mean_pressure
(
saturated
):
model
,
_
,
load
=
saturated
assert
abs
(
model
.
traction
.
mean
()
-
load
)
/
load
<
1e-12
def
test_max_pressure
(
saturated
):
model
,
p_sat
,
_
=
saturated
assert
abs
(
model
.
traction
.
max
()
-
p_sat
)
/
p_sat
<
1e-12
def
test_orthogonality
(
saturated
):
model
,
_
,
_
=
saturated
error
=
np
.
max
(
model
.
traction
*
model
[
'gap'
])
\
/
(
model
.
traction
.
max
()
*
model
[
'gap'
]
.
max
())
assert
error
<
4e-8
Event Timeline
Log In to Comment