/[escript]/branches/doubleplusgood/paso/src/FluxLimiter.h
ViewVC logotype

Contents of /branches/doubleplusgood/paso/src/FluxLimiter.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4257 - (show annotations)
Wed Feb 27 03:42:40 2013 UTC (6 years, 1 month ago) by jfenwick
File MIME type: text/plain
File size: 1774 byte(s)
Some simple experiments for c++ Finley

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 {
24 Paso_SystemMatrix *antidiffusive_fluxes;
25 Esys_MPIInfo *mpi_info;
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; */
31 Paso_Coupler *R_coupler;
32 Paso_Coupler *u_tilde_coupler;
33 double* borrowed_lumped_mass_matrix; /* borrowd reference */
34 } Paso_FCT_FluxLimiter;
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
39 PASO_DLL_API Paso_FCT_FluxLimiter* Paso_FCT_FluxLimiter_alloc(Paso_TransportProblem *fctp);
40 PASO_DLL_API void Paso_FCT_FluxLimiter_free(Paso_FCT_FluxLimiter * in);
41 PASO_DLL_API void Paso_FCT_FluxLimiter_setU_tilda(Paso_FCT_FluxLimiter* flux_limiter, const double *Mu_tilda);
42 PASO_DLL_API void Paso_FCT_FluxLimiter_addLimitedFluxes_Start(Paso_FCT_FluxLimiter* flux_limiter);
43 PASO_DLL_API void Paso_FCT_FluxLimiter_addLimitedFluxes_Complete(Paso_FCT_FluxLimiter* flux_limiter, double* b);
44
45 #endif /* #ifndef INC_PASOFCTLIMITER */

  ViewVC Help
Powered by ViewVC 1.1.26