Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F78382431
static_solver.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
Tue, Aug 20, 11:52
Size
1 KB
Mime Type
text/x-python
Expires
Thu, Aug 22, 11:52 (2 d)
Engine
blob
Format
Raw Data
Handle
19086524
Attached To
rAKA akantu
static_solver.py
View Options
# ------------------------------------------------------------------------------
__author__
=
"Nicolas Richart"
__copyright__
=
"Copyright (C) 2016-2018, EPFL (Ecole Polytechnique Fédérale"
\
" de Lausanne) Laboratory (LSMS - Laboratoire de Simulation"
\
" en Mécanique des Solides)"
__credits__
=
[
"Nicolas Richart"
]
__license__
=
"L-GPLv3"
__maintainer__
=
"Nicolas Richart"
__email__
=
"nicolas.richart@epfl.ch"
# ------------------------------------------------------------------------------
import
copy
import
scipy.sparse.linalg
as
spl
from
.
import
export
from
.
import
fe
@export
class
StaticSolver
(
fe
.
Solver
):
def
__init__
(
self
,
model
):
self
.
_model
=
model
def
_assembleResidual
(
self
):
self
.
_r
=
self
.
_model
.
f_ext
-
self
.
_model
.
f_int
def
_assembleJacobian
(
self
):
self
.
_J
=
copy
.
copy
(
self
.
_model
.
K
)
self
.
_model
.
applyDirichletBC
()
self
.
_zero_rows
(
self
.
_J
,
self
.
_model
.
blocked
)
def
solveStep
(
self
):
self
.
_assembleJacobian
()
self
.
_assembleResidual
()
x
=
spl
.
spsolve
(
self
.
_J
,
self
.
_r
)
self
.
_model
.
u
+=
x
Event Timeline
Log In to Comment