Code_Saturne
CFD tool
cs_ale.h
Go to the documentation of this file.
1 #ifndef __CS_ALE_H__
2 #define __CS_ALE_H__
3 
4 /*============================================================================
5  * Functions associated to ALE formulation
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2012 EDF S.A.
12 
13  This program is free software; you can redistribute it and/or modify it under
14  the terms of the GNU General Public License as published by the Free Software
15  Foundation; either version 2 of the License, or (at your option) any later
16  version.
17 
18  This program is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21  details.
22 
23  You should have received a copy of the GNU General Public License along with
24  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25  Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 */
27 
28 /*----------------------------------------------------------------------------*/
29 
30 /*----------------------------------------------------------------------------
31  * Standard C library headers
32  *----------------------------------------------------------------------------*/
33 
34 /*----------------------------------------------------------------------------
35  * Local headers
36  *----------------------------------------------------------------------------*/
37 
38 #include "cs_base.h"
39 
40 /*----------------------------------------------------------------------------*/
41 
43 
44 /*============================================================================
45  * Public function prototypes
46  *============================================================================*/
47 
48 /*----------------------------------------------------------------------------
49  * Compute cell and face centre of gravity, cell volume.
50  *
51  * Fortran Interface
52  *
53  * SUBROUTINE ALGRMA
54  * *****************
55  *
56  *----------------------------------------------------------------------------*/
57 
58 void
59 CS_PROCF (algrma, ALGRMA)(void);
60 
61 /*----------------------------------------------------------------------------
62  * Projection on mesh vertices of the displacement (computed on cell center)
63  *
64  * Fortran Interface
65  *
66  * SUBROUTINE ALDEPL
67  * *****************
68  *
69  * INTEGER IFACEL(2,NFAC) : --> : Interior faces -> cells connectivity
70  * INTEGER IFABOR(NFABOR) : --> : Border faces -> cells connectivity
71  * INTEGER IPNFAC(NFAC+1) : --> : Interior faces -> vertices index
72  * INTEGER NODFAC(LNDFAC) : --> : Interior faces -> vertices list
73  * INTEGER IPNFBR(NFABOR+1): --> : Border faces -> vertices index
74  * INTEGER NODFBR(LNDFBR) : --> : Border faces -> vertices list
75  * DOUBLE PRECISION UMA(NCELET) : --> : Mesh velocity along X
76  * DOUBLE PRECISION VMA(NCELET) : --> : Mesh velocity along Y
77  * DOUBLE PRECISION WMA(NCELET) : --> : Mesh velocity along Z
78  * DOUBLE PRECISION COEFAU(NCELET) : --> : Boundary condition A for UMA
79  * DOUBLE PRECISION COEFAV(NCELET) : --> : Boundary condition A pour VMA
80  * DOUBLE PRECISION COEFAW(NCELET) : --> : Boundary condition A pour WMA
81  * DOUBLE PRECISION COEFBU(NCELET) : --> : Boundary condition B pour UMA
82  * DOUBLE PRECISION COEFBV(NCELET) : --> : Boundary condition B pour VMA
83  * DOUBLE PRECISION COEFBW(NCELET) : --> : Boundary condition B pour WMA
84  * DOUBLE PRECISION DT(NCELET) : --> : Time step
85  * DOUBLE PRECISION DEPROJ(NNOD,3)): <-- : Displacement projected on vertices
86  *----------------------------------------------------------------------------*/
87 
88 void
89 CS_PROCF (aldepl, ALDEPL)(const cs_int_t i_face_cells[],
90  const cs_int_t b_face_cells[],
91  const cs_int_t i_face_vtx_idx[],
92  const cs_int_t i_face_vtx_lst[],
93  const cs_int_t b_face_vtx_idx[],
94  const cs_int_t b_face_vtx_lst[],
95  cs_real_t *uma,
96  cs_real_t *vma,
97  cs_real_t *wma,
99  cs_real_t *coefav,
100  cs_real_t *coefaw,
101  cs_real_t *coefbu,
102  cs_real_t *coefbv,
103  cs_real_t *coefbw,
104  cs_real_t *dt,
105  cs_real_t *disp_proj);
106 
107 /*----------------------------------------------------------------------------
108  * Projection on mesh vertices of the displacement (computed on cell center)
109  *
110  * Fortran Interface
111  *
112  * SUBROUTINE ALEDIS
113  * *****************
114  *
115  * INTEGER IFACEL(2,NFAC) : --> : Interior faces -> cells connectivity
116  * INTEGER IFABOR(NFABOR) : --> : Border faces -> cells connectivity
117  * INTEGER IPNFAC(NFAC+1) : --> : Interior faces -> vertices index
118  * INTEGER NODFAC(LNDFAC) : --> : Interior faces -> vertices list
119  * INTEGER IPNFBR(NFABOR+1) : --> : Border faces -> vertices index
120  * INTEGER NODFBR(LNDFBR) : --> : Border faces -> vertices list
121  * INTEGER IALTYB(NFABOR) : --> : Type of boundary for ALE
122  * DOUBLE PRECISION POND(NFAC) : --> : Interior faces geometric weight
123  * DOUBLE PRECISION MESHV(3,NCELET) : --> : Mesh velocity
124  * DOUBLE PRECISION GRADM(3,3,NCELET): --> : Mesh velocity gradient
125  * DOUBLE PRECISION CLAALE(3,NCELET) : --> : Boundary conditions A
126  * DOUBLE PRECISION CLBALE(3,3,NECLET: --> : Boundary conditions B
127  * DOUBLE PRECISION DT(NCELET) : --> : Time step
128  * DOUBLE PRECISION DEPROJ(NNOD,3)) : <-- : Displacement projected on vertices
129  *----------------------------------------------------------------------------*/
130 
131 void
132 CS_PROCF (aledis, ALEDIS)(const cs_int_t i_face_cells[],
133  const cs_int_t b_face_cells[],
134  const cs_int_t i_face_vtx_idx[],
135  const cs_int_t i_face_vtx_lst[],
136  const cs_int_t b_face_vtx_idx[],
137  const cs_int_t b_face_vtx_lst[],
138  const cs_int_t ialtyb[],
139  const cs_real_t pond[],
140  cs_real_t *meshv,
141  cs_real_t *gradm,
142  cs_real_t *claale,
143  cs_real_t *clbale,
144  cs_real_t *dt,
145  cs_real_t *disp_proj);
146 
147 /*----------------------------------------------------------------------------*/
148 
150 
151 #endif /* __CS_ALE_H__ */
152 
double precision, dimension(:), pointer pond
Definition: mesh.f90:113
void aldepl(const cs_int_t i_face_cells[], const cs_int_t b_face_cells[], const cs_int_t i_face_vtx_idx[], const cs_int_t i_face_vtx_lst[], const cs_int_t b_face_vtx_idx[], const cs_int_t b_face_vtx_lst[], cs_real_t *uma, cs_real_t *vma, cs_real_t *wma, cs_real_t *coefau, cs_real_t *coefav, cs_real_t *coefaw, cs_real_t *coefbu, cs_real_t *coefbv, cs_real_t *coefbw, cs_real_t *dt, cs_real_t *disp_proj)
Definition: cs_ale.c:119
#define BEGIN_C_DECLS
Definition: cs_defs.h:365
BEGIN_C_DECLS void algrma(void)
Definition: cs_ale.c:81
int cs_int_t
Definition: cs_defs.h:263
void aledis(const cs_int_t i_face_cells[], const cs_int_t b_face_cells[], const cs_int_t i_face_vtx_idx[], const cs_int_t i_face_vtx_lst[], const cs_int_t b_face_vtx_idx[], const cs_int_t b_face_vtx_lst[], const cs_int_t ialtyb[], const cs_real_t pond[], cs_real_t *meshv, cs_real_t *gradm, cs_real_t *claale, cs_real_t *clbale, cs_real_t *dt, cs_real_t *disp_proj)
Definition: cs_ale.c:278
#define END_C_DECLS
Definition: cs_defs.h:366
integer, dimension(:), allocatable ialtyb
Definition: albase.f90:56
double cs_real_t
Definition: cs_defs.h:264
double precision, dimension(:,:), allocatable claale
Definition: pointe.f90:63
#define CS_PROCF(x, y)
Definition: cs_defs.h:379
double precision, dimension(:,:,:), allocatable coefbu
Definition: pointe.f90:61
double precision, dimension(:,:), allocatable coefau
Definition: pointe.f90:60
double precision, dimension(:,:,:), allocatable clbale
Definition: pointe.f90:64