Source code for com1DFA.timeDiscretizations

"""
    Functions regarding time discretization and time stepping for com1DFA
"""

# Load modules
import logging

# create local logger
# change log level in calling module to DEBUG to see log messages
log = logging.getLogger(__name__)


[docs]def getSphKernelRadiusTimeStep(dem, cfg): """ Compute the time step given the sph kernel radius and the cMax coefficient This is based on the article from Ben Moussa et Vila DOI:10.1137/S0036142996307119 Parameters ----------- dem: dict dem dictionary (with info about sph kernel radius and mesh size) cfg: configparser the cfg cith cMax Returns -------- dtStable: float corresponding time step """ # get cell size cszDEM = dem['header']['cellsize'] cszNeighbourGrid = dem['headerNeighbourGrid']['cellsize'] # use the minimum of those two values csz = min(cszDEM, cszNeighbourGrid) # courant number cMax = float(cfg['cMax']) dtStable = cMax * csz log.debug('dtStable is with cMAX=%.1f is: %.4f' % (cMax, dtStable)) # return stable time step return dtStable