My Project
programmer's 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-2019 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
66void 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
79void 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
99void 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
131void 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 * dtref <-- time step
155 * ttcabs <-- current time
156 * ntcabs <-- current iteration number
157 *----------------------------------------------------------------------------*/
158
159void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
160 double *const xcstru,
161 double *const xkstru,
162 double *const forstr,
163 double *const dtref,
164 double *const ttcabs,
165 int *const ntcabs);
166
167/*-----------------------------------------------------------------------------
168 * Retrieve data for external coupling
169 *
170 * parameters:
171 * nfabor <-- Number of boundary faces
172 * idfstr <-- Structure definition
173 * asddlf <-- Block of the DDL forces
174 *----------------------------------------------------------------------------*/
175
176void
177CS_PROCF(uiaste, UIASTE)(int *idfstr,
179
180/*=============================================================================
181 * Public function prototypes
182 *============================================================================*/
183
184/*-----------------------------------------------------------------------------
185 * Return the viscosity's type of ALE method
186 *
187 * parameters:
188 * type <-- type of viscosity's type
189 *----------------------------------------------------------------------------*/
190
191void
193
194/*----------------------------------------------------------------------------
195 * Mesh viscosity setting.
196 *----------------------------------------------------------------------------*/
197
198void
200
201/*----------------------------------------------------------------------------*/
209void
211
212/*----------------------------------------------------------------------------*/
220void
222 cs_real_t *vel);
223
224/*----------------------------------------------------------------------------*/
225
227
228#endif /* __CS_GUI_MOBILE_MESH_H__ */
#define BEGIN_C_DECLS
Definition cs_defs.h:467
double cs_real_t
Floating-point value.
Definition cs_defs.h:302
int cs_int_t
Fortran-compatible integer.
Definition cs_defs.h:301
#define CS_PROCF(x, y)
Definition cs_defs.h:481
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition cs_defs.h:315
#define END_C_DECLS
Definition cs_defs.h:468
int cs_lnum_t
local mesh entity id
Definition cs_defs.h:298
@ vel
Definition cs_field_pointer.h:68
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:836
void cs_gui_get_ale_viscosity_type(int *type)
Definition cs_gui_mobile_mesh.c:1048
void uialin(int *nalinf, int *nalimx, double *epalim)
Definition cs_gui_mobile_mesh.c:655
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:732
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:1125
void uiaste(int *idfstr, cs_int_t *asddlf)
Definition cs_gui_mobile_mesh.c:982
void uialvm(void)
Definition cs_gui_mobile_mesh.c:693
void cs_gui_mesh_viscosity(void)
Definition cs_gui_mobile_mesh.c:1062
void uistr2(double *const xmstru, double *const xcstru, double *const xkstru, double *const forstr, double *const dtref, double *const ttcabs, int *const ntcabs)
Definition cs_gui_mobile_mesh.c:924
void cs_gui_mobile_mesh_get_fixed_velocity(const char *label, cs_real_t *vel)
Return the fixed velocity for a boundary.
integer, save nalinf
the number of sub-iterations of initialization of the fluid
Definition albase.f90:47
double precision, save epalim
relative precision of implicitation of the structure displacement
Definition albase.f90:51
integer, dimension(:), allocatable impale
indicator of imposed displacement
Definition albase.f90:56
integer, save nalimx
maximum number of implicitation iterations of the structure displacement
Definition albase.f90:49
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 precision, dimension(3, 3, nstrmx), save xmstru
mass matrix of the structure (kg) (for xmstru(i,j,k), i and j are the array of mass structure and k i...
Definition alstru.f90:48
double precision, save bexxst
coefficient for the predicted displacement
Definition alstru.f90:98
double precision, dimension(3, nstrmx), save xstreq
equilibrum position of a structure (m)
Definition alstru.f90:67
double precision, dimension(3, 3, nstrmx), save xcstru
damping matric coefficient of the structure (kg/s)
Definition alstru.f90:51
double precision, dimension(3, 3, nstrmx), save xkstru
spring matrix constant of the structure (kg/s2 = N/m)
Definition alstru.f90:54
double precision, dimension(3, nstrmx), save forstr
force vector acting on the structure (N)
Definition alstru.f90:82
double precision, save cfopre
coefficient for the predicted force
Definition alstru.f90:101
double precision, save aexxst
coefficient for the predicted displacement
Definition alstru.f90:95
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
integer, save ihistr
write indicator (O or 1) for history of internal mobile structures
Definition entsor.f90:165
integer, save iwma
mesh velocity component
Definition numvar.f90:159
integer, save ivma
mesh velocity component
Definition numvar.f90:155
integer, save iuma
mesh velocity component
Definition numvar.f90:151
integer igliss
boundary condition type for mesh velocity in ALE: sliding wall
Definition paramx.f90:319
integer ifresf
if itypfb=ifresf: free surface for mobile mesh boundary condition
Definition paramx.f90:190
integer ibfixe
boundary condition type for mesh velocity in ALE: fixed wall
Definition paramx.f90:315
integer ivimpo
boundary condition type for mesh velocity in ALE: imposed velocity.
Definition paramx.f90:333
real(c_double), pointer, save dtref
Reference time step.
Definition optcal.f90:443
integer(c_int), pointer, save ntcabs
Current absolute time step number. In case of restart, this is equal to ntpabs + number of new iterat...
Definition optcal.f90:366
real(c_double), pointer, save ttcabs
Current absolute time.
Definition optcal.f90:400
integer, dimension(3, nastmx), save asddlf
Definition alaste.f90:49
Structure storing the main features of the computational domain and pointers to the main geometrical ...
Definition cs_domain.h:87