programmer's documentation
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-2015 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  * nozppm <-- Max number of boundary conditions zone
111  * ialtyb --> ialtyb
112  * impale --> uialcl_fixed_displacement
113  * disale --> See uialcl_fixed_displacement
114  * dtref <-- time step
115  * ttcabs <-- current time
116  * ntcabs <-- current iteration number
117  * iuma <-- See uialcl_fixed_velocity
118  * ivma <-- See uialcl_fixed_velocity
119  * iwma <-- See uialcl_fixed_velocity
120  * rcodcl --> See uialcl_fixed_velocity
121  *----------------------------------------------------------------------------*/
122 
123 void CS_PROCF (uialcl, UIALCL) ( const int *const nozppm,
124  const int *const ibfixe,
125  const int *const igliss,
126  const int *const ivimpo,
127  const int *const ifresf,
128  int *const ialtyb,
129  int *const impale,
130  cs_real_3_t *disale,
131  double *const dtref,
132  double *const ttcabs,
133  const int *const ntcabs,
134  const int *const iuma,
135  const int *const ivma,
136  const int *const iwma,
137  double *const rcodcl );
138 
139 /*-----------------------------------------------------------------------------
140  * Retreive data for internal coupling. Called once at initialization
141  *
142  * Fortran Interface:
143  *
144  * subroutine uistr1
145  * *****************
146  *
147  * parameters:
148  * nfabor <-- Number of boundary faces
149  * idfstr --> Structure definition
150  * mbstru <-- number of previous structures (-999 or by restart)
151  * aexxst --> Displacement prediction alpha
152  * bexxst --> Displacement prediction beta
153  * cfopre --> Stress prediction alpha
154  * ihistr --> Monitor point synchronisation
155  * xstr0 <-> Values of the initial displacement
156  * xstreq <-> Values of the equilibrium displacement
157  * vstr0 <-> Values of the initial velocity
158  *----------------------------------------------------------------------------*/
159 
160 void CS_PROCF (uistr1, UISTR1) (const cs_lnum_t *nfabor,
161  cs_lnum_t *idfstr,
162  const int *mbstru,
163  double *aexxst,
164  double *bexxst,
165  double *cfopre,
166  int *ihistr,
167  double *xstr0,
168  double *xstreq,
169  double *vstr0);
170 
171 /*-----------------------------------------------------------------------------
172  * Retreive data for internal coupling. Called at each step
173  *
174  * Fortran Interface:
175  *
176  * SUBROUTINE UISTR2
177  * *****************
178  *
179  * parameters:
180  * xmstru <-- Mass matrix
181  * xcstr <-- Damping matrix
182  * xkstru <-- Stiffness matrix
183  * forstr <-- Fluid force matrix
184  * dtref --> time step
185  * ttcabs --> current time
186  * ntcabs --> current iteration number
187  *----------------------------------------------------------------------------*/
188 
189 void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
190  double *const xcstru,
191  double *const xkstru,
192  double *const forstr,
193  double *const dtref,
194  double *const ttcabs,
195  int *const ntcabs);
196 
197 /*=============================================================================
198  * Public function prototypes
199  *============================================================================*/
200 
201 /*-----------------------------------------------------------------------------
202  * Return the viscosity's type of ALE method
203  *
204  * parameters:
205  * type <-- type of viscosity's type
206  *----------------------------------------------------------------------------*/
207 
208 void
210 
211 /*----------------------------------------------------------------------------*/
212 
214 
215 #endif /* __CS_GUI_MOBILE_MESH_H__ */
double precision, dimension(3, 3, nstrmx), save xcstru
Definition: alstru.f90:51
integer, save ncel
Definition: mesh.f90:50
void cs_gui_get_ale_viscosity_type(int *type)
Definition: cs_gui_mobile_mesh.c:1146
void uialcl(const int *const nozppm, const int *const ibfixe, const int *const igliss, const int *const ivimpo, const int *const ifresf, int *const ialtyb, int *const impale, cs_real_3_t *disale, 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:916
real(c_double), pointer, save dtref
reference time step
Definition: optcal.f90:440
integer, save nalinf
the number of sub-iterations of initialization of the fluid
Definition: albase.f90:42
integer, save iortvm
viscosity type of mesh : isotropic=0, orthotropic=1.
Definition: albase.f90:46
#define BEGIN_C_DECLS
Definition: cs_defs.h:419
int cs_int_t
Fortran-compatible integer.
Definition: cs_defs.h:295
double precision, save epalim
relative precision of implicitation of the structure displacement
Definition: albase.f90:48
double precision, save aexxst
coefficient for the predicted displacement
Definition: alstru.f90:95
double precision, dimension(3, 3, nstrmx), save xmstru
Definition: alstru.f90:48
integer, save nfabor
Definition: mesh.f90:58
integer, dimension(:), allocatable ialtyb
defines the mesh velocity from the color of the boundary faces, or more generally from their properti...
Definition: albase.f90:58
integer nozppm
maximum index of boundary zones
Definition: ppppar.f90:45
integer, save ivma
Definition: numvar.f90:149
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:777
double precision, dimension(3, 3, nstrmx), save xkstru
Definition: alstru.f90:54
real(c_double), pointer, save ttcabs
Current absolute time. In case of restart, this is equal to ttpabs + additional computed time...
Definition: optcal.f90:411
integer, save iuma
Definition: numvar.f90:145
double precision, dimension(:,:), pointer xyzcen
Definition: mesh.f90:114
void uialin(int *const iale, int *const nalinf, int *const nalimx, double *const epalim, int *const iortvm)
Definition: cs_gui_mobile_mesh.c:861
integer, save iwma
Definition: numvar.f90:153
integer ifresf
Definition: paramx.f90:215
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:1018
integer, save iale
Activates (=1) or not (=0), activate the ALE module.
Definition: albase.f90:40
double precision, save cfopre
coefficient for the predicted force
Definition: alstru.f90:101
integer ivimpo
Definition: paramx.f90:357
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:307
double precision, dimension(3, nstrmx), save forstr
Definition: alstru.f90:82
integer, dimension(:), allocatable impale
indicator of imposed displacement
Definition: albase.f90:53
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:1091
integer igliss
Definition: paramx.f90:343
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:292
integer, save nalimx
maximum number of imlicitation iterations of of the structure displacement
Definition: albase.f90:44
#define END_C_DECLS
Definition: cs_defs.h:420
double precision, save bexxst
coefficient for the predicted displacement
Definition: alstru.f90:98
integer(c_int), pointer, save ntcabs
Current absolute time step number. In case of restart, this is equal to ntpabs + number of new iterat...
Definition: optcal.f90:398
#define CS_PROCF(x, y)
Definition: cs_defs.h:443
integer ibfixe
Definition: paramx.f90:339
double precision, dimension(3, nstrmx), save xstreq
Definition: alstru.f90:67
integer, save ihistr
write indicator (O or 1) for history of internal mobile structures
Definition: entsor.f90:246
integer, dimension(:), allocatable idfstr
the index of the structure, (idfstr(ifac) where ifac is the index of the face), 0 if the face is not ...
Definition: pointe.f90:152