programmer's documentation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cs_gui_mobile_mesh.h
Go to the documentation of this file.
1 #ifndef __CS_GUI_MOBILE_MESH_H__
2 #define __CS_GUI_MOBILE_MESH_H__
3 
4 /*============================================================================
5  * Management of the GUI parameters file: mobile mesh
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2014 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  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 #include "cs_base.h"
35 
36 /*----------------------------------------------------------------------------*/
37 
39 
40 /*============================================================================
41  * Type definitions
42  *============================================================================*/
43 
44 /*============================================================================
45  * Public function prototypes for Fortran API
46  *============================================================================*/
47 
48 /*----------------------------------------------------------------------------
49  * ALE method.
50  *
51  * Fortran Interface:
52  *
53  * SUBROUTINE UIALIN()
54  * *****************
55  *
56  * INTEGER IALE <-- iale method activation
57  * INTEGER NALINF <-- number of subiterations of initialization of
58  * fluid
59  * INTEGER NALIMX <-- max number of iterations of implicitation of
60  * the displacement of the structures
61  * DOUBLE EPALIM <-- realtive precision of implicitation of
62  * the displacement of the structures
63  * INTEGER IORTVM <-- type of viscosity of mesh
64  *
65  *----------------------------------------------------------------------------*/
66 
67 void CS_PROCF (uialin, UIALIN) (int *const iale,
68  int *const nalinf,
69  int *const nalimx,
70  double *const epalim,
71  int *const iortvm);
72 
73 /*----------------------------------------------------------------------------
74  * uivima
75  *
76  * Fortran Interface:
77  *
78  * SUBROUTINE uivima
79  * *****************
80  *
81  * ncel --> number of cells whithout halo
82  * viscmx <-- VISCMX
83  * viscmy <-- VISCMY
84  * viscmz <-- VISCMZ
85  * xyzcen --> cell's gravity center
86  * dtref --> time step
87  * ttcabs --> current time
88  * ntcabs --> current iteration number
89  *----------------------------------------------------------------------------*/
90 
91 void CS_PROCF (uivima, UIVIMA) ( const cs_int_t *const ncel,
92  double *const viscmx,
93  double *const viscmy,
94  double *const viscmz,
95  const double *const xyzcen,
96  double *const dtref,
97  double *const ttcabs,
98  const int *const ntcabs);
99 
100 /*-----------------------------------------------------------------------------
101  * uialcl
102  *
103  * Fortran Interface:
104  *
105  * SUBROUTINE UIALCL
106  * *****************
107  *
108  *
109  * parameters:
110  * nfabor --> Number of boundary faces
111  * nozppm --> Max number of boundary conditions zone
112  * ialtyb --> ialtyb
113  * ipnfbr --> First node position for each boundary in nodfbr
114  * nnod --> number of node
115  * nodfbr --> uialcl_fixed_displacement
116  * impale --> uialcl_fixed_displacement
117  * depale --> See uialcl_fixed_displacement
118  * dtref --> time step
119  * ttcabs --> current time
120  * ntcabs --> current iteration number
121  * iuma --> See uialcl_fixed_velocity
122  * ivma --> See uialcl_fixed_velocity
123  * iwma --> See uialcl_fixed_velocity
124  * rcodcl --> See uialcl_fixed_velocity
125  *----------------------------------------------------------------------------*/
126 
127 void CS_PROCF (uialcl, UIALCL) ( const int *const nfabor,
128  const int *const nozppm,
129  const int *const ibfixe,
130  const int *const igliss,
131  const int *const ivimpo,
132  int *const ialtyb,
133  const int *const ipnfbr,
134  const int *const nodfbr,
135  int *const impale,
136  cs_real_3_t *depale,
137  double *const dtref,
138  double *const ttcabs,
139  const int *const ntcabs,
140  const int *const iuma,
141  const int *const ivma,
142  const int *const iwma,
143  double *const rcodcl );
144 
145 /*-----------------------------------------------------------------------------
146  * Retreive data for internal coupling. Called once at initialization
147  *
148  * Fortran Interface:
149  *
150  * SUBROUTINE UISTR1
151  * *****************
152  *
153  * parameters:
154  * nfabor --> Number of boundary faces
155  * idfstr --> Structure definition
156  * mbstru --> number of previous structures (-999 or by restart)
157  * aexxst <-- Displacement prediction alpha
158  * bexxst <-- Displacement prediction beta
159  * cfopre <-- Stress prediction alpha
160  * ihistr <-- Monitor point synchronisation
161  * xstr0 <-- Values of the initial displacement
162  * xstreq <-- Values of the equilibrium displacement
163  * vstr0 <-- Values of the initial velocity
164  *----------------------------------------------------------------------------*/
165 
166 void CS_PROCF (uistr1, UISTR1) (const cs_lnum_t *nfabor,
167  cs_lnum_t *idfstr,
168  const int *mbstru,
169  double *aexxst,
170  double *bexxst,
171  double *cfopre,
172  int *ihistr,
173  double *xstr0,
174  double *xstreq,
175  double *vstr0);
176 
177 /*-----------------------------------------------------------------------------
178  * Retreive data for internal coupling. Called at each step
179  *
180  * Fortran Interface:
181  *
182  * SUBROUTINE UISTR2
183  * *****************
184  *
185  * parameters:
186  * xmstru <-- Mass matrix
187  * xcstr <-- Damping matrix
188  * xkstru <-- Stiffness matrix
189  * forstr <-- Fluid force matrix
190  * dtref --> time step
191  * ttcabs --> current time
192  * ntcabs --> current iteration number
193  *----------------------------------------------------------------------------*/
194 
195 void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
196  double *const xcstru,
197  double *const xkstru,
198  double *const forstr,
199  double *const dtref,
200  double *const ttcabs,
201  int *const ntcabs);
202 
203 /*=============================================================================
204  * Public function prototypes
205  *============================================================================*/
206 
207 /*-----------------------------------------------------------------------------
208  * Return the viscosity's type of ALE method
209  *
210  * parameters:
211  * type <-- type of viscosity's type
212  *----------------------------------------------------------------------------*/
213 
214 void
216 
217 /*----------------------------------------------------------------------------*/
218 
220 
221 #endif /* __CS_GUI_MOBILE_MESH_H__ */
void cs_gui_get_ale_viscosity_type(int *type)
Definition: cs_gui_mobile_mesh.c:172
#define BEGIN_C_DECLS
Definition: cs_defs.h:405
int cs_int_t
Fortran-compatible integer.
Definition: cs_defs.h:295
void uivima(const cs_int_t *const ncel, double *const viscmx, double *const viscmy, double *const viscmz, const double *const xyzcen, double *const dtref, double *const ttcabs, const int *const ntcabs)
Definition: cs_gui_mobile_mesh.c:806
void uialin(int *const iale, int *const nalinf, int *const nalimx, double *const epalim, int *const iortvm)
Definition: cs_gui_mobile_mesh.c:888
void uistr1(const cs_lnum_t *nfabor, cs_lnum_t *idfstr, const int *mbstru, double *aexxst, double *bexxst, double *cfopre, int *ihistr, double *xstr0, double *xstreq, double *vstr0)
Definition: cs_gui_mobile_mesh.c:1036
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:307
void uistr2(double *const xmstru, double *const xcstru, double *const xkstru, double *const forstr, double *const dtref, double *const ttcabs, int *const ntcabs)
Definition: cs_gui_mobile_mesh.c:1109
void uialcl(const int *const nfabor, const int *const nozppm, const int *const ibfixe, const int *const igliss, const int *const ivimpo, int *const ialtyb, const int *const ipnfbr, const int *const nodfbr, int *const impale, cs_real_3_t *depale, double *const dtref, double *const ttcabs, const int *const ntcabs, const int *const iuma, const int *const ivma, const int *const iwma, double *const rcodcl)
Definition: cs_gui_mobile_mesh.c:946
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:292
#define END_C_DECLS
Definition: cs_defs.h:406
#define CS_PROCF(x, y)
Definition: cs_defs.h:419