I/O & Visualization

Contents

rhea_io_std.h
rhea_io_mpi.h
rhea_vtk.h
rhea_vis.h


rhea_io_std.h [source]

Typedefs

typedef int (*rhea_io_std_fscanf_fn_t)(void *data, void *params, FILE *file_ptr, const size_t n_read)

Issues fscanf command with appropriate format string and stores items into data.

Param data:

[out] Data that is read from file

Param params:

[in] User parameters

Param file_ptr:

[in] File pointer

Param n_read:

[in] Number of items read so far

Return:

Status returned from fscanf

typedef int (*rhea_io_std_fprintf_fn_t)(FILE *file_ptr, const void *data, void *params, const size_t n_written)

Issues fprintf command with appropriate format string and stores items from data.

Param file_ptr:

[in] File pointer

Param data:

[in] Data that is read from file

Param params:

[in] User parameters

Param n_written:

[in] Number of items read so far

Return:

Status returned from fprintf

Functions

size_t rhea_io_std_read_double(double *values, const size_t n_entries, const char *file_path)

Reads/writes double values from/to a binary file.

size_t rhea_io_std_write_double(const char *file_path, const double *values, const size_t n_entries)
size_t rhea_io_std_read_float(float *values, const size_t n_entries, const char *file_path)

Reads/writes float values from/to a binary file.

size_t rhea_io_std_write_float(const char *file_path, const float *values, const size_t n_entries)
size_t rhea_io_std_read_int(int *values, const size_t n_entries, const char *file_path)

Reads/writes int values from/to a binary file.

size_t rhea_io_std_write_int(const char *file_path, const int *values, const size_t n_entries)
size_t rhea_io_std_read_txt(void *data, rhea_io_std_fscanf_fn_t fscanf_fn, void *fscanf_params, const char *file_path)

Reads generic data from a text file.

size_t rhea_io_std_write_txt(const char *file_path, const void *data, rhea_io_std_fprintf_fn_t fprintf_fn, void *fprintf_params)

Writes generic data to a text file.

size_t rhea_io_std_read_double_from_txt(double *values, size_t n_entries, const char *file_path)

Reads/writes double values from/to a text file.

size_t rhea_io_std_write_double_to_txt(const char *file_path, const double *values, size_t n_entries, int n_entries_per_line)
size_t rhea_io_std_read_float_from_txt(float *values, size_t n_entries, const char *file_path)

Reads/writes float values from/to a text file.

size_t rhea_io_std_write_float_to_txt(const char *file_path, const float *values, size_t n_entries, int n_entries_per_line)
size_t rhea_io_std_read_int_from_txt(int *values, size_t n_entries, const char *file_path)

Reads int values from a text file.


rhea_io_mpi.h [source]

Functions

void rhea_io_mpi_add_options(ymir_options_t *opt_sup)

Defines options and adds them as sub-options.

void rhea_io_mpi_perfmon_init(const int activate, const int skip_if_active)

Initializes performance counters.

void rhea_io_mpi_perfmon_print(sc_MPI_Comm mpicomm, const int print_wtime, const int print_n_calls, const int print_flops)

Prints statistics collected by performance monitors.

int rhea_io_mpi_read_broadcast_double(double *values_all, int n_entries, const char *file_path_bin, const char *file_path_txt, sc_MPI_Comm mpicomm)

Reads double values from a binary or text file with one processor (i.e., MPI rank), then broadcasts to all processors.

int rhea_io_mpi_read_broadcast_float(float *values_all, int n_entries, const char *file_path_bin, const char *file_path_txt, sc_MPI_Comm mpicomm)

Reads float values from a binary or text file with one processor (i.e., MPI rank), then broadcasts to all processors.

int rhea_io_mpi_read_broadcast_int(int *values_all, int n_entries, const char *file_path_bin, const char *file_path_txt, sc_MPI_Comm mpicomm)

Reads int values from a binary or text file with one processor (i.e., MPI rank), then broadcasts to all processors.

void rhea_io_mpi_read_scatter_double(double *values_segment, const int *segment_offset, const char *file_path_bin, const char *file_path_txt, sc_MPI_Comm mpicomm)

Reads double values from a binary or text file with one processor (i.e., MPI rank), then scatters corresponding segments to all processors.

int rhea_io_mpi_read_segment_double(double *values_segment, MPI_Offset segment_offset, int segment_size, char *file_path_bin, sc_MPI_Comm mpicomm)

Reads segments of double values from a binary file collectively wity all processors.

void rhea_io_mpi_gather_write_double_to_txt(const char *file_path_txt, const double *values_segment, const int *segment_offset, int n_entries_per_line, sc_MPI_Comm mpicomm)

Gathers double values from all processors, then writes to a text file with one processor (i.e., MPI rank).

int rhea_io_mpi_write_segment_double(char *file_path_bin, double *values_segment, MPI_Offset segment_offset, int segment_size, sc_MPI_Comm mpicomm)

Writes segments of double values into a binary file collectively wity all processors.


rhea_vtk.h [source]

Functions

int rhea_vtk_write_input_data(const char *filepath, ymir_vec_t *temperature, ymir_vec_t *background_temp, ymir_vec_t *composition, ymir_vec_t *weakzone, ymir_vec_t *viscosity, ymir_vec_t *marker, ymir_vec_t *rhs_vel)
int rhea_vtk_write_observation_data(const char *filepath, ymir_vec_t *plate_label, ymir_vec_t *plate_weight, ymir_vec_t *plate_vel)
int rhea_vtk_write_solution(const char *filepath, ymir_vec_t *velocity, ymir_vec_t *pressure, ymir_vec_t *viscosity, ymir_vec_t *marker, ymir_vec_t *stress, ymir_vec_t *stress_direction, const double strainrate_dim_1_s)
int rhea_vtk_write_solution_surf(const char *filepath, ymir_vec_t *velocity_surf, ymir_vec_t *stress_norm_surf, ymir_vec_t *viscosity_surf, ymir_vec_t *marker_surf)
int rhea_vtk_write_nonlinear_stokes_iteration(const char *filepath, ymir_vec_t *velocity, ymir_vec_t *pressure, ymir_vec_t *viscosity, ymir_vec_t *marker, ymir_vec_t *residual_mom, ymir_vec_t *residual_mass)
int rhea_vtk_write_nonlinear_stokes_iteration_surf(const char *filepath, ymir_vec_t *velocity_surf, ymir_vec_t *stress_norm_surf, ymir_vec_t *viscosity_surf)
int rhea_vtk_write_inversion_iteration(const char *filepath, ymir_vec_t *velocity_fwd, ymir_vec_t *pressure_fwd, ymir_vec_t *velocity_adj, ymir_vec_t *pressure_adj, ymir_vec_t *viscosity, ymir_vec_t *marker, ymir_vec_t *stress, ymir_vec_t *stress_direction, const double strainrate_dim_1_s)
int rhea_vtk_write_inversion_iteration_surf(const char *filepath, ymir_vec_t *velocity_fwd_surf, ymir_vec_t *velocity_adj_surf, ymir_vec_t *velocity_obs_surf, ymir_vec_t *velocity_obs_weight_surf, ymir_vec_t *misfit_surf)
int rhea_vtk_write_inversion_adjoint(const char *filepath, ymir_vec_t *velocity_adj, ymir_vec_t *pressure_adj, ymir_vec_t *rhs_velocity_adj, ymir_vec_t *rhs_pressure_adj)

rhea_vis.h [source]

Functions

void rhea_vis_initialize(const char *catalyst_scripts[], const int n_catalyst_scripts)
void rhea_vis_finalize()
void rhea_vis_process_primary(ymir_vec_t *velocity, ymir_vec_t *pressure)