ESScript  Revision_
FluxLimiter.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 
16 
17 #ifndef INC_PASOFCTLIMITER
18 #define INC_PASOFCTLIMITER
19 
20 #include "Transport.h"
21 
22 
23 typedef struct Paso_FCT_FluxLimiter {
26  double dt;
27  double* u_tilde;
28  double* MQ; /* (M_C* Q_min, M_C* Q_max) */
29  double* R; /* (R-, R+) */
30  /* Paso_Coupler *MQ_coupler; */
33  double* borrowed_lumped_mass_matrix; /* borrowd reference */
35 
36 #define Paso_FCT_FluxLimiter_getTotalNumRows(_f_) Paso_SystemMatrix_getTotalNumRows((_f_)->antidiffusive_fluxes)
37 #define Paso_FCT_FluxLimiter_getFluxPattern(_f_) ((_f_)->antidiffusive_fluxes->pattern)
38 
41 PASO_DLL_API void Paso_FCT_FluxLimiter_setU_tilda(Paso_FCT_FluxLimiter* flux_limiter, const double *Mu_tilda);
44 
45 #endif /* #ifndef INC_PASOFCTLIMITER */