My Project
programmer's documentation
Loading...
Searching...
No Matches
cs_time_plot.h
Go to the documentation of this file.
1#ifndef __CS_TIME_PLOT_H__
2#define __CS_TIME_PLOT_H__
3
4/*============================================================================
5 * Time_Plot helper structures
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
36/*----------------------------------------------------------------------------*/
37
39
40/*============================================================================
41 * Macro definitions
42 *============================================================================*/
43
44/*============================================================================
45 * Type definitions
46 *============================================================================*/
47
48typedef struct _cs_time_plot_t cs_time_plot_t;
49
50/*============================================================================
51 * Local type definitions
52 *============================================================================*/
53
54/* Type of 1D plot file format */
55
56typedef enum {
57 CS_TIME_PLOT_DAT, /* .dat file (usable by Qtplot or Grace) */
58 CS_TIME_PLOT_CSV /* .csv file (readable by ParaView or spreadsheat) */
60
61/*============================================================================
62 * Global variables
63 *============================================================================*/
64
65/*=============================================================================
66 * Public function prototypes for Fortran API
67 *============================================================================*/
68
69/*----------------------------------------------------------------------------
70 * Create a writer for time plot structure-type data.
71 *
72 * This subroutine should only be called by one rank for a given data series.
73 *
74 * subroutine tpsini (tplnum, tplnam, tplpre, tplfmt, idtvar,
75 * *****************
76 * nprb, lstprb, xyzprb, lnam, lpre)
77 *
78 * integer tplnum : <-- : number of plot to create (> 0)
79 * character tplnam : <-- : name of associated plot
80 * character tplpre : <-- : prefix for associated file
81 * integer tplfmt : <-- : associated format
82 * (1: dat, 2: csv, 3: both)
83 * integer idtvar : <-- : calculation time dependency
84 * integer nstru : <-- : number of structures
85 * double precision xmstru : <-- : mass matrixes
86 * double precision xcstru : <-- : damping matrixes
87 * double precision xkstru : <-- : stiffness matrixes
88 * integer lnam : <-- : name length
89 * integer lpre : <-- : prefix length
90 *----------------------------------------------------------------------------*/
91
92void CS_PROCF (tpsini, TPSINI)
93(
94 const cs_int_t *tplnum,
95 const char *tplnam,
96 const char *tplpre,
97 const cs_int_t *tplfmt,
98 const cs_int_t *idtvar,
99 const cs_int_t *nstru,
100 const cs_real_t *xmstru,
101 const cs_real_t *xcstru,
102 const cs_real_t *xkstru,
103 const cs_int_t *lnam,
104 const cs_int_t *lpre
105 CS_ARGF_SUPP_CHAINE /* (possible 'length' arguments added
106 by many Fortran compilers) */
107);
108
109/*----------------------------------------------------------------------------
110 * Finalize a writer for time plot data.
111 *
112 * This subroutine should only be called by one rank for a given data series.
113 *
114 * subroutine tplend (tplnum)
115 * *****************
116 *
117 * integer tplnum : <-- : number of plot to create (> 0)
118 * integer tplfmt : <-- : associated format
119 * (1: dat, 2: csv, 3: both)
120 *----------------------------------------------------------------------------*/
121
122void CS_PROCF (tplend, TPLEND)
123(
124 const cs_int_t *tplnum,
125 const cs_int_t *tplfmt
126);
127
128/*----------------------------------------------------------------------------
129 * Write time plot values.
130 *
131 * subroutine tplwri (tplnum, tplfmt, nprb, ntcabs, ttcabs, valprb)
132 * *****************
133 *
134 * integer tplnum : <-- : number of associated plot (> 0)
135 * integer tplfmt : <-- : associated format
136 * (1: dat, 2: csv, 3: both)
137 * integer nprb : <-- : number of probes
138 * integer ntcabs : <-- : current time step number
139 * double precision ttcabs : <-- : current time value
140 * double precision valprb : <-- : probe values
141 *----------------------------------------------------------------------------*/
142
143void CS_PROCF (tplwri, TPLWRI)
144(
145 const cs_int_t *tplnum,
146 const cs_int_t *tplfmt,
147 const cs_int_t *nprb,
148 const cs_int_t *ntcabs,
149 const cs_real_t *ttcabs,
150 const cs_real_t *valprb
151);
152
153/*----------------------------------------------------------------------------
154 * Return the number of time plots accessible through the Fortran API
155 *
156 * This subroutine will only return the number of time plots defined by the
157 * local rank
158 *
159 * subroutine tplnbr (ntpl)
160 * *****************
161 *
162 * integer ntpl : --> : number of time plots defined
163 *----------------------------------------------------------------------------*/
164
165void CS_PROCF (tplnbr, TPLNBR)
166(
167 cs_int_t *ntpl
168);
169
170/*=============================================================================
171 * Public function prototypes
172 *============================================================================*/
173
174/*----------------------------------------------------------------------------
175 * Initialize a plot file writer for probe-type plots
176 *
177 * This function should only be called by one rank for a given data series.
178 *
179 * parameters:
180 * plot_name <-- plot (variable) name
181 * file_prefix <-- file name prefix
182 * format <-- associated file format
183 * use_iteration <-- should we use the iteration number instead of the
184 * physical time ?
185 * flush_wtime <-- elapsed time interval between file flushes
186 * (if < 0, no forced flush)
187 * n_buffer_steps <-- number of time steps in output buffer if
188 * file is not to be kept open
189 * n_probes <-- number of probes associated with this plot
190 * probe_list <-- numbers (1 to n) of probes if filtered, or NULL
191 * probe_coords <-- probe coordinates, or NULL
192 * probe_names <-- probe names, or NULL
193 *
194 * returns:
195 * pointer to new time plot writer
196 *----------------------------------------------------------------------------*/
197
199cs_time_plot_init_probe(const char *plot_name,
200 const char *file_prefix,
202 bool use_iteration,
203 double flush_wtime,
204 int n_buffer_steps,
205 int n_probes,
206 const int *probe_list,
207 const cs_real_t probe_coords[],
208 const char *probe_names[]);
209
210/*----------------------------------------------------------------------------
211 * Initialize a plot file writer for structure-type plots
212 *
213 * This function should only be called by one rank for a given data series.
214 *
215 * parameters:
216 * plot_name <-- plot (variable) name
217 * file_prefix <-- file name prefix
218 * format <-- associated file format
219 * use_iteration <-- should we use the iteration number instead of the
220 * physical time ?
221 * flush_wtime <-- elapsed time interval between file flushes
222 * (if < 0, no forced flush)
223 * n_buffer_steps <-- number of time steps in output buffer if
224 * file is not to be kept open
225 * n_structures <-- number of structures associated with this plot
226 * mass_matrixes <-- mass matrix coefficients (3x3 blocks)
227 * damping_matrixes <-- damping matrix coefficients (3x3 blocks)
228 * stiffness_matrixes <-- stiffness matrix coefficients (3x3 blocks)
229 *
230 * returns:
231 * pointer to new time plot writer
232 *----------------------------------------------------------------------------*/
233
235cs_time_plot_init_struct(const char *plot_name,
236 const char *file_prefix,
238 bool use_iteration,
239 double flush_wtime,
240 int n_buffer_steps,
241 int n_structures,
242 const cs_real_t mass_matrixes[],
243 const cs_real_t damping_matrixes[],
244 const cs_real_t stiffness_matrixes[]);
245
246/*----------------------------------------------------------------------------
247 * Finalize time plot writer for a given variable
248 *
249 * This function should only be called by one rank for a given data series.
250 *
251 * parameters:
252 * p <-> time plot values file handler
253 *----------------------------------------------------------------------------*/
254
255void
257
258/*----------------------------------------------------------------------------
259 * Write time plot values
260 *
261 * This function should only be called by one rank for a given data series.
262 *
263 * parameters:
264 * p <-- pointer to associated plot structure
265 * tn <-- associated time step number
266 * t <-- associated time value
267 * n_vals <-- number of associated time values
268 * vals <-- associated time values
269 *----------------------------------------------------------------------------*/
270
271void
273 int tn,
274 double t,
275 int n_vals,
276 const cs_real_t vals[]);
277
278/*----------------------------------------------------------------------------
279 * Flush buffered values to file if applicable
280 *
281 * parameters:
282 * p <-> time plot values file handler
283 *----------------------------------------------------------------------------*/
284
285void
287
288/*----------------------------------------------------------------------------
289 * flush all time plots
290 *----------------------------------------------------------------------------*/
291
292void
294
295/*----------------------------------------------------------------------------
296 * Set time plot file writer flush behavior defaults.
297 *
298 * parameters:
299 * flush_wtime <-- elapsed time interval between file flushes;
300 * if < 0, no forced flush
301 * n_buffer_steps <-- number of time steps in output buffer if
302 * file is not to be kept open
303 *----------------------------------------------------------------------------*/
304
305void
306cs_time_plot_set_flush_default(float flush_wtime,
307 int n_buffer_steps);
308
309/*----------------------------------------------------------------------------
310 * Return time plot file writer flush behavior defaults.
311 *
312 * parameters:
313 * flush_wtime --> elapsed time interval between file flushes;
314 * if < 0, no forced flush (NULL if not queried)
315 * n_buffer_steps <-- number of time steps in output buffer if
316 * file is not to be kept open (NULL if not queried)
317 *----------------------------------------------------------------------------*/
318
319void
320cs_time_plot_get_flush_default(float *flush_wtime,
321 int *n_buffer_steps);
322
323/*----------------------------------------------------------------------------*/
324
326
327#endif /* __CS_PROBE_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
#define END_C_DECLS
Definition cs_defs.h:468
#define CS_ARGF_SUPP_CHAINE
Definition cs_defs.h:496
@ t
Definition cs_field_pointer.h:98
@ p
Definition cs_field_pointer.h:67
void cs_time_plot_vals_write(cs_time_plot_t *p, int tn, double t, int n_vals, const cs_real_t vals[])
Definition cs_time_plot.c:1170
void cs_time_plot_flush(cs_time_plot_t *p)
Definition cs_time_plot.c:1238
struct _cs_time_plot_t cs_time_plot_t
Definition cs_time_plot.h:48
cs_time_plot_format_t
Definition cs_time_plot.h:56
@ CS_TIME_PLOT_DAT
Definition cs_time_plot.h:57
@ CS_TIME_PLOT_CSV
Definition cs_time_plot.h:58
cs_time_plot_t * cs_time_plot_init_probe(const char *plot_name, const char *file_prefix, cs_time_plot_format_t format, bool use_iteration, double flush_wtime, int n_buffer_steps, int n_probes, const int *probe_list, const cs_real_t probe_coords[], const char *probe_names[])
Definition cs_time_plot.c:1020
void tplend(const cs_int_t *tplnum, const cs_int_t *tplfmt)
Definition cs_time_plot.c:883
void cs_time_plot_set_flush_default(float flush_wtime, int n_buffer_steps)
Definition cs_time_plot.c:1277
void cs_time_plot_finalize(cs_time_plot_t **p)
Definition cs_time_plot.c:1129
cs_time_plot_t * cs_time_plot_init_struct(const char *plot_name, const char *file_prefix, cs_time_plot_format_t format, bool use_iteration, double flush_wtime, int n_buffer_steps, int n_structures, const cs_real_t mass_matrixes[], const cs_real_t damping_matrixes[], const cs_real_t stiffness_matrixes[])
Definition cs_time_plot.c:1086
void cs_time_plot_flush_all(void)
Definition cs_time_plot.c:1260
void tplnbr(cs_int_t *ntpl)
Definition cs_time_plot.c:977
void tplwri(const cs_int_t *tplnum, const cs_int_t *tplfmt, const cs_int_t *nprb, const cs_int_t *ntcabs, const cs_real_t *ttcabs, const cs_real_t *valprb)
Definition cs_time_plot.c:935
void cs_time_plot_get_flush_default(float *flush_wtime, int *n_buffer_steps)
Definition cs_time_plot.c:1295
void tpsini(const cs_int_t *tplnum, const char *tplnam, const char *tplpre, const cs_int_t *tplfmt, const cs_int_t *idtvar, const cs_int_t *nstru, const cs_real_t *xmstru, const cs_real_t *xcstru, const cs_real_t *xkstru, const cs_int_t *lnam, const cs_int_t *lpre CS_ARGF_SUPP_CHAINE)
Definition cs_time_plot.c:812
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, 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
integer, save tplfmt
time plot format (1: .dat, 2: .csv, 3: both)
Definition entsor.f90:147
integer(c_int), pointer, save idtvar
option for a variable time step
Definition optcal.f90:430
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