Peano
Loading...
Searching...
No Matches
applications::exahype2::swe::frictionlaws Namespace Reference

Functions

static GPUCallableMethod double maxEigenvalue (const double *const __restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal) InlineMethod
 
static GPUCallableMethod void maxEigenvalue (const double *const __restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ maxEigenvalue) InlineMethod
 
static GPUCallableMethod void flux (const double *const __restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ F) InlineMethod
 
static GPUCallableMethod void nonconservativeProduct (const double *const __restrict__ Q, const double *const __restrict__ deltaQ, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const double t, const double dt, const int normal, double *const __restrict__ BTimesDeltaQ) InlineMethod
 
static GPUCallableMethod void coulombFriction (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, double t, double dt, double *__restrict__ S) InlineMethod
 
static GPUCallableMethod void materialDependentBasalFriction (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, double t, double dt, double *__restrict__ S) InlineMethod
 

Variables

const double Zeta = 35.0 * std::numbers::pi / 180.0
 
const double Zeta1 = 28.95 * std::numbers::pi / 180.0
 
const double Zeta2 = 44.09 * std::numbers::pi / 180.0
 
const double Zeta3 = 31.81 * std::numbers::pi / 180.0
 
const double Mu1 = std::tan(Zeta1)
 
const double Mu2 = std::tan(Zeta2)
 
const double Mu3 = std::tan(Zeta3)
 
constexpr double Beta = 1.07
 
constexpr double Gamma = 2.01
 
constexpr double BetaStar = 0.06
 
constexpr double Kappa = 1.0
 
constexpr double FrictionLengthScale = 0.00035
 
const double Nu = (2.0 / 9.0) * (FrictionLengthScale / Beta) * (GRAV * std::sin(Zeta) / std::sqrt(GRAV * std::cos(Zeta))) * (((Mu2 - Mu1) / (std::tan(Zeta) - Mu1)) - 1.0)
 
const double Hstart = FrictionLengthScale * (((Mu2 - Mu1) / (std::tan(Zeta) - Mu3)) - 1.0)
 
const double Hstop = FrictionLengthScale * (((Mu2 - Mu1) / (std::tan(Zeta) - Mu1)) - 1.0)
 

Function Documentation

◆ coulombFriction()

static GPUCallableMethod void applications::exahype2::swe::frictionlaws::coulombFriction ( const double *__restrict__  Q,
const tarch::la::Vector< Dimensions, double > &  x,
const tarch::la::Vector< Dimensions, double > &  h,
double  t,
double  dt,
double *__restrict__  S 
)
static

◆ flux()

static GPUCallableMethod void applications::exahype2::swe::frictionlaws::flux ( const double *const __restrict__  Q,
const tarch::la::Vector< Dimensions, double > &  x,
const tarch::la::Vector< Dimensions, double > &  h,
const double  t,
const double  dt,
const int  normal,
double *const __restrict__  F 
)
static

◆ materialDependentBasalFriction()

static GPUCallableMethod void applications::exahype2::swe::frictionlaws::materialDependentBasalFriction ( const double *__restrict__  Q,
const tarch::la::Vector< Dimensions, double > &  x,
const tarch::la::Vector< Dimensions, double > &  h,
double  t,
double  dt,
double *__restrict__  S 
)
static

◆ maxEigenvalue() [1/2]

static GPUCallableMethod double applications::exahype2::swe::frictionlaws::maxEigenvalue ( const double *const __restrict__  Q,
const tarch::la::Vector< Dimensions, double > &  x,
const tarch::la::Vector< Dimensions, double > &  h,
const double  t,
const double  dt,
const int  normal 
)
static

◆ maxEigenvalue() [2/2]

static GPUCallableMethod void applications::exahype2::swe::frictionlaws::maxEigenvalue ( const double *const __restrict__  Q,
const tarch::la::Vector< Dimensions, double > &  x,
const tarch::la::Vector< Dimensions, double > &  h,
const double  t,
const double  dt,
const int  normal,
double *const __restrict__  maxEigenvalue 
)
static

◆ nonconservativeProduct()

static GPUCallableMethod void applications::exahype2::swe::frictionlaws::nonconservativeProduct ( const double *const __restrict__  Q,
const double *const __restrict__  deltaQ,
const tarch::la::Vector< Dimensions, double > &  x,
const tarch::la::Vector< Dimensions, double > &  h,
const double  t,
const double  dt,
const int  normal,
double *const __restrict__  BTimesDeltaQ 
)
static

Variable Documentation

◆ Beta

constexpr double applications::exahype2::swe::frictionlaws::Beta = 1.07
constexpr

Definition at line 19 of file FrictionLaws.h.

◆ BetaStar

constexpr double applications::exahype2::swe::frictionlaws::BetaStar = 0.06
constexpr

Definition at line 21 of file FrictionLaws.h.

◆ FrictionLengthScale

constexpr double applications::exahype2::swe::frictionlaws::FrictionLengthScale = 0.00035
constexpr

Definition at line 28 of file FrictionLaws.h.

◆ Gamma

constexpr double applications::exahype2::swe::frictionlaws::Gamma = 2.01
constexpr

Definition at line 20 of file FrictionLaws.h.

◆ Hstart

const double applications::exahype2::swe::frictionlaws::Hstart = FrictionLengthScale * (((Mu2 - Mu1) / (std::tan(Zeta) - Mu3)) - 1.0)

Definition at line 31 of file FrictionLaws.h.

◆ Hstop

const double applications::exahype2::swe::frictionlaws::Hstop = FrictionLengthScale * (((Mu2 - Mu1) / (std::tan(Zeta) - Mu1)) - 1.0)

Definition at line 32 of file FrictionLaws.h.

◆ Kappa

constexpr double applications::exahype2::swe::frictionlaws::Kappa = 1.0
constexpr

Definition at line 27 of file FrictionLaws.h.

◆ Mu1

const double applications::exahype2::swe::frictionlaws::Mu1 = std::tan(Zeta1)

Definition at line 15 of file FrictionLaws.h.

◆ Mu2

const double applications::exahype2::swe::frictionlaws::Mu2 = std::tan(Zeta2)

Definition at line 16 of file FrictionLaws.h.

◆ Mu3

const double applications::exahype2::swe::frictionlaws::Mu3 = std::tan(Zeta3)

Definition at line 17 of file FrictionLaws.h.

◆ Nu

const double applications::exahype2::swe::frictionlaws::Nu = (2.0 / 9.0) * (FrictionLengthScale / Beta) * (GRAV * std::sin(Zeta) / std::sqrt(GRAV * std::cos(Zeta))) * (((Mu2 - Mu1) / (std::tan(Zeta) - Mu1)) - 1.0)

Definition at line 30 of file FrictionLaws.h.

◆ Zeta

const double applications::exahype2::swe::frictionlaws::Zeta = 35.0 * std::numbers::pi / 180.0

Definition at line 10 of file FrictionLaws.h.

◆ Zeta1

const double applications::exahype2::swe::frictionlaws::Zeta1 = 28.95 * std::numbers::pi / 180.0

Definition at line 11 of file FrictionLaws.h.

◆ Zeta2

const double applications::exahype2::swe::frictionlaws::Zeta2 = 44.09 * std::numbers::pi / 180.0

Definition at line 12 of file FrictionLaws.h.

◆ Zeta3

const double applications::exahype2::swe::frictionlaws::Zeta3 = 31.81 * std::numbers::pi / 180.0

Definition at line 13 of file FrictionLaws.h.