escript  Revision_4925
FluxLimiter.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 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 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 #ifndef __PASO_FLUXLIMITER_H__
18 #define __PASO_FLUXLIMITER_H__
19 
20 #include "Transport.h"
21 
22 namespace paso {
23 
26 {
29 
30  inline dim_t getTotalNumRows() const
31  {
32  return antidiffusive_fluxes->getTotalNumRows();
33  }
34 
36  {
37  return antidiffusive_fluxes->pattern;
38  }
39 
40  void setU_tilde(const double* Mu_tilde);
42  void addLimitedFluxes_Complete(double* b);
43 
46  double dt;
47  double* u_tilde;
48  double* MQ; // (M_C* Q_min, M_C* Q_max)
49  double* R; // (R-, R+)
50  //Coupler_ptr MQ_coupler;
53  double* borrowed_lumped_mass_matrix; // borrowed reference
54 };
55 
56 } // namespace paso
57 
58 #endif // __PASO_FLUXLIMITER_H__
59 
#define PASO_DLL_API
Definition: Paso.h:41
Esys_MPIInfo * mpi_info
Definition: FluxLimiter.h:45
Definition: FluxLimiter.h:25
SystemMatrix_ptr antidiffusive_fluxes
Definition: FluxLimiter.h:44
Coupler_ptr u_tilde_coupler
Definition: FluxLimiter.h:52
Struct that holds MPI communicator, rank, size and a tag counter.
Definition: Esys_MPI.h:48
~FCT_FluxLimiter()
Definition: FluxLimiter.cpp:51
SystemMatrixPattern_ptr getFluxPattern() const
Definition: FluxLimiter.h:35
boost::shared_ptr< SystemMatrixPattern > SystemMatrixPattern_ptr
Definition: SystemMatrixPattern.h:38
double * R
Definition: FluxLimiter.h:49
FCT_FluxLimiter(const_TransportProblem_ptr tp)
Definition: FluxLimiter.cpp:32
double * MQ
Definition: FluxLimiter.h:48
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:38
Coupler_ptr R_coupler
Definition: FluxLimiter.h:51
void setU_tilde(const double *Mu_tilde)
Definition: FluxLimiter.cpp:61
dim_t getTotalNumRows() const
Definition: FluxLimiter.h:30
boost::shared_ptr< const TransportProblem > const_TransportProblem_ptr
Definition: Transport.h:30
double dt
Definition: FluxLimiter.h:46
void addLimitedFluxes_Complete(double *b)
Definition: FluxLimiter.cpp:205
double * u_tilde
Definition: FluxLimiter.h:47
void addLimitedFluxes_Start()
Definition: FluxLimiter.cpp:135
boost::shared_ptr< Coupler > Coupler_ptr
Definition: Coupler.h:39
double * borrowed_lumped_mass_matrix
Definition: FluxLimiter.h:53
int dim_t
Definition: types.h:24