getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] (no subject)


From: Tetsuo Koyama
Subject: [Getfem-commits] (no subject)
Date: Sat, 25 May 2019 04:32:47 -0400 (EDT)

branch: devel-tetsuo-houbolt
commit b47f45342fb87c43ee0856f879d173524b23b173
Author: Tetsuo Koyama <address@hidden>
Date:   Sat May 25 11:48:52 2019 +0900

    Add section "The implicit Houbolt scheme"
---
 .../source/userdoc/model_time_integration.rst      | 36 +++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/doc/sphinx/source/userdoc/model_time_integration.rst 
b/doc/sphinx/source/userdoc/model_time_integration.rst
index 3e22428..6d6bea7 100644
--- a/doc/sphinx/source/userdoc/model_time_integration.rst
+++ b/doc/sphinx/source/userdoc/model_time_integration.rst
@@ -17,7 +17,7 @@ Although time integration scheme can be written directly 
using the model object
 
 * The original variables of the model represent the state of the system to be 
solved at the current time step (say step n). This is the case even for a 
middle point scheme, mainly because if one needs to apply different schemes to 
different variables of the system, all variable should describe the system at a 
unique time step.
 
-* Some data are added to the model to represent the state of the system at 
previous time steps. For classical one-step schemes (for the moment, only 
one-step schemes are provided), only the previous time step is stored. For 
instance if `u` is a variable (thus represented at step n), `Previous_u` will 
be the data representing the state of the variable at the previous time step 
(step n-1). Eventually, for future extension to multi-step methods, 
`Previous2_u` may represent the variable at t [...]
+* Some data are added to the model to represent the state of the system at 
previous time steps. For classical one-step schemes (for the moment, only 
one-step schemes are provided), only the previous time step is stored. For 
instance if `u` is a variable (thus represented at step n), `Previous_u`, 
`Previous2_u`, `Previous3_u` will be the data representing the state of the 
variable at the previous time step (step n-1, n-2 and n-3).
 
 * Some intermediate variables are added to the model to represent the time 
derivative (and the second order time derivative for second order problem). For 
instance, if `u` is a variable, `Dot_u` will represent the first order time 
derivative of `u` and `Dot2_u` the second order one. One can refer to these 
variables in the model to add a brick on it or to use it in the weak form 
language. However, these are not considered to be independent variables, they 
will be linked to their correspon [...]
 
@@ -223,6 +223,40 @@ The addition of this scheme to a variable is to be done 
thanks to::
   add_Newmark_scheme(model &md, const std::string &varname,
                      scalar_type beta, scalar_type gamma);
 
+The implicit Houbolt scheme
+***************************
+
+For a problem which reads
+
+.. math::
+
+   (K+\frac{11}{6 dt}C+\frac{2}{dt^2}M) u_{n} = F_{n} + (\frac{5}{dt^2} M + 
\frac{3}{  dt} C) u_{n-1}
+                                                      - (\frac{4}{dt^2} M + 
\frac{3}{2 dt} C) u_{n-2}
+                                                      + (\frac{1}{dt^2} M + 
\frac{1}{3 dt} C) u_{n-3}
+
+where :math:`dt` means a time step, :math:`M` the matrix in term of "Dot2_u", 
:math:`C` the matrix in term of "Dot_u" and :math:`K` the matrix in term of "u".
+The affine dependences are thus given by::
+
+   Dot_u  = 1/(6*dt)*(11*u-18*Previous_u+9*Previous2_u-2*Previous3_u)
+   Dot2_u = 1/(dt**2)*(2*u-5*Previous_u+4*Previous2_u-Previous3_u)
+
+When aplying this scheme to a variable "u" of the model, the following affine 
dependent variables are added to the model::
+
+  "Dot_u", "Dot2_u"
+
+which represent the first and second order time derivative of the variable and 
can be used in some brick definition. 
+
+The following data are also added::
+ 
+  "Previous_u", "Previous2_u", "Previous3_u"
+
+which correspond to the values of "u" at the time step n-1, n-2 n-3.
+
+Before the solve, the data "Previous_u", "Previous2_u" and "Previous3_u" 
(corresponding to :math:`U^0` in the example) have to be initialized.
+
+The addition of this scheme to a variable is to be done thanks to::
+ 
+  add_Houbolt_scheme(model &md, const std::string &varname);
 
 Transient terms
 ***************



reply via email to

[Prev in Thread] Current Thread [Next in Thread]