8.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-2024 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 fluid
58  * nalimx <-> max number of iterations of implicitation of
59  * the displacement of the structures
60  * epalim <-> relative precision of implicitation of
61  * the displacement of the structures
62  *
63  *----------------------------------------------------------------------------*/
64 
65 void CS_PROCF (uialin, UIALIN) (int *nalinf,
66  int *nalimx,
67  double *epalim);
68 
69 /*-----------------------------------------------------------------------------
70  * Retrieve data for external coupling
71  *
72  * parameters:
73  * nfabor <-- Number of boundary faces
74  * idfstr <-- Structure definition
75  *----------------------------------------------------------------------------*/
76 
77 void
78 CS_PROCF(uiaste, UIASTE)(int *idfstr);
79 
80 /*=============================================================================
81  * Public function prototypes
82  *============================================================================*/
83 
84 /*-----------------------------------------------------------------------------
85  * Return the viscosity's type of ALE method
86  *
87  * parameters:
88  * type <-- type of viscosity's type
89  *----------------------------------------------------------------------------*/
90 
91 void
93 
94 /*----------------------------------------------------------------------------
95  * Set ALE diffusion type from GUI.
96  *----------------------------------------------------------------------------*/
97 
98 void
100 
101 /*----------------------------------------------------------------------------
102  * Mesh viscosity setting.
103  *----------------------------------------------------------------------------*/
104 
105 void
107 
108 /*----------------------------------------------------------------------------*/
109 /*
110  * \brief Translate the user settings for the domain boundaries into a
111  * structure storing the ALE boundaries (New mechanism used in CDO)
112  *
113  * \param[in, out] domain pointer to a \ref cs_domain_t structure
114  */
115 /*----------------------------------------------------------------------------*/
116 
117 void
119 
120 /*----------------------------------------------------------------------------*/
121 /*
122  * \brief Set mobile mesh boundary conditions based on setup.
123  *
124  * \param[in] ialtyb ALE BC type, per boundary face
125  * \param[in] impale fixed displacement indicator
126  * \param[out] disale fixed displacement, where indicated
127  */
128 /*----------------------------------------------------------------------------*/
129 
130 void
132  int *const impale,
133  cs_real_3_t *disale);
134 
135 /*----------------------------------------------------------------------------*/
136 /*
137  * \brief Return the fixed velocity for a boundary
138  *
139  * \param[in] label boundary condition label
140  *
141  * \return a pointer to an array of cs_real_t values
142  */
143 /*----------------------------------------------------------------------------*/
144 
145 cs_real_t *
147 
148 /*----------------------------------------------------------------------------*/
149 /*
150  * \brief Add mobile structures based on GUI BC definitions.
151  */
152 /*----------------------------------------------------------------------------*/
153 
154 void
156 
157 /*-----------------------------------------------------------------------------
158  * Retrieve data for internal coupling. Called once at initialization
159  *
160  * parameters:
161  * mbstru <-- number of previous structures (-999 or by restart)
162  * aexxst --> Displacement prediction alpha
163  * bexxst --> Displacement prediction beta
164  * cfopre --> Stress prediction alpha
165  * ihistr --> Monitor point synchronisation
166  * xstr0 <-> Values of the initial displacement
167  * xstreq <-> Values of the equilibrium displacement
168  * vstr0 <-> Values of the initial velocity
169  *----------------------------------------------------------------------------*/
170 
171 void
173  double *aexxst,
174  double *bexxst,
175  double *cfopre,
176  int *ihistr,
177  double *xstr0,
178  double *xstreq,
179  double *vstr0);
180 
181 /*-----------------------------------------------------------------------------
182  * Retrieve data for internal coupling. Called at each step
183  *
184  * parameters:
185  * xmstru --> Mass matrix
186  * xcstr --> Damping matrix
187  * xkstru --> Stiffness matrix
188  * forstr --> Fluid force matrix
189  *----------------------------------------------------------------------------*/
190 
191 void
193  cs_real_t xcstru[][3][3],
194  cs_real_t xkstru[][3][3],
195  cs_real_t forstr[][3]);
196 
197 /*-----------------------------------------------------------------------------
198  * Retrieve structure id associated to faces for structure coupling
199  *
200  * parameters:
201  * idfstr <-- structure number associated to each boundary face.
202  *----------------------------------------------------------------------------*/
203 
204 void
206 
207 /*----------------------------------------------------------------------------*/
208 
210 
211 #endif /* __CS_GUI_MOBILE_MESH_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:528
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
#define CS_PROCF(x, y)
Definition: cs_defs.h:560
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:347
#define END_C_DECLS
Definition: cs_defs.h:529
void cs_gui_get_ale_viscosity_type(int *type)
Definition: cs_gui_mobile_mesh.c:509
void uialin(int *nalinf, int *nalimx, double *epalim)
Definition: cs_gui_mobile_mesh.c:454
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:743
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:926
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:588
void cs_gui_ale_diffusion_type(void)
Definition: cs_gui_mobile_mesh.c:523
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:849
void cs_gui_mobile_mesh_bc_structures(int *idfstr)
Definition: cs_gui_mobile_mesh.c:977
void cs_gui_mesh_viscosity(void)
Definition: cs_gui_mobile_mesh.c:551
void cs_gui_mobile_mesh_structures_add(void)
Add mobile structures based on GUI BC definitions.
Definition: cs_gui_mobile_mesh.c:801
void cs_gui_mobile_mesh_boundary_conditions(int *const ialtyb, int *const impale, cs_real_3_t *disale)
Set mobile mesh boundary conditions based on setup.
Definition: cs_gui_mobile_mesh.c:670
integer(c_int), save nalimx
maximum number of implicitation iterations of the structure displacement
Definition: albase.f90:49
real(c_double), save epalim
relative precision of implicitation of the structure displacement
Definition: albase.f90:51
integer(c_int), save nalinf
the number of sub-iterations of initialization of the fluid
Definition: albase.f90:47
char * label
Definition: keywords.h:58
Structure storing the main features of the computational domain and pointers to the main geometrical ...
Definition: cs_domain.h:138