[cig-commits] [commit] master: multiply time step suggested by the mesher by an empirical factor (3dbeddb)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Mon Sep 29 04:23:54 PDT 2014


Repository : https://github.com/geodynamics/axisem

On branch  : master
Link       : https://github.com/geodynamics/axisem/compare/1231dadf6d0dc28f86000873a685f55c93956aea...3dbeddb239d17b94f5cc81665d84d7934837e868

>---------------------------------------------------------------

commit 3dbeddb239d17b94f5cc81665d84d7934837e868
Author: martinvandriel <martin at vandriel.de>
Date:   Mon Sep 29 13:23:47 2014 +0200

    multiply time step suggested by the mesher by an empirical factor
    
    depending on the time scheme


>---------------------------------------------------------------

3dbeddb239d17b94f5cc81665d84d7934837e868
 SOLVER/parameters.F90 | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/SOLVER/parameters.F90 b/SOLVER/parameters.F90
index 1f8fb79..9199a4e 100644
--- a/SOLVER/parameters.F90
+++ b/SOLVER/parameters.F90
@@ -799,9 +799,9 @@ subroutine compute_numerical_parameters
 
   ! Overwrite time step or source period if demanded by input
   if (enforced_dt > zero) then
-     if (time_scheme=='newmark2' .and. enforced_dt>deltat .or. & 
-          time_scheme=='symplec4' .and. enforced_dt>1.5*deltat .or. &
-          time_scheme=='SS_35o10' .and. enforced_dt>3.0*deltat  ) then 
+     if (time_scheme == 'newmark2' .and. enforced_dt > deltat .or. & 
+         time_scheme == 'symplec4' .and. enforced_dt > 1.5 * deltat .or. &
+         time_scheme == 'SS_35o10' .and. enforced_dt > 3.0 * deltat  ) then 
         write(errmsg,*) &
               'PROBLEM: Time step larger than allowed by mesh!\n', &
               'Chosen value (in inparam file) [s] :', enforced_dt, '\n', &
@@ -818,6 +818,16 @@ subroutine compute_numerical_parameters
         deltat = enforced_dt
      endif
   else
+     ! mesher suggestion is based on newmark scheme, the higher order schemes are stable
+     ! for longer time steps
+     select case (time_scheme)
+     case ('newmark')
+        deltat = deltat
+     case ('symplec4')
+        deltat = deltat * 1.5
+     case ('SS_35o10')
+        deltat = deltat * 3.0
+     end select
      if (lpr .and. verbose > 1) then 
         write(6,'(/,a)')'    Using time step precalculated by the mesher:',deltat
      endif



More information about the CIG-COMMITS mailing list