svMultiPhysics
Loading...
Searching...
No Matches
fluid.h
1/* Copyright (c) Stanford University, The Regents of the University of California, and others.
2 *
3 * All Rights Reserved.
4 *
5 * See Copyright-SimVascular.txt for additional details.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining
8 * a copy of this software and associated documentation files (the
9 * "Software"), to deal in the Software without restriction, including
10 * without limitation the rights to use, copy, modify, merge, publish,
11 * distribute, sublicense, and/or sell copies of the Software, and to
12 * permit persons to whom the Software is furnished to do so, subject
13 * to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included
16 * in all copies or substantial portions of the Software.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
19 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
22 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31#ifndef FLUID_H
32#define FLUID_H
33
34#include "ComMod.h"
35
36#include "consts.h"
37
38namespace fluid {
39
40void b_fluid(ComMod& com_mod, const int eNoN, const double w, const Vector<double>& N, const Vector<double>& y,
41 const double h, const Vector<double>& nV, Array<double>& lR, Array3<double>& lK);
42
43void bw_fluid_2d(ComMod& com_mod, const int eNoNw, const int eNoNq, const double w, const Vector<double>& Nw,
44 const Vector<double>& Nq, const Array<double>& Nwx, const Array<double>& yl, const Vector<double>& ub,
45 const Vector<double>& nV, const Vector<double>& tauB, Array<double>& lR, Array3<double>& lK);
46
47void bw_fluid_3d(ComMod& com_mod, const int eNoNw, const int eNoNq, const double w, const Vector<double>& Nw,
48 const Vector<double>& Nq, const Array<double>& Nwx, const Array<double>& yl, const Vector<double>& ub,
49 const Vector<double>& nV, const Vector<double>& tauB, Array<double>& lR, Array3<double>& lK);
50
51void construct_fluid(ComMod& com_mod, const mshType& lM, const Array<double>& Ag, const Array<double>& Yg);
52
53void fluid_2d_c(ComMod& com_mod, const int vmsFlag, const int eNoNw, const int eNoNq, const double w, const Array<double>& Kxi,
54 const Vector<double>& Nw, const Vector<double>& Nq, const Array<double>& Nwx, const Array<double>& Nqx,
55 const Array<double>& Nwxx, const Array<double>& al, const Array<double>& yl, const Array<double>& bfl,
56 Array<double>& lR, Array3<double>& lK, double K_inverse_darcy_permeability);
57
58void fluid_2d_m(ComMod& com_mod, const int vmsFlag, const int eNoNw, const int eNoNq, const double w, const Array<double>& Kxi,
59 const Vector<double>& Nw, const Vector<double>& Nq, const Array<double>& Nwx, const Array<double>& Nqx,
60 const Array<double>& Nwxx, const Array<double>& al, const Array<double>& yl, const Array<double>& bfl,
61 Array<double>& lR, Array3<double>& lK, double K_inverse_darcy_permeability);
62
63void fluid_3d_c(ComMod& com_mod, const int vmsFlag, const int eNoNw, const int eNoNq, const double w, const Array<double>& Kxi,
64 const Vector<double>& Nw, const Vector<double>& Nq, const Array<double>& Nwx, const Array<double>& Nqx,
65 const Array<double>& Nwxx, const Array<double>& al, const Array<double>& yl, const Array<double>& bfl,
66 Array<double>& lR, Array3<double>& lK, double K_inverse_darcy_permeability);
67
68void fluid_3d_m(ComMod& com_mod, const int vmsFlag, const int eNoNw, const int eNoNq, const double w, const Array<double>& Kxi,
69 const Vector<double>& Nw, const Vector<double>& Nq, const Array<double>& Nwx, const Array<double>& Nqx,
70 const Array<double>& Nwxx, const Array<double>& al, const Array<double>& yl, const Array<double>& bfl,
71 Array<double>& lR, Array3<double>& lK, double K_inverse_darcy_permeability);
72
73void get_viscosity(const ComMod& com_mod, const dmnType& lDmn, double& gamma, double& mu, double& mu_s, double& mu_x);
74
75};
76
77#endif
78
The Array3 template class implements a simple interface to 3D arrays.
Definition Array3.h:52
The ComMod class duplicates the data structures in the Fortran COMMOD module defined in MOD....
Definition ComMod.h:1354
The Vector template class is used for storing int and double data.
Definition Vector.h:50
Domain type is to keep track with element belong to which domain and also different physical quantiti...
Definition ComMod.h:432
This is the container for a mesh or NURBS patch, those specific to NURBS are noted.
Definition ComMod.h:832