8.2
general documentation
Loading...
Searching...
No Matches
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
65void 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
77void
78CS_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
91void
93
94/*----------------------------------------------------------------------------
95 * Set ALE diffusion type from GUI.
96 *----------------------------------------------------------------------------*/
97
98void
100
101/*----------------------------------------------------------------------------
102 * Mesh viscosity setting.
103 *----------------------------------------------------------------------------*/
104
105void
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
117void
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
130void
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
145cs_real_t *
147
148/*----------------------------------------------------------------------------*/
149/*
150 * \brief Add mobile structures based on GUI BC definitions.
151 */
152/*----------------------------------------------------------------------------*/
153
154void
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
171void
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
191void
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
204void
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
#define END_C_DECLS
Definition cs_defs.h:529
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition cs_defs.h:347
void uialin(int *nalinf, int *nalimx, double *epalim)
Definition cs_gui_mobile_mesh.c:454
void cs_gui_get_ale_viscosity_type(int *type)
Definition cs_gui_mobile_mesh.c:509
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 uiaste(int *idfstr)
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