8.0
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-2023 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 <-> relative 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  * uialcl
72  *
73  * Fortran Interface:
74  *
75  * SUBROUTINE UIALCL
76  * *****************
77  *
78  * parameters:
79  * ialtyb --> ialtyb
80  * impale --> uialcl_fixed_displacement
81  * disale --> See uialcl_fixed_displacement
82  *----------------------------------------------------------------------------*/
83 
84 void CS_PROCF (uialcl, UIALCL) (int *const ialtyb,
85  int *const impale,
86  cs_real_3_t *disale);
87 
88 
89 /*-----------------------------------------------------------------------------
90  * Retrieve data for external coupling
91  *
92  * parameters:
93  * nfabor <-- Number of boundary faces
94  * idfstr <-- Structure definition
95  *----------------------------------------------------------------------------*/
96 
97 void
98 CS_PROCF(uiaste, UIASTE)(int *idfstr);
99 
100 /*=============================================================================
101  * Public function prototypes
102  *============================================================================*/
103 
104 /*-----------------------------------------------------------------------------
105  * Return the viscosity's type of ALE method
106  *
107  * parameters:
108  * type <-- type of viscosity's type
109  *----------------------------------------------------------------------------*/
110 
111 void
113 
114 /*----------------------------------------------------------------------------
115  * Set ALE diffusion type from GUI.
116  *----------------------------------------------------------------------------*/
117 
118 void
120 
121 /*----------------------------------------------------------------------------
122  * Mesh viscosity setting.
123  *----------------------------------------------------------------------------*/
124 
125 void
127 
128 /*----------------------------------------------------------------------------*/
135 /*----------------------------------------------------------------------------*/
136 
137 void
139 
140 /*----------------------------------------------------------------------------*/
148 /*----------------------------------------------------------------------------*/
149 
150 cs_real_t *
152 
153 /*----------------------------------------------------------------------------*/
157 /*----------------------------------------------------------------------------*/
158 
159 void
161 
162 /*-----------------------------------------------------------------------------
163  * Retrieve data for internal coupling. Called once at initialization
164  *
165  * parameters:
166  * mbstru <-- number of previous structures (-999 or by restart)
167  * aexxst --> Displacement prediction alpha
168  * bexxst --> Displacement prediction beta
169  * cfopre --> Stress prediction alpha
170  * ihistr --> Monitor point synchronisation
171  * xstr0 <-> Values of the initial displacement
172  * xstreq <-> Values of the equilibrium displacement
173  * vstr0 <-> Values of the initial velocity
174  *----------------------------------------------------------------------------*/
175 
176 void
178  double *aexxst,
179  double *bexxst,
180  double *cfopre,
181  int *ihistr,
182  double *xstr0,
183  double *xstreq,
184  double *vstr0);
185 
186 /*-----------------------------------------------------------------------------
187  * Retrieve data for internal coupling. Called at each step
188  *
189  * parameters:
190  * xmstru --> Mass matrix
191  * xcstr --> Damping matrix
192  * xkstru --> Stiffness matrix
193  * forstr --> Fluid force matrix
194  *----------------------------------------------------------------------------*/
195 
196 void
198  cs_real_t xcstru[][3][3],
199  cs_real_t xkstru[][3][3],
200  cs_real_t forstr[][3]);
201 
202 /*-----------------------------------------------------------------------------
203  * Retrieve structure id associated to faces for structure coupling
204  *
205  * parameters:
206  * idfstr <-- structure number associated to each boundary face.
207  *----------------------------------------------------------------------------*/
208 
209 void
211 
212 /*----------------------------------------------------------------------------*/
213 
215 
216 #endif /* __CS_GUI_MOBILE_MESH_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:509
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
#define CS_PROCF(x, y)
Definition: cs_defs.h:523
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:332
#define END_C_DECLS
Definition: cs_defs.h:510
void cs_gui_get_ale_viscosity_type(int *type)
Definition: cs_gui_mobile_mesh.c:572
void uialin(int *nalinf, int *nalimx, double *epalim)
Definition: cs_gui_mobile_mesh.c:447
void uiaste(int *idfstr)
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:735
void cs_gui_mobile_mesh_internal_structures(cs_real_t xmstru[][3][3], cs_real_t xcstru[][3][3], cs_real_t xkstru[][3][3], cs_real_t forstr[][3])
Definition: cs_gui_mobile_mesh.c:914
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:653
void cs_gui_ale_diffusion_type(void)
Definition: cs_gui_mobile_mesh.c:586
void cs_gui_mobile_mesh_init_structures(int mbstru, double *aexxst, double *bexxst, double *cfopre, int *ihistr, double *xstr0, double *xstreq, double *vstr0)
Definition: cs_gui_mobile_mesh.c:837
void cs_gui_mobile_mesh_bc_structures(int *idfstr)
Definition: cs_gui_mobile_mesh.c:965
void cs_gui_mesh_viscosity(void)
Definition: cs_gui_mobile_mesh.c:617
void uialcl(int *const ialtyb, int *const impale, cs_real_3_t *disale)
Definition: cs_gui_mobile_mesh.c:498
void cs_gui_mobile_mesh_structures_add(void)
Add mobile structures based on GUI BC definitions.
Definition: cs_gui_mobile_mesh.c:789
integer(c_int), save nalimx
maximum number of implicitation iterations of the structure displacement
Definition: albase.f90:49
integer, dimension(:), allocatable impale
indicator of imposed displacement
Definition: albase.f90:61
real(c_double), save epalim
relative precision of implicitation of the structure displacement
Definition: albase.f90:51
integer, dimension(:), allocatable ialtyb
defines the mesh velocity from the color of the boundary faces, or more generally from their properti...
Definition: albase.f90:66
integer(c_int), save nalinf
the number of sub-iterations of initialization of the fluid
Definition: albase.f90:47
char * label
Definition: keywords.h:71
Structure storing the main features of the computational domain and pointers to the main geometrical ...
Definition: cs_domain.h:138