programmer's 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-2018 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 
36 /*----------------------------------------------------------------------------*/
37 
39 
40 /*============================================================================
41  * Type definitions
42  *============================================================================*/
43 
44 /*============================================================================
45  * Public function prototypes for Fortran API
46  *============================================================================*/
47 
48 /*----------------------------------------------------------------------------
49  * ALE method.
50  *
51  * Fortran Interface:
52  *
53  * SUBROUTINE UIALIN()
54  * *****************
55  *
56  * INTEGER IALE <-- iale method activation
57  * INTEGER NALINF <-- number of subiterations of initialization of
58  * fluid
59  * INTEGER NALIMX <-- max number of iterations of implicitation of
60  * the displacement of the structures
61  * DOUBLE EPALIM <-- realtive precision of implicitation of
62  * the displacement of the structures
63  *
64  *----------------------------------------------------------------------------*/
65 
66 void CS_PROCF (uialin, UIALIN) (int *const iale,
67  int *const nalinf,
68  int *const nalimx,
69  double *const epalim);
70 
71 /*----------------------------------------------------------------------------
72  * ALE diffusion type
73  *
74  * Fortran Interface:
75  *
76  * SUBROUTINE UIALVM
77  * *****************
78  *----------------------------------------------------------------------------*/
79 
80 void CS_PROCF (uialvm, UIALVM) ();
81 
82 /*-----------------------------------------------------------------------------
83  * uialcl
84  *
85  * Fortran Interface:
86  *
87  * SUBROUTINE UIALCL
88  * *****************
89  *
90  * parameters:
91  * ialtyb --> ialtyb
92  * impale --> uialcl_fixed_displacement
93  * disale --> See uialcl_fixed_displacement
94  * iuma <-- See uialcl_fixed_velocity
95  * ivma <-- See uialcl_fixed_velocity
96  * iwma <-- See uialcl_fixed_velocity
97  * rcodcl --> See uialcl_fixed_velocity
98  *----------------------------------------------------------------------------*/
99 
100 void CS_PROCF (uialcl, UIALCL) (const int *const ibfixe,
101  const int *const igliss,
102  const int *const ivimpo,
103  const int *const ifresf,
104  int *const ialtyb,
105  int *const impale,
106  cs_real_3_t *disale,
107  const int *const iuma,
108  const int *const ivma,
109  const int *const iwma,
110  double *const rcodcl);
111 
112 /*-----------------------------------------------------------------------------
113  * Retrieve data for internal coupling. Called once at initialization
114  *
115  * Fortran Interface:
116  *
117  * subroutine uistr1
118  * *****************
119  *
120  * parameters:
121  * idfstr --> Structure definition
122  * mbstru <-- number of previous structures (-999 or by restart)
123  * aexxst --> Displacement prediction alpha
124  * bexxst --> Displacement prediction beta
125  * cfopre --> Stress prediction alpha
126  * ihistr --> Monitor point synchronisation
127  * xstr0 <-> Values of the initial displacement
128  * xstreq <-> Values of the equilibrium displacement
129  * vstr0 <-> Values of the initial velocity
130  *----------------------------------------------------------------------------*/
131 
132 void CS_PROCF (uistr1, UISTR1) (cs_lnum_t *idfstr,
133  const int *mbstru,
134  double *aexxst,
135  double *bexxst,
136  double *cfopre,
137  int *ihistr,
138  double *xstr0,
139  double *xstreq,
140  double *vstr0);
141 
142 /*-----------------------------------------------------------------------------
143  * Retrieve data for internal coupling. Called at each step
144  *
145  * Fortran Interface:
146  *
147  * SUBROUTINE UISTR2
148  * *****************
149  *
150  * parameters:
151  * xmstru --> Mass matrix
152  * xcstr --> Damping matrix
153  * xkstru --> Stiffness matrix
154  * forstr --> Fluid force matrix
155  * dtref <-- time step
156  * ttcabs <-- current time
157  * ntcabs <-- current iteration number
158  *----------------------------------------------------------------------------*/
159 
160 void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
161  double *const xcstru,
162  double *const xkstru,
163  double *const forstr,
164  double *const dtref,
165  double *const ttcabs,
166  int *const ntcabs);
167 
168 /*-----------------------------------------------------------------------------
169  * Retrieve data for external coupling
170  *
171  * parameters:
172  * nfabor <-- Number of boundary faces
173  * idfstr <-- Structure definition
174  * asddlf <-- Block of the DDL forces
175  *----------------------------------------------------------------------------*/
176 
177 void
178 CS_PROCF(uiaste, UIASTE)(int *idfstr,
179  cs_int_t *asddlf);
180 
181 /*=============================================================================
182  * Public function prototypes
183  *============================================================================*/
184 
185 /*-----------------------------------------------------------------------------
186  * Return the viscosity's type of ALE method
187  *
188  * parameters:
189  * type <-- type of viscosity's type
190  *----------------------------------------------------------------------------*/
191 
192 void
194 
195 /*----------------------------------------------------------------------------
196  * Mesh viscosity setting.
197  *----------------------------------------------------------------------------*/
198 
199 void
201 
202 /*----------------------------------------------------------------------------*/
203 
205 
206 #endif /* __CS_GUI_MOBILE_MESH_H__ */
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:990
real(c_double), pointer, save dtref
Reference time step.
Definition: optcal.f90:480
integer, save nalinf
the number of sub-iterations of initialization of the fluid
Definition: albase.f90:42
#define BEGIN_C_DECLS
Definition: cs_defs.h:462
int cs_int_t
Fortran-compatible integer.
Definition: cs_defs.h:296
double precision, save epalim
relative precision of implicitation of the structure displacement
Definition: albase.f90:46
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
integer, dimension(:), allocatable ialtyb
defines the mesh velocity from the color of the boundary faces, or more generally from their properti...
Definition: albase.f90:56
integer, save ivma
Definition: numvar.f90:155
void uialvm()
Definition: cs_gui_mobile_mesh.c:627
double precision, dimension(3, 3, nstrmx), save xkstru
Definition: alstru.f90:54
real(c_double), pointer, save ttcabs
Current absolute time.
Definition: optcal.f90:426
integer, save iuma
Definition: numvar.f90:151
integer, save iwma
Definition: numvar.f90:159
void uiaste(int *idfstr, cs_int_t *asddlf)
Definition: cs_gui_mobile_mesh.c:924
integer ifresf
Definition: paramx.f90:190
integer, save iale
Activates (=1) or not (=0), activate the ALE module.
Definition: albase.f90:40
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:779
double precision, save cfopre
coefficient for the predicted force
Definition: alstru.f90:101
void uialin(int *const iale, int *const nalinf, int *const nalimx, double *const epalim)
Definition: cs_gui_mobile_mesh.c:588
integer ivimpo
Definition: paramx.f90:333
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:310
double precision, dimension(3, nstrmx), save forstr
Definition: alstru.f90:82
integer, dimension(:), allocatable impale
indicator of imposed displacement
Definition: albase.f90:51
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:867
integer igliss
Definition: paramx.f90:319
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:293
integer, save nalimx
maximum number of imlicitation iterations of of the structure displacement
Definition: albase.f90:44
#define END_C_DECLS
Definition: cs_defs.h:463
double precision, save bexxst
coefficient for the predicted displacement
Definition: alstru.f90:98
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:392
integer, dimension(3, nastmx), save asddlf
Definition: alaste.f90:49
void cs_gui_mesh_viscosity(void)
Definition: cs_gui_mobile_mesh.c:1004
#define CS_PROCF(x, y)
Definition: cs_defs.h:476
integer ibfixe
Definition: paramx.f90:315
double precision, dimension(3, nstrmx), save xstreq
Definition: alstru.f90:67
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:665
integer, save ihistr
write indicator (O or 1) for history of internal mobile structures
Definition: entsor.f90:165
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