solid_cells_ogrid

Module

** AUTOMATIC CPARAM.INC GENERATION ************************

Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this module

CPARAM logical, parameter :: lsolid_cells = .true. CPARAM logical, parameter :: lsolid_ogrid = .true.

MAUX CONTRIBUTION 0


New solid cells module Overlapping cylindrical grid (O-grid) around cylinder or sphere, coupled to cartesian grid outside the o-grid by interpolation.

Very fine resolution of boundary layer

Quick access

Types:

solid_object

Variables:

adjust_inear_cart, adjust_inear_cart_glob, adjust_inear_curv, adjust_inear_curv_glob, advance_solid_cells_position, ba, ba_defined, ba_shift, bc_thermo_type, bc_vel_type, boundary_x_10th, boundary_x_6th, boundary_x_8_6th, boundary_x_8th, boundary_x_central, boundconds_x_ogrid, boundconds_y_filter, boundconds_y_ogrid, boundconds_z_ogrid, c_dragx, c_dragx_p, c_dragy, c_dragy_p, c_dragz, c_dragz_p, calc_boundary_velocity, calc_diagnostics_solid, calc_diff_ib, calc_diff_visc_coef_ib, calc_heatcond_constchi_ogrid, calc_pencils_density_ogrid, calc_pencils_energy_ogrid, calc_pencils_eos_ogrid, calc_pencils_grid_ogrid, calc_pencils_hydro_ogrid, calc_pencils_viscosity_ogrid, calc_reaction_rate, calc_solid_cells_chemistry, calculate_shift_matrix, centr_line, char_consumption, charac_len, check_cyl_pos, close_interpolation_method, coefa, coefb, communicate_filter_zones, communicate_ip_cart_to_curv, communicate_ip_curv_to_cart, construct_grid_ogrid, construct_serial_bdry_cartesian, construct_serial_bdry_curv, create_curv_cart_transform, cv, cylinder_theta, cylinder_xvel, cylinder_yvel, del2v_etc_ogrid, denergy_dt_ogrid, dfs, dim_stl, dlnrho_dt_ogrid, dot2_ogrid, drag_coeffs, drag_force_pencils, duu_dt_ogrid, find_closest_wall, find_low_gp_index_bisection, find_near_ind_global_cart, find_near_ind_global_curv, find_near_ind_local_cart, find_near_ind_local_curv, find_point, find_proc_cartesian, find_proc_curvilinear, find_solid_cell_boundaries, find_unit_vectors, fpnearestgrid, fs, gaunoise_ogrid, geometryfile, get_grid_mn_ogrid, get_mu1_full_ib, get_polar_coords, get_polar_coords_2d, get_polar_coords_3d, get_polar_coords_3d_alt, get_xx_ib, heat_cond, ib_nearest_grid, ichemsco, ichemsco2, ichemsn2, ichemso2, idiag_c_dragx, idiag_c_dragx_p, idiag_c_dragy, idiag_c_dragy_p, idiag_c_dragz, idiag_c_dragz_p, idiag_nusselt, ind_global_to_local_cart, ind_global_to_local_curv, ineargridshift, initialize_eos_ogr, initialize_grid_ogrid, initialize_interpolate_points, initialize_pade_filter, initialize_particles_ogrid, initialize_pencils_ogrid, initialize_send_ip_points_alt, input_snap_ogrid, interp_lagrange, interp_point_curv_to_cart_alt, interpolate_linear_ogrid, interpolate_ogrid_near, interpolate_ogrid_near_mom, interpolate_particles_ogrid, interpolate_point, interpolate_point_cart_to_curv, interpolate_point_curv_to_cart, interpolate_pseudocubic, interpolate_pseudoquad, interpolate_quad_ogrid, interpolate_quadratic_sp_og, inverse_grid_ogrid, irhocount, irs, isco, isco2, isn2, iso2, its, ius, ivs, iws, ixs, iys, izs, lcheck_ba, lclose_interpolation, lclose_linear, lclose_quad_rad_inter, lerror_norm, lfull_diff_ib, limit_close_linear, linear_interpolate_cartesian, linear_interpolate_curvilinear, linear_interpolate_ogrid, linear_interpolate_quadratic, lineelement, lloc_c_press_output, lloc_density_output, lloc_nusselt_output, lloc_temp_output, lnointerception, lnusselt_output, loc_coor_utvec, locchemspec_error, locdensity_error, loutput_local_reaction_rate, lpos_advance, lradius_advance, lsco, lsco2, lsecondorder_chem, lsecondorder_rho, lsimple_diff_ib, lsn2, lso2, map_nearest_grid_ogrid, max_items, maxterm, mdot_c_coeffs, mdot_c_pencils, mspecies, n_lines, new_stefan, nforcepoints, nlat, nlong, nobjects, norm_line, nrectangles, nspheres, nsvar, nusselt, nusselt_coeffs, nusselt_pencils, object_skin, objects, osci_a, osci_dir, osci_f, osci_t, output_snap_form_ogrid, output_snap_ogrid, pade_filter, pde_ogrid, poly_interp_cart, poly_interp_curv, pressure0, r_int_outer, r_theta_phi_velocity_in_point, radius_ogrid, read_snap_double_ogrid, read_snap_ogrid, read_snap_single_ogrid, read_snapshot_solid_cells, real_to_index_ogrid, reverse_normal_value, rhosum, rsnap_ogrid, run_tests_ogrid, sc_diags_reductions, sc_init_diag_accum, sc_init_reduc_pointers, scale_stl, scp, set_interpolation_limits, setup_mm_nn_ogrid, solid_ds, solid_dt, solid_flux, solid_object, solid_phi, solid_reactions_intro_time, solid_temp, solid_tempflux, solid_theta, solid_vel, solid_xpos, solid_ypos, solid_zpos, sphere_phi, sphere_temp, sphere_theta, sphere_xpos, sphere_xvel, sphere_ypos, sphere_yvel, sphere_zpos, sphere_zvel, srho, sum_line, svarname, theta_shift, time_step_ogrid, tol_stl, transform_curv_to_cart, tx_stl, ty_stl, u_dot_grad_ogrid, update_ghosts_ogrid, update_ogrid_flow_info, vertex, vs_normal, write_reactions, write_snapshot_solid_cells, wsnap_ogrid, wsnap_solid_cells, xmax_stl, xmin_stl, ymax_stl, ymin_stl

Routines:

calc_diagnostics_solid(), calc_matrix(), close_interpolation(), dsolid_dt(), dsolid_dt_integrate(), find_closest_grid_plane(), find_corner_points(), find_ib_point(), find_ib_point_mir(), find_near_indeces(), find_projection(), find_solid_cell_boundary(), fp_nearest_grid(), freeze_solid_cells(), get_stl_data(), in_solid_cell(), init_solid_cells(), initialize_solid_cells(), interpolate_idw(), interpolate_matrix(), interpolate_particles_ogrid(), is_point_on_line(), map_nearest_grid_ogrid(), output_solid_cells(), pencil_criteria_solid_cells(), read_solid_cells_init_pars(), read_solid_cells_run_pars(), register_solid_cells(), rprint_solid_cells(), sc_diags_reductions(), sc_init_reduc_pointers(), solid_cells_clean_up(), solid_cells_timestep_first(), solid_cells_timestep_second(), time_step_ogrid(), update_solid_cells(), update_solid_cells_pencil(), write_solid_cells_init_pars(), write_solid_cells_run_pars(), wsnap_ogrid()

Needed modules

Variables

  • solid_cells/adjust_inear_cart [private]
  • solid_cells/adjust_inear_cart_glob [private]
  • solid_cells/adjust_inear_curv [private]
  • solid_cells/adjust_inear_curv_glob [private]
  • solid_cells/boundary_x_10th [private]
  • solid_cells/boundary_x_6th [private]
  • solid_cells/boundary_x_8_6th [private]
  • solid_cells/boundary_x_8th [private]
  • solid_cells/boundary_x_central [private]
  • solid_cells/boundconds_x_ogrid [private]
  • solid_cells/boundconds_y_filter [private]
  • solid_cells/boundconds_y_ogrid [private]
  • solid_cells/boundconds_z_ogrid [private]
  • solid_cells/calc_heatcond_constchi_ogrid [private]
  • solid_cells/calc_pencils_density_ogrid [private]
  • solid_cells/calc_pencils_energy_ogrid [private]
  • solid_cells/calc_pencils_eos_ogrid [private]
  • solid_cells/calc_pencils_grid_ogrid [private]
  • solid_cells/calc_pencils_hydro_ogrid [private]
  • solid_cells/calc_pencils_viscosity_ogrid [private]
  • solid_cells/check_cyl_pos [private]
  • solid_cells/communicate_filter_zones [private]
  • solid_cells/communicate_ip_cart_to_curv [private]
  • solid_cells/communicate_ip_curv_to_cart [private]
  • solid_cells/construct_grid_ogrid [private]
  • solid_cells/construct_serial_bdry_cartesian [private]
  • solid_cells/construct_serial_bdry_curv [private]
  • solid_cells/cp [real,private]
  • solid_cells/create_curv_cart_transform [private]
  • solid_cells/cv [real,private]
  • solid_cells/del2v_etc_ogrid [private]
  • solid_cells/denergy_dt_ogrid [private]
  • solid_cells/dlnrho_dt_ogrid [private]
  • solid_cells/dot2_ogrid [private]
  • solid_cells/drag_coeffs [private]
  • solid_cells/drag_force_pencils [private]
  • solid_cells/duu_dt_ogrid [private]
  • solid_cells/find_low_gp_index_bisection [private]
  • solid_cells/find_near_ind_global_cart [private]
  • solid_cells/find_near_ind_global_curv [private]
  • solid_cells/find_near_ind_local_cart [private]
  • solid_cells/find_near_ind_local_curv [private]
  • solid_cells/find_proc_cartesian [private]
  • solid_cells/find_proc_curvilinear [private]
  • solid_cells/gamma [real,private]
  • solid_cells/gamma1 [real,private]
  • solid_cells/gamma_m1 [real,private]
  • solid_cells/gaunoise_ogrid [private]
  • solid_cells/get_grid_mn_ogrid [private]
  • solid_cells/get_polar_coords [private]
  • solid_cells/get_polar_coords_2d [private]
  • solid_cells/get_polar_coords_3d [private]
  • solid_cells/get_polar_coords_3d_alt [private]
  • solid_cells/ind_global_to_local_cart [private]
  • solid_cells/ind_global_to_local_curv [private]
  • solid_cells/initialize_eos_ogr [private]
  • solid_cells/initialize_grid_ogrid [private]
  • solid_cells/initialize_interpolate_points [private]
  • solid_cells/initialize_pade_filter [private]
  • solid_cells/initialize_particles_ogrid [private]
  • solid_cells/initialize_pencils_ogrid [private]
  • solid_cells/initialize_send_ip_points_alt [private]
  • solid_cells/input_snap_ogrid [private]
  • solid_cells/interp_lagrange [private]
  • solid_cells/interp_point_curv_to_cart_alt [private]
  • solid_cells/interpolate_linear_ogrid [private]
  • solid_cells/interpolate_ogrid_near [private]
  • solid_cells/interpolate_ogrid_near_mom [private]
  • solid_cells/interpolate_point_cart_to_curv [private]
  • solid_cells/interpolate_point_curv_to_cart [private]
  • solid_cells/interpolate_pseudocubic [private]
  • solid_cells/interpolate_pseudoquad [private]
  • solid_cells/interpolate_quad_ogrid [private]
  • solid_cells/interpolate_quadratic_sp_og [private]
  • solid_cells/inverse_grid_ogrid [private]
  • solid_cells/linear_interpolate_cartesian [private]
  • solid_cells/linear_interpolate_curvilinear [private]
  • solid_cells/linear_interpolate_ogrid [private]
  • solid_cells/mdot_c_coeffs [private]
  • solid_cells/mdot_c_pencils [private]
  • solid_cells/nusselt_coeffs [private]
  • solid_cells/nusselt_pencils [private]
  • solid_cells/output_snap_form_ogrid [private]
  • solid_cells/output_snap_ogrid [private]
  • solid_cells/pade_filter [private]
  • solid_cells/pde_ogrid [private]
  • solid_cells/poly_interp_cart [private]
  • solid_cells/poly_interp_curv [private]
  • solid_cells/r_int_outer [public]
  • solid_cells/r_ogrid [public]
  • solid_cells/radius_ogrid [private]
  • solid_cells/read_snap_double_ogrid [private]
  • solid_cells/read_snap_ogrid [private]
  • solid_cells/read_snap_single_ogrid [private]
  • solid_cells/real_to_index_ogrid [private]
  • solid_cells/rsnap_ogrid [private]
  • solid_cells/run_tests_ogrid [private]
  • solid_cells/sc_init_diag_accum [private]
  • solid_cells/set_interpolation_limits [private]
  • solid_cells/setup_mm_nn_ogrid [private]
  • solid_cells/transform_curv_to_cart [private]
  • solid_cells/u_dot_grad_ogrid [private]
  • solid_cells/update_ghosts_ogrid [private]
  • solid_cells/update_ogrid_flow_info [private]
  • solid_cells/write_reactions [private]
  • solid_cells/xorigo_ogrid [public]

Subroutines and functions

subroutine  solid_cells/register_solid_cells()

Dummy routine

Called from:

register_modules()

subroutine  solid_cells/initialize_solid_cells(f)

Define the geometry of the solids and construct the grid around the solid object. Currently only a single solid object with overlapping grid is implemented. Use solid_cells.f90 without overlapping grids if several solids inside the flow domain is desired.

feb–apr-17/Jorgen: Coded

Parameters:

f (mx,my,mz,mfarray) [real,inout]

Use :

solid_cells_mpicomm (initialize_mpicomm_ogrid()), equationofstate (lpres_grad(), pr_number(), get_gamma_etc()), sharedvariables (get_shared_variable())

Called from:

register_modules(), initialize_modules()

Call to:

fatal_error(), warning(), get_gamma_etc(), initialize_eos_chemistry(), initialize_mpicomm_ogrid(), initialize_chemistry_og()

subroutine  solid_cells/init_solid_cells(f)

Initial conditions for cases where we have solid structures in the domain. Typically the flow field is set such that we have no-slip conditions at the solid structure surface.

This routine is adapted to resolve the solid structures with overlapping curvilinear grids. Hence, the f-array, which is the array of flow variables on the carteisian grid, must use potential flow to set the ghost zones that will be set by intepolation for t>0.

Only implemented for a single solid at present!

XX-feb-17/Jorgen: Coded

Parameters:

f (mx,my,mz,mfarray) [real,inout]

Use :

initcond (gaunoise()), io (wdim()), sub (control_file_exists()), equationofstate (imass(), lpres_grad())

Called from:

start

Call to:

fatal_error(), wsnap_ogrid(), control_file_exists(), wdim(), mpiwait(), mpibarrier(), getnu()

subroutine  solid_cells/dsolid_dt(f, df, p)

Dummy routine

Parameters:
Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

subroutine  solid_cells/calc_diagnostics_solid(p)
Parameters:

p [pencil_case,in]

subroutine  solid_cells/dsolid_dt_integrate()

Dummy routine

Called from:

pde()

subroutine  solid_cells/rprint_solid_cells(lreset[, lwrite])

Reads and registers print parameters relevant for solid cells

mar-2009/kragset: coded nov-2010/kragset: generalized to include drag in z-direction

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics (parse_name()), general (loptest())

Called from:

register_modules(), initialize_modules(), finalize_modules(), choose_pencils(), rprint_list()

subroutine  solid_cells/update_solid_cells(f)

Dummy routine

Parameters:

f (mx,my,mz,mfarray) [real]

Called from:

pde()

subroutine  solid_cells/update_solid_cells_pencil(f)

Dummy routine

Parameters:

f (mx,my,mz,mfarray) [real]

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

subroutine  solid_cells/freeze_solid_cells(df)

If we are inside the region of interpolation from curvilinear to cartesian grid, the comutations of the f-array are frozen, by setting df=0 for all variables

22-feb-17/Jorgen: Coded

Parameters:

df (mx,my,mz,mvar) [real,inout]

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics(), debug_imn_arrays(), impose_floors_ceilings()

Call to:

in_solid_cell(), fatal_error(), interpolate_quadratic_spline()

function  solid_cells/in_solid_cell(part_pos, part_rad)

Check if the position px,py,pz is within a solid cylinder

14-feb-17/Jorgen: coded

Parameters:
  • part_pos (*) [real,in]

  • part_rad [real,in]

Return:

in_solid_cell [logical]

Called from:

freeze_solid_cells()

Call to:

fatal_error(), interpolate_quadratic_spline(), find_star(), calc_bound_coeffs(), construct_serial_arrays(), mpifinalize(), update_ghosts(), wsnap_ogrid(), mpibarrier(), chemspec_normalization_n2_og(), calc_for_chem_mixture_ogrid(), calc_pencils_eos_ogrid_chem(), calc_pencils_chemistry_ogrid(), calc_heter_reaction_term(), dyk_dt_ogrid(), calc_heatcond_chemistry_ogrid(), dot2_mn_ogrid(), gij_ogrid(), div_mn_ogrid(), traceless_strain_ogrid(), multm2_sym_mn_ogrid(), gij_etc_ogrid(), grad_ogrid(), multmv_mn_ogrid(), del2_ogrid(), getnu(), bval_from_neumann_sbp(), bval_from_neumann_bdry5(), set_ghosts_onesided_ogrid(), bval_from_neumann_arr_ogrid(), fatal_error_local(), read_snaptime(), update_snaptime(), log_filename_to_file(), initiate_isendrcv_bdry_ogrid(), finalize_isendrcv_bdry_ogrid(), start_serialize(), end_serialize(), stop_it(), mpiwait(), der2_ogrid(), derij_ogrid(), der_ogrid(), initiate_isendrcv_bdry_filter(), finalize_isendrcv_bdry_filter(), cyclic_parallel_y(), cyclic(), tridag_parallel_x(), tridag()

subroutine  solid_cells/pencil_criteria_solid_cells()

Dummy routine

Called from:

register_modules(), initialize_modules(), finalize_modules(), choose_pencils()

Call to:

fatal_error(), interpolate_quadratic_spline()

subroutine  solid_cells/solid_cells_clean_up()

Dummy routine

Called from:

helper_loop(), reload()

Call to:

fatal_error(), interpolate_quadratic_spline()

subroutine  solid_cells/solid_cells_timestep_first(f)

08-feb-17/Jorgen: Coded

Only save time, which is the time before timesteps on cartesian grid is performed. Will need this to set timestep of ogrid iterations.

Parameters:

f (mx,my,mz,mfarray) [real]

subroutine  solid_cells/solid_cells_timestep_second(f, int_dt, int_ds)

Time evolution of solid_cells variables.

Parameters:
subroutine  solid_cells/read_solid_cells_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  solid_cells/write_solid_cells_init_pars(unit)
Parameters:

unit [integer,in]

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars(), get_downpars()

subroutine  solid_cells/read_solid_cells_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  solid_cells/write_solid_cells_run_pars(unit)
Parameters:

unit [integer,in]

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars(), get_downpars()

subroutine  solid_cells/close_interpolation(f, ix0_, iy0_, iz0_, iobj, xxp, f_tmp, fluid_point)
Parameters:
  • f (,,*,*) [real]

  • ix0 [integer,in]

  • iy0 [integer,in]

  • iz0 [integer,in]

  • iobj [integer,in]

  • xxp (3) [real,in]

  • f_tmp (*) [real,inout]

  • fluid_point [logical,in]

subroutine  solid_cells/time_step_ogrid(f_cartesian)

Perform time steps on the curvilinear grid, including interpolation of flow variables back and forth between the overlapping grids. The time iterations should equal to one time step on the cartesian grid

07-feb-17/Jorgen+Nils: Adapded from timestep.f90

Parameters:

f_cartesian (mx,my,mz,mfarray) [real]

Use :

mpicomm (mpifinalize(), mpiallreduce_max()), boundcond (update_ghosts()), equationofstate (lpres_grad())

Called from:

helper_loop(), reload(), gen_output(), timeloop()

Call to:

mpifinalize(), update_ghosts(), wsnap_ogrid(), mpibarrier(), chemspec_normalization_n2_og(), calc_for_chem_mixture_ogrid(), calc_pencils_eos_ogrid_chem(), calc_pencils_chemistry_ogrid(), calc_heter_reaction_term(), dyk_dt_ogrid(), calc_heatcond_chemistry_ogrid(), fatal_error(), dot2_mn_ogrid(), gij_ogrid(), div_mn_ogrid(), traceless_strain_ogrid(), multm2_sym_mn_ogrid(), gij_etc_ogrid(), grad_ogrid(), multmv_mn_ogrid(), del2_ogrid(), getnu()

subroutine  solid_cells/wsnap_ogrid(chsnap[, enum[, flist]])

Write snapshot file of overlapping grid, labelled consecutively if enum==.true. Otherwise just write a snapshot without label (used for var.dat).

21-feb-17/Jorgen: Adapted from snapsjots.f90

Parameters:
  • chsnap [character,in]

  • enum [logical,in,]

  • flist [character,in,]

Use :

general (safe_character_assign()), io (log_filename_to_file()), sub (read_snaptime(), update_snaptime())

Called from:

init_solid_cells(), in_solid_cell(), time_step_ogrid(), helper_loop(), reload(), gen_output(), timeloop(), check_tspec_crit_log_interval(), check_tsnap_crit_log_interval(), check_tvid_crit_log_interval(), setup_signal_files(), print_metrics(), run_start()

Call to:

read_snaptime(), update_snaptime(), log_filename_to_file(), initiate_isendrcv_bdry_ogrid(), finalize_isendrcv_bdry_ogrid(), start_serialize(), fatal_error(), end_serialize(), stop_it(), mpiwait(), mpibarrier(), der2_ogrid(), derij_ogrid(), der_ogrid(), gij_ogrid(), gij_etc_ogrid(), initiate_isendrcv_bdry_filter(), finalize_isendrcv_bdry_filter(), cyclic_parallel_y(), cyclic(), tridag_parallel_x(), tridag()

subroutine  solid_cells/map_nearest_grid_ogrid(xxp, ineargridproc_ogrid, rthz)

Find index (ix0, iy0, iz0) of nearest grid point of particle in global coordinates.

jul/aug-17/Jorgen: Adapted from map_nearest_grid in particles_sub

to work for overlapping grid

Parameters:
  • xxp (3) [real,in]

  • ineargridproc_ogrid (4) [integer,out]

  • rthz (3) [real,out]

Call to:

mpiwait(), mpibarrier(), fatal_error(), der2_ogrid(), derij_ogrid(), der_ogrid(), gij_ogrid(), gij_etc_ogrid(), initiate_isendrcv_bdry_filter(), finalize_isendrcv_bdry_filter(), cyclic_parallel_y(), cyclic(), tridag_parallel_x(), tridag()

subroutine  solid_cells/interpolate_particles_ogrid(ivar1, ivar2, xxp, gp, inear_glob)

Use information from the overlapping curvilinear grid to interpolate the velocity of the particle. Must transform to cartesian velocity after interpolation.

Use linear interpolation for all flow variables, except the radial component of the velocity. Quadratic interpolation is used for this components, as this is consistent with how the radial velocity behaves near the cylinder.

31-okt-17/Jorgen: Coded

Parameters:
  • ivar1 [integer,in]

  • ivar2 [integer,in]

  • xxp (3) [real,in]

  • gp (1 - ivar1 + ivar2) [real,out]

  • inear_glob (4) [integer,in]

Call to:

fatal_error(), der2_ogrid(), derij_ogrid(), der_ogrid(), gij_ogrid(), gij_etc_ogrid(), initiate_isendrcv_bdry_filter(), finalize_isendrcv_bdry_filter(), cyclic_parallel_y(), cyclic(), tridag_parallel_x(), tridag()

subroutine  solid_cells/sc_diags_reductions()

Reduces accumulated diagnostic variables across threads. Only called if using OpenMP Dummy for solid cells ogrid

30-mar-23/TP: coded

subroutine  solid_cells/sc_init_reduc_pointers()

Initiliazes solid_cells specific pointers needed in thread_reductions Dummy for solid cells ogrid

30-mar-23/TP: Coded

Called from:

pde(), write_diagnostics()