7.2
general 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-2022 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 #include "cs_domain.h"
36 
37 /*----------------------------------------------------------------------------*/
38 
40 
41 /*============================================================================
42  * Type definitions
43  *============================================================================*/
44 
45 /*============================================================================
46  * Public function prototypes for Fortran API
47  *============================================================================*/
48 
49 /*----------------------------------------------------------------------------
50  * ALE method.
51  *
52  * Fortran Interface:
53  *
54  * SUBROUTINE UIALIN()
55  * *****************
56  *
57  * nalinf <-> number of subiterations of initialization of
58  * fluid
59  * nalimx <-> max number of iterations of implicitation of
60  * the displacement of the structures
61  * epalim <-> realtive precision of implicitation of
62  * the displacement of the structures
63  *
64  *----------------------------------------------------------------------------*/
65 
66 void CS_PROCF (uialin, UIALIN) (int *nalinf,
67  int *nalimx,
68  double *epalim);
69 
70 /*----------------------------------------------------------------------------
71  * ALE diffusion type
72  *
73  * Fortran Interface:
74  *
75  * SUBROUTINE UIALVM
76  * *****************
77  *----------------------------------------------------------------------------*/
78 
79 void CS_PROCF (uialvm, UIALVM) (void);
80 
81 /*-----------------------------------------------------------------------------
82  * uialcl
83  *
84  * Fortran Interface:
85  *
86  * SUBROUTINE UIALCL
87  * *****************
88  *
89  * parameters:
90  * ialtyb --> ialtyb
91  * impale --> uialcl_fixed_displacement
92  * disale --> See uialcl_fixed_displacement
93  * iuma <-- See uialcl_fixed_velocity
94  * ivma <-- See uialcl_fixed_velocity
95  * iwma <-- See uialcl_fixed_velocity
96  * rcodcl --> See uialcl_fixed_velocity
97  *----------------------------------------------------------------------------*/
98 
99 void CS_PROCF (uialcl, UIALCL) (const int *const ibfixe,
100  const int *const igliss,
101  const int *const ivimpo,
102  const int *const ifresf,
103  int *const ialtyb,
104  int *const impale,
105  cs_real_3_t *disale,
106  const int *const iuma,
107  const int *const ivma,
108  const int *const iwma,
109  double *const rcodcl);
110 
111 /*-----------------------------------------------------------------------------
112  * Retrieve data for internal coupling. Called once at initialization
113  *
114  * Fortran Interface:
115  *
116  * subroutine uistr1
117  * *****************
118  *
119  * parameters:
120  * idfstr --> Structure definition
121  * mbstru <-- number of previous structures (-999 or by restart)
122  * aexxst --> Displacement prediction alpha
123  * bexxst --> Displacement prediction beta
124  * cfopre --> Stress prediction alpha
125  * ihistr --> Monitor point synchronisation
126  * xstr0 <-> Values of the initial displacement
127  * xstreq <-> Values of the equilibrium displacement
128  * vstr0 <-> Values of the initial velocity
129  *----------------------------------------------------------------------------*/
130 
131 void CS_PROCF (uistr1, UISTR1) (cs_lnum_t *idfstr,
132  const int *mbstru,
133  double *aexxst,
134  double *bexxst,
135  double *cfopre,
136  int *ihistr,
137  double *xstr0,
138  double *xstreq,
139  double *vstr0);
140 
141 /*-----------------------------------------------------------------------------
142  * Retrieve data for internal coupling. Called at each step
143  *
144  * Fortran Interface:
145  *
146  * SUBROUTINE UISTR2
147  * *****************
148  *
149  * parameters:
150  * xmstru --> Mass matrix
151  * xcstr --> Damping matrix
152  * xkstru --> Stiffness matrix
153  * forstr --> Fluid force matrix
154  *----------------------------------------------------------------------------*/
155 
156 void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
157  double *const xcstru,
158  double *const xkstru,
159  double *const forstr);
160 
161 /*-----------------------------------------------------------------------------
162  * Retrieve data for external coupling
163  *
164  * parameters:
165  * nfabor <-- Number of boundary faces
166  * idfstr <-- Structure definition
167  * asddlf <-- Block of the DDL forces
168  *----------------------------------------------------------------------------*/
169 
170 void
171 CS_PROCF(uiaste, UIASTE)(int *idfstr,
172  int *asddlf);
173 
174 /*=============================================================================
175  * Public function prototypes
176  *============================================================================*/
177 
178 /*-----------------------------------------------------------------------------
179  * Return the viscosity's type of ALE method
180  *
181  * parameters:
182  * type <-- type of viscosity's type
183  *----------------------------------------------------------------------------*/
184 
185 void
187 
188 /*----------------------------------------------------------------------------
189  * Mesh viscosity setting.
190  *----------------------------------------------------------------------------*/
191 
192 void
194 
195 /*----------------------------------------------------------------------------*/
202 /*----------------------------------------------------------------------------*/
203 
204 void
206 
207 /*----------------------------------------------------------------------------*/
215 /*----------------------------------------------------------------------------*/
216 
217 cs_real_t *
219 
220 /*----------------------------------------------------------------------------*/
221 
223 
224 #endif /* __CS_GUI_MOBILE_MESH_H__ */
void uialin(int *nalinf, int *nalimx, double *epalim)
Definition: cs_gui_mobile_mesh.c:477
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:844
integer, save nalinf
the number of sub-iterations of initialization of the fluid
Definition: albase.f90:47
cs_real_t * cs_gui_mobile_mesh_get_fixed_velocity(const char *label)
Return the fixed velocity for a boundary.
Definition: cs_gui_mobile_mesh.c:941
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
double precision, save epalim
relative precision of implicitation of the structure displacement
Definition: albase.f90:51
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
void cs_gui_mobile_mesh_get_boundaries(cs_domain_t *domain)
Translate the user settings for the domain boundaries into a structure storing the ALE boundaries (Ne...
Definition: cs_gui_mobile_mesh.c:889
integer, dimension(:), allocatable ialtyb
defines the mesh velocity from the color of the boundary faces, or more generally from their properti...
Definition: albase.f90:61
integer, save ivma
Definition: numvar.f90:155
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
double precision, dimension(3, 3, nstrmx), save xkstru
Definition: alstru.f90:54
integer, save iuma
Definition: numvar.f90:151
integer, save iwma
Definition: numvar.f90:159
integer ifresf
Definition: paramx.f90:190
void uiaste(int *idfstr, int *asddlf)
Definition: cs_gui_mobile_mesh.c:781
void uialvm(void)
Definition: cs_gui_mobile_mesh.c:515
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:644
double precision, save cfopre
coefficient for the predicted force
Definition: alstru.f90:101
Structure storing the main features of the computational domain and pointers to the main geometrical ...
Definition: cs_domain.h:140
integer ivimpo
Definition: paramx.f90:333
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:335
double precision, dimension(3, nstrmx), save forstr
Definition: alstru.f90:82
integer, dimension(:), allocatable impale
indicator of imposed displacement
Definition: albase.f90:56
integer igliss
Definition: paramx.f90:319
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:316
integer, save nalimx
maximum number of implicitation iterations of the structure displacement
Definition: albase.f90:49
#define END_C_DECLS
Definition: cs_defs.h:511
double precision, save bexxst
coefficient for the predicted displacement
Definition: alstru.f90:98
integer, dimension(3, nastmx), save asddlf
Definition: alaste.f90:49
void cs_gui_mesh_viscosity(void)
Definition: cs_gui_mobile_mesh.c:858
#define CS_PROCF(x, y)
Definition: cs_defs.h:524
char * label
Definition: keywords.h:71
integer ibfixe
Definition: paramx.f90:315
void uistr2(double *const xmstru, double *const xcstru, double *const xkstru, double *const forstr)
Definition: cs_gui_mobile_mesh.c:729
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:554
integer, save ihistr
write indicator (O or 1) for history of internal mobile structures
Definition: entsor.f90:124
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:112