You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.0 KiB
64 lines
2.0 KiB
/*
|
|
* Copyright(C) 1999-2020, 2022, 2023 National Technology & Engineering Solutions
|
|
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
|
* NTESS, the U.S. Government retains certain rights in this software.
|
|
*
|
|
* See packages/seacas/LICENSE for details
|
|
*/
|
|
#pragma once
|
|
|
|
#include "rf_io_const.h"
|
|
#include <string>
|
|
|
|
/* Global variables. */
|
|
extern double PIO_Time_Array[]; /* Vector for timings */
|
|
|
|
/*
|
|
* The following variables are used when a single processor is to write
|
|
* info for a processor other than itself.
|
|
*/
|
|
|
|
/* Structure used to store the information necessary for parallel I/O. */
|
|
|
|
struct Parallel_IO
|
|
{
|
|
int Dsk_List_Cnt{};
|
|
|
|
int *Dsk_List{nullptr};
|
|
int **RDsk_List{nullptr};
|
|
|
|
int Num_Dsk_Ctrlrs{}; /* The number of disk controllers. */
|
|
int Num_Dsks_PCtrlr{}; /* The number of disks per controller. */
|
|
int PDsk_Add_Fact{}; /* The offset from zero used by the */
|
|
/* the target machine. */
|
|
|
|
int Zeros{}; /* 1 - if the target machine uses leading zeros when */
|
|
/* designating the disk number (eg - the paragon */
|
|
/* uses /pfs/io_01) */
|
|
/* 0 - if it does not (eg - the tflop uses */
|
|
/* /pfs/tmp_1) */
|
|
|
|
/* 1 - don't create a subdirectory for the spread files; write
|
|
* them in same directory as the mesh file
|
|
*/
|
|
int NoSubdirectory{};
|
|
|
|
/* The root location of the parallel disks */
|
|
std::string Par_Dsk_Root{};
|
|
|
|
/* The subdirectory to write files to */
|
|
std::string Par_Dsk_SubDirec{};
|
|
|
|
/* The filename extension for the parallel files */
|
|
std::string Exo_Extension{};
|
|
|
|
bool Staged_Writes{};
|
|
};
|
|
|
|
extern struct Parallel_IO PIO_Info;
|
|
|
|
extern std::string Par_Nem_File_Name; /* The parallel nemesis file name */
|
|
|
|
void gen_disk_map(struct Parallel_IO *pio_info, const std::array<int, 6> &proc_info, int proc,
|
|
int nproc);
|
|
std::string gen_par_filename(const std::string &scalar_fname, int proc_for, int nprocs);
|
|
|