1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205
|
#ifndef __CS_GUI_MOBILE_MESH_H__
#define __CS_GUI_MOBILE_MESH_H__
/*============================================================================
* Management of the GUI parameters file: mobile mesh
*============================================================================*/
/*
This file is part of Code_Saturne, a general-purpose CFD tool.
Copyright (C) 1998-2016 EDF S.A.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
* Local headers
*----------------------------------------------------------------------------*/
#include "cs_base.h"
/*----------------------------------------------------------------------------*/
BEGIN_C_DECLS
/*============================================================================
* Type definitions
*============================================================================*/
/*============================================================================
* Public function prototypes for Fortran API
*============================================================================*/
/*----------------------------------------------------------------------------
* ALE method.
*
* Fortran Interface:
*
* SUBROUTINE UIALIN()
* *****************
*
* INTEGER IALE <-- iale method activation
* INTEGER NALINF <-- number of subiterations of initialization of
* fluid
* INTEGER NALIMX <-- max number of iterations of implicitation of
* the displacement of the structures
* DOUBLE EPALIM <-- realtive precision of implicitation of
* the displacement of the structures
* INTEGER IORTVM <-- type of viscosity of mesh
*
*----------------------------------------------------------------------------*/
void CS_PROCF (uialin, UIALIN) (int *const iale,
int *const nalinf,
int *const nalimx,
double *const epalim,
int *const iortvm);
/*----------------------------------------------------------------------------
* uivima
*
* Fortran Interface:
*
* SUBROUTINE uivima
* *****************
*
* viscmx <-- VISCMX
* viscmy <-- VISCMY
* viscmz <-- VISCMZ
*----------------------------------------------------------------------------*/
void CS_PROCF (uivima, UIVIMA) ( double *const viscmx,
double *const viscmy,
double *const viscmz);
/*-----------------------------------------------------------------------------
* uialcl
*
* Fortran Interface:
*
* SUBROUTINE UIALCL
* *****************
*
*
* parameters:
* nozppm <-- Max number of boundary conditions zone
* ialtyb --> ialtyb
* impale --> uialcl_fixed_displacement
* disale --> See uialcl_fixed_displacement
* dtref <-- time step
* ttcabs <-- current time
* ntcabs <-- current iteration number
* iuma <-- See uialcl_fixed_velocity
* ivma <-- See uialcl_fixed_velocity
* iwma <-- See uialcl_fixed_velocity
* rcodcl --> See uialcl_fixed_velocity
*----------------------------------------------------------------------------*/
void CS_PROCF (uialcl, 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 );
/*-----------------------------------------------------------------------------
* Retreive data for internal coupling. Called once at initialization
*
* Fortran Interface:
*
* subroutine uistr1
* *****************
*
* parameters:
* nfabor <-- Number of boundary faces
* idfstr --> Structure definition
* mbstru <-- number of previous structures (-999 or by restart)
* aexxst --> Displacement prediction alpha
* bexxst --> Displacement prediction beta
* cfopre --> Stress prediction alpha
* ihistr --> Monitor point synchronisation
* xstr0 <-> Values of the initial displacement
* xstreq <-> Values of the equilibrium displacement
* vstr0 <-> Values of the initial velocity
*----------------------------------------------------------------------------*/
void CS_PROCF (uistr1, 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);
/*-----------------------------------------------------------------------------
* Retreive data for internal coupling. Called at each step
*
* Fortran Interface:
*
* SUBROUTINE UISTR2
* *****************
*
* parameters:
* xmstru <-- Mass matrix
* xcstr <-- Damping matrix
* xkstru <-- Stiffness matrix
* forstr <-- Fluid force matrix
* dtref --> time step
* ttcabs --> current time
* ntcabs --> current iteration number
*----------------------------------------------------------------------------*/
void CS_PROCF (uistr2, UISTR2) ( double *const xmstru,
double *const xcstru,
double *const xkstru,
double *const forstr,
double *const dtref,
double *const ttcabs,
int *const ntcabs);
/*=============================================================================
* Public function prototypes
*============================================================================*/
/*-----------------------------------------------------------------------------
* Return the viscosity's type of ALE method
*
* parameters:
* type <-- type of viscosity's type
*----------------------------------------------------------------------------*/
void
cs_gui_get_ale_viscosity_type(int * type);
/*----------------------------------------------------------------------------*/
END_C_DECLS
#endif /* __CS_GUI_MOBILE_MESH_H__ */
|