7.3
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 <-> 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  * Retrieve data for internal coupling. Called once at initialization
90  *
91  * Fortran Interface:
92  *
93  * subroutine uistr1
94  * *****************
95  *
96  * parameters:
97  * idfstr --> Structure definition
98  * mbstru <-- number of previous structures (-999 or by restart)
99  * aexxst --> Displacement prediction alpha
100  * bexxst --> Displacement prediction beta
101  * cfopre --> Stress prediction alpha
102  * ihistr --> Monitor point synchronisation
103  * xstr0 <-> Values of the initial displacement
104  * xstreq <-> Values of the equilibrium displacement
105  * vstr0 <-> Values of the initial velocity
106  *----------------------------------------------------------------------------*/
107 
108 void CS_PROCF (uistr1, UISTR1) (cs_lnum_t *idfstr,
109  const int *mbstru,
110  double *aexxst,
111  double *bexxst,
112  double *cfopre,
113  int *ihistr,
114  double *xstr0,
115  double *xstreq,
116  double *vstr0);
117 
118 /*-----------------------------------------------------------------------------
119  * Retrieve data for internal coupling. Called at each step
120  *
121  * Fortran Interface:
122  *
123  * SUBROUTINE UISTR2
124  * *****************
125  *
126  * parameters:
127  * xmstru --> Mass matrix
128  * xcstr --> Damping matrix
129  * xkstru --> Stiffness matrix
130  * forstr --> Fluid force matrix
131  *----------------------------------------------------------------------------*/
132 
133 void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
134  double *const xcstru,
135  double *const xkstru,
136  double *const forstr);
137 
138 /*-----------------------------------------------------------------------------
139  * Retrieve data for external coupling
140  *
141  * parameters:
142  * nfabor <-- Number of boundary faces
143  * idfstr <-- Structure definition
144  *----------------------------------------------------------------------------*/
145 
146 void
147 CS_PROCF(uiaste, UIASTE)(int *idfstr);
148 
149 /*=============================================================================
150  * Public function prototypes
151  *============================================================================*/
152 
153 /*-----------------------------------------------------------------------------
154  * Return the viscosity's type of ALE method
155  *
156  * parameters:
157  * type <-- type of viscosity's type
158  *----------------------------------------------------------------------------*/
159 
160 void
162 
163 /*----------------------------------------------------------------------------
164  * Set ALE diffusion type from GUI.
165  *----------------------------------------------------------------------------*/
166 
167 void
169 
170 /*----------------------------------------------------------------------------
171  * Mesh viscosity setting.
172  *----------------------------------------------------------------------------*/
173 
174 void
176 
177 /*----------------------------------------------------------------------------*/
184 /*----------------------------------------------------------------------------*/
185 
186 void
188 
189 /*----------------------------------------------------------------------------*/
197 /*----------------------------------------------------------------------------*/
198 
199 cs_real_t *
201 
202 /*-----------------------------------------------------------------------------
203  * Retrieve structure id associated to faces for external coupling
204  *
205  * parameters:
206  * idfstr <-- Structure definition
207  *----------------------------------------------------------------------------*/
208 
209 void
211 
212 /*----------------------------------------------------------------------------*/
213 
215 
216 #endif /* __CS_GUI_MOBILE_MESH_H__ */
void uialin(int *nalinf, int *nalimx, double *epalim)
Definition: cs_gui_mobile_mesh.c:436
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:704
void uiaste(int *idfstr)
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:861
#define BEGIN_C_DECLS
Definition: cs_defs.h:512
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:779
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
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
double precision, dimension(3, 3, nstrmx), save xkstru
Definition: alstru.f90:54
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:564
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
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
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:513
void uialcl(int *const ialtyb, int *const impale, cs_real_3_t *disale)
Definition: cs_gui_mobile_mesh.c:487
double precision, save bexxst
coefficient for the predicted displacement
Definition: alstru.f90:98
void cs_gui_mesh_viscosity(void)
Definition: cs_gui_mobile_mesh.c:749
#define CS_PROCF(x, y)
Definition: cs_defs.h:526
void cs_gui_mobile_mesh_bc_external_structures(int *idfstr)
Definition: cs_gui_mobile_mesh.c:911
void cs_gui_ale_diffusion_type(void)
Definition: cs_gui_mobile_mesh.c:718
char * label
Definition: keywords.h:71
void uistr2(double *const xmstru, double *const xcstru, double *const xkstru, double *const forstr)
Definition: cs_gui_mobile_mesh.c:649
double precision, dimension(3, nstrmx), save xstreq
Definition: alstru.f90:67
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