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-2015 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  * INTEGER IORTVM <-- type of viscosity of mesh
64  *
65  *----------------------------------------------------------------------------*/
66 
67 void CS_PROCF (uialin, UIALIN) (int *const iale,
68  int *const nalinf,
69  int *const nalimx,
70  double *const epalim,
71  int *const iortvm);
72 
73 /*----------------------------------------------------------------------------
74  * uivima
75  *
76  * Fortran Interface:
77  *
78  * SUBROUTINE uivima
79  * *****************
80  *
81  * viscmx <-- VISCMX
82  * viscmy <-- VISCMY
83  * viscmz <-- VISCMZ
84  *----------------------------------------------------------------------------*/
85 
86 void CS_PROCF (uivima, UIVIMA) ( double *const viscmx,
87  double *const viscmy,
88  double *const viscmz);
89 
90 /*-----------------------------------------------------------------------------
91  * uialcl
92  *
93  * Fortran Interface:
94  *
95  * SUBROUTINE UIALCL
96  * *****************
97  *
98  *
99  * parameters:
100  * nozppm <-- Max number of boundary conditions zone
101  * ialtyb --> ialtyb
102  * impale --> uialcl_fixed_displacement
103  * disale --> See uialcl_fixed_displacement
104  * dtref <-- time step
105  * ttcabs <-- current time
106  * ntcabs <-- current iteration number
107  * iuma <-- See uialcl_fixed_velocity
108  * ivma <-- See uialcl_fixed_velocity
109  * iwma <-- See uialcl_fixed_velocity
110  * rcodcl --> See uialcl_fixed_velocity
111  *----------------------------------------------------------------------------*/
112 
113 void CS_PROCF (uialcl, UIALCL) ( const int *const nozppm,
114  const int *const ibfixe,
115  const int *const igliss,
116  const int *const ivimpo,
117  const int *const ifresf,
118  int *const ialtyb,
119  int *const impale,
120  cs_real_3_t *disale,
121  double *const dtref,
122  double *const ttcabs,
123  const int *const ntcabs,
124  const int *const iuma,
125  const int *const ivma,
126  const int *const iwma,
127  double *const rcodcl );
128 
129 /*-----------------------------------------------------------------------------
130  * Retreive data for internal coupling. Called once at initialization
131  *
132  * Fortran Interface:
133  *
134  * subroutine uistr1
135  * *****************
136  *
137  * parameters:
138  * nfabor <-- Number of boundary faces
139  * idfstr --> Structure definition
140  * mbstru <-- number of previous structures (-999 or by restart)
141  * aexxst --> Displacement prediction alpha
142  * bexxst --> Displacement prediction beta
143  * cfopre --> Stress prediction alpha
144  * ihistr --> Monitor point synchronisation
145  * xstr0 <-> Values of the initial displacement
146  * xstreq <-> Values of the equilibrium displacement
147  * vstr0 <-> Values of the initial velocity
148  *----------------------------------------------------------------------------*/
149 
150 void CS_PROCF (uistr1, UISTR1) (const cs_lnum_t *nfabor,
151  cs_lnum_t *idfstr,
152  const int *mbstru,
153  double *aexxst,
154  double *bexxst,
155  double *cfopre,
156  int *ihistr,
157  double *xstr0,
158  double *xstreq,
159  double *vstr0);
160 
161 /*-----------------------------------------------------------------------------
162  * Retreive data for internal coupling. Called at each step
163  *
164  * Fortran Interface:
165  *
166  * SUBROUTINE UISTR2
167  * *****************
168  *
169  * parameters:
170  * xmstru <-- Mass matrix
171  * xcstr <-- Damping matrix
172  * xkstru <-- Stiffness matrix
173  * forstr <-- Fluid force matrix
174  * dtref --> time step
175  * ttcabs --> current time
176  * ntcabs --> current iteration number
177  *----------------------------------------------------------------------------*/
178 
179 void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
180  double *const xcstru,
181  double *const xkstru,
182  double *const forstr,
183  double *const dtref,
184  double *const ttcabs,
185  int *const ntcabs);
186 
187 /*=============================================================================
188  * Public function prototypes
189  *============================================================================*/
190 
191 /*-----------------------------------------------------------------------------
192  * Return the viscosity's type of ALE method
193  *
194  * parameters:
195  * type <-- type of viscosity's type
196  *----------------------------------------------------------------------------*/
197 
198 void
200 
201 /*----------------------------------------------------------------------------*/
202 
204 
205 #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:1142
void uialcl(const int *const nozppm, 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, double *const dtref, double *const ttcabs, const int *const ntcabs, const int *const iuma, const int *const ivma, const int *const iwma, double *const rcodcl)
Definition: cs_gui_mobile_mesh.c:912
real(c_double), pointer, save dtref
reference time step
Definition: optcal.f90:430
integer, save nalinf
the number of sub-iterations of initialization of the fluid
Definition: albase.f90:42
integer, save iortvm
viscosity type of mesh : isotropic=0, orthotropic=1.
Definition: albase.f90:46
#define BEGIN_C_DECLS
Definition: cs_defs.h:429
double precision, save epalim
relative precision of implicitation of the structure displacement
Definition: albase.f90:48
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, save nfabor
Definition: mesh.f90:58
integer, dimension(:), allocatable ialtyb
defines the mesh velocity from the color of the boundary faces, or more generally from their properti...
Definition: albase.f90:58
integer nozppm
maximum index of boundary zones
Definition: ppppar.f90:45
integer, save ivma
Definition: numvar.f90:153
double precision, dimension(3, 3, nstrmx), save xkstru
Definition: alstru.f90:54
real(c_double), pointer, save ttcabs
Current absolute time. In case of restart, this is equal to ttpabs + additional computed time...
Definition: optcal.f90:401
integer, save iuma
Definition: numvar.f90:149
void uialin(int *const iale, int *const nalinf, int *const nalimx, double *const epalim, int *const iortvm)
Definition: cs_gui_mobile_mesh.c:857
integer, save iwma
Definition: numvar.f90:157
integer ifresf
Definition: paramx.f90:215
void uistr1(const cs_lnum_t *nfabor, 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:1014
integer, save iale
Activates (=1) or not (=0), activate the ALE module.
Definition: albase.f90:40
double precision, save cfopre
coefficient for the predicted force
Definition: alstru.f90:101
integer ivimpo
Definition: paramx.f90:358
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:307
double precision, dimension(3, nstrmx), save forstr
Definition: alstru.f90:82
integer, dimension(:), allocatable impale
indicator of imposed displacement
Definition: albase.f90:53
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:1087
integer igliss
Definition: paramx.f90:344
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:292
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:430
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:388
#define CS_PROCF(x, y)
Definition: cs_defs.h:453
integer ibfixe
Definition: paramx.f90:340
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:246
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:142
void uivima(double *const viscmx, double *const viscmy, double *const viscmz)
Definition: cs_gui_mobile_mesh.c:773