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-2018 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 
82 void CS_PROCF (uivima, UIVIMA) (void);
83 
84 /*-----------------------------------------------------------------------------
85  * uialcl
86  *
87  * Fortran Interface:
88  *
89  * SUBROUTINE UIALCL
90  * *****************
91  *
92  * parameters:
93  * ialtyb --> ialtyb
94  * impale --> uialcl_fixed_displacement
95  * disale --> See uialcl_fixed_displacement
96  * iuma <-- See uialcl_fixed_velocity
97  * ivma <-- See uialcl_fixed_velocity
98  * iwma <-- See uialcl_fixed_velocity
99  * rcodcl --> See uialcl_fixed_velocity
100  *----------------------------------------------------------------------------*/
101 
102 void CS_PROCF (uialcl, UIALCL) (const int *const ibfixe,
103  const int *const igliss,
104  const int *const ivimpo,
105  const int *const ifresf,
106  int *const ialtyb,
107  int *const impale,
108  cs_real_3_t *disale,
109  const int *const iuma,
110  const int *const ivma,
111  const int *const iwma,
112  double *const rcodcl);
113 
114 /*-----------------------------------------------------------------------------
115  * Retreive data for internal coupling. Called once at initialization
116  *
117  * Fortran Interface:
118  *
119  * subroutine uistr1
120  * *****************
121  *
122  * parameters:
123  * idfstr --> Structure definition
124  * mbstru <-- number of previous structures (-999 or by restart)
125  * aexxst --> Displacement prediction alpha
126  * bexxst --> Displacement prediction beta
127  * cfopre --> Stress prediction alpha
128  * ihistr --> Monitor point synchronisation
129  * xstr0 <-> Values of the initial displacement
130  * xstreq <-> Values of the equilibrium displacement
131  * vstr0 <-> Values of the initial velocity
132  *----------------------------------------------------------------------------*/
133 
134 void CS_PROCF (uistr1, UISTR1) (cs_lnum_t *idfstr,
135  const int *mbstru,
136  double *aexxst,
137  double *bexxst,
138  double *cfopre,
139  int *ihistr,
140  double *xstr0,
141  double *xstreq,
142  double *vstr0);
143 
144 /*-----------------------------------------------------------------------------
145  * Retreive data for internal coupling. Called at each step
146  *
147  * Fortran Interface:
148  *
149  * SUBROUTINE UISTR2
150  * *****************
151  *
152  * parameters:
153  * xmstru --> Mass matrix
154  * xcstr --> Damping matrix
155  * xkstru --> Stiffness matrix
156  * forstr --> Fluid force matrix
157  * dtref <-- time step
158  * ttcabs <-- current time
159  * ntcabs <-- current iteration number
160  *----------------------------------------------------------------------------*/
161 
162 void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
163  double *const xcstru,
164  double *const xkstru,
165  double *const forstr,
166  double *const dtref,
167  double *const ttcabs,
168  int *const ntcabs);
169 
170 /*-----------------------------------------------------------------------------
171  * Retreive data for external coupling
172  *
173  * parameters:
174  * nfabor <-- Number of boundary faces
175  * idfstr <-- Structure definition
176  * asddlf <-- Block of the DDL forces
177  *----------------------------------------------------------------------------*/
178 
179 void
180 CS_PROCF(uiaste, UIASTE)(int *idfstr,
181  cs_int_t *asddlf);
182 
183 /*=============================================================================
184  * Public function prototypes
185  *============================================================================*/
186 
187 /*-----------------------------------------------------------------------------
188  * Return the viscosity's type of ALE method
189  *
190  * parameters:
191  * type <-- type of viscosity's type
192  *----------------------------------------------------------------------------*/
193 
194 void
196 
197 /*----------------------------------------------------------------------------*/
198 
200 
201 #endif /* __CS_GUI_MOBILE_MESH_H__ */
double precision, dimension(3, 3, nstrmx), save xcstru
Definition: alstru.f90:51
void cs_gui_get_ale_viscosity_type(int *type)
Definition: cs_gui_mobile_mesh.c:1259
real(c_double), pointer, save dtref
Reference time step.
Definition: optcal.f90:545
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:451
int cs_int_t
Fortran-compatible integer.
Definition: cs_defs.h:296
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, 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, save ivma
Definition: numvar.f90:155
double precision, dimension(3, 3, nstrmx), save xkstru
Definition: alstru.f90:54
real(c_double), pointer, save ttcabs
Current absolute time.
Definition: optcal.f90:491
integer, save iuma
Definition: numvar.f90:151
void uivima(void)
Definition: cs_gui_mobile_mesh.c:849
void uialin(int *const iale, int *const nalinf, int *const nalimx, double *const epalim, int *const iortvm)
Definition: cs_gui_mobile_mesh.c:930
integer, save iwma
Definition: numvar.f90:159
void uiaste(int *idfstr, cs_int_t *asddlf)
Definition: cs_gui_mobile_mesh.c:1208
integer ifresf
Definition: paramx.f90:190
integer, save iale
Activates (=1) or not (=0), activate the ALE module.
Definition: albase.f90:40
void uistr1(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:1085
double precision, save cfopre
coefficient for the predicted force
Definition: alstru.f90:101
integer ivimpo
Definition: paramx.f90:333
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:309
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:1156
integer igliss
Definition: paramx.f90:319
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:293
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:452
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:459
integer, dimension(3, nastmx), save asddlf
Definition: alaste.f90:49
#define CS_PROCF(x, y)
Definition: cs_defs.h:465
integer ibfixe
Definition: paramx.f90:315
double precision, dimension(3, nstrmx), save xstreq
Definition: alstru.f90:67
void uialcl(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, const int *const iuma, const int *const ivma, const int *const iwma, double *const rcodcl)
Definition: cs_gui_mobile_mesh.c:981
integer, save ihistr
write indicator (O or 1) for history of internal mobile structures
Definition: entsor.f90:165
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:135