solid_cells_reactive
Module
Description
$Id: solid_cells.f90 20898 2013-08-19 11:05:32Z nils.e.haugen@gmail.com $
This module add solid (as in no-fluid) cells in the domain. This can be used e.g. in order to simulate a cylinder in a cross flow.
** 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.
Quick access
- Types:
- 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
cparam: $Id$cdata: $Id$general(keep_compiler_quiet()): $Id$messages: $Id$chemistry: $Id$equationofstate: $Id$
Types
- type solid_cells/solid_object
- Type fields:
% form [character]
% r [real]
% rot (2) [real]
% t [real]
% vel (3) [real]
% x (3) [real]
Variables
- solid_cells/advance_solid_cells_position [private]
- solid_cells/ampl_noise [real,private/optional/default=0]
- solid_cells/ba_defined [private]
- solid_cells/c_dragx (*) [real,private/allocatable]
- solid_cells/c_dragx_p (*) [real,private/allocatable]
- solid_cells/c_dragy (*) [real,private/allocatable]
- solid_cells/c_dragy_p (*) [real,private/allocatable]
- solid_cells/c_dragz (*) [real,private/allocatable]
- solid_cells/c_dragz_p (*) [real,private/allocatable]
- solid_cells/calc_boundary_velocity [private]
- solid_cells/calc_diagnostics_solid [public]
- solid_cells/calc_diff_ib [private]
- solid_cells/calc_diff_visc_coef_ib [private]
- solid_cells/calc_reaction_rate [private]
- solid_cells/calc_solid_cells_chemistry [private]
- solid_cells/calculate_shift_matrix [private]
- solid_cells/char_consumption (*) [real,private/allocatable]
- solid_cells/cylinder_radius (5) [real,private]
- solid_cells/cylinder_temp (5) [real,private/optional/default=330.0]
- solid_cells/cylinder_theta (5) [real,private/optional/default=0.0]
- solid_cells/cylinder_xpos (5) [real,private]
- solid_cells/cylinder_xvel (5) [real,private/optional/default=0.0]
- solid_cells/cylinder_ypos (5) [real,private]
- solid_cells/cylinder_yvel (5) [real,private/optional/default=0.0]
- solid_cells/dfs (5,8) [real,private]
- solid_cells/dummy [integer,private]
- solid_cells/find_closest_wall [private]
- solid_cells/find_point [private]
- solid_cells/find_solid_cell_boundaries [private]
- solid_cells/find_unit_vectors [private]
- solid_cells/flow_dir [real,private]
- solid_cells/flow_dir_set [real,private]
- solid_cells/fpnearestgrid (*,*,*) [integer,private/allocatable]
- solid_cells/fs (5,8) [real,private]
- solid_cells/get_mu1_full_ib [private]
- solid_cells/get_xx_ib [private]
- solid_cells/heat_cond (*) [real,private/allocatable]
- solid_cells/ib_nearest_grid [private]
- solid_cells/ichemsco [integer,private]
- solid_cells/ichemsco2 [integer,private]
- solid_cells/ichemsn2 [integer,private]
- solid_cells/ichemso2 [integer,private]
- solid_cells/idiag_c_dragx [integer,private/optional/default=0]
- solid_cells/idiag_c_dragx_p [integer,private/optional/default=0]
- solid_cells/idiag_c_dragy [integer,private/optional/default=0]
- solid_cells/idiag_c_dragy_p [integer,private/optional/default=0]
- solid_cells/idiag_c_dragz [integer,private/optional/default=0]
- solid_cells/idiag_c_dragz_p [integer,private/optional/default=0]
- solid_cells/idiag_nusselt [integer,private/optional/default=0]
- solid_cells/ineargridshift [real,private/optional/default=1.0]
- solid_cells/interpolate_particles_ogrid [public]
- solid_cells/interpolate_point [private]
- solid_cells/irhocount [integer,private]
- solid_cells/irs [integer,private/optional/default=0]
- solid_cells/isco [integer,private]
- solid_cells/isco2 [integer,private]
- solid_cells/isn2 [integer,private]
- solid_cells/iso2 [integer,private]
- solid_cells/its [integer,private/optional/default=0]
- solid_cells/ius [integer,private/optional/default=0]
- solid_cells/ivs [integer,private/optional/default=0]
- solid_cells/iws [integer,private/optional/default=0]
- solid_cells/ixs [integer,private/optional/default=0]
- solid_cells/iys [integer,private/optional/default=0]
- solid_cells/izs [integer,private/optional/default=0]
- solid_cells/lcheck_ba [logical,private/optional/default=.false.]
- solid_cells/lerror_norm [logical,private/optional/default=.false.]
- solid_cells/lfull_diff_ib [logical,private/optional/default=.false.]
- solid_cells/limit_close_linear [real,private/optional/default=0.7]
- solid_cells/linear_interpolate_quadratic [private]
- solid_cells/lnointerception [logical,private/optional/default=.false.]
- solid_cells/lnusselt_output [logical,private/optional/default=.false.]
- solid_cells/locchemspec_error [logical,private/optional/default=.false.]
- solid_cells/locdensity_error [logical,private/optional/default=.false.]
- solid_cells/loutput_local_reaction_rate [logical,private/optional/default=.false.]
- solid_cells/lpos_advance [logical,private/optional/default=.false.]
- solid_cells/lradius_advance [logical,private/optional/default=.false.]
- solid_cells/lsco [logical,private]
- solid_cells/lsco2 [logical,private]
- solid_cells/lsecondorder_chem [logical,private/optional/default=.true.]
- solid_cells/lsecondorder_rho [logical,private/optional/default=.true.]
- solid_cells/lset_flow_dir [logical,private/optional/default=.false.]
- solid_cells/lsimple_diff_ib [logical,private/optional/default=.true.]
- solid_cells/lsn2 [logical,private]
- solid_cells/lso2 [logical,private]
- solid_cells/lstefan_flow [logical,private/optional/default=.true.]
- solid_cells/map_nearest_grid_ogrid [public]
- solid_cells/max_items [integer,private/parameter/optional/default=5]
- solid_cells/mspecies (nchemspec) [real,private]
- solid_cells/ncylinders [integer,private/optional/default=0]
- solid_cells/new_stefan [logical,private/optional/default=.false.]
- solid_cells/nforcepoints [integer,private/optional/default=200]
- solid_cells/nlat [integer,private]
- solid_cells/nlong [integer,private]
- solid_cells/nobjects [integer,private]
- solid_cells/nspheres [integer,private/optional/default=0]
- solid_cells/nsvar [integer,private/optional/default=0]
- solid_cells/nusselt (*) [real,private/allocatable]
- solid_cells/object_skin [real,private/optional/default=0]
- solid_cells/objects (5) [solid_object,private]
- solid_cells/osci_a [real,private/optional/default=0.5]
- solid_cells/osci_dir [integer,private/optional/default=1]
- solid_cells/osci_f [real,private/optional/default=4.0]
- solid_cells/osci_t [real,private]
- solid_cells/pressure0 [real,private/optional/default=1013000.0]
- solid_cells/r_int_outer [public]
- solid_cells/r_ogrid [public]
- solid_cells/r_theta_phi_velocity_in_point [private]
- solid_cells/read_snapshot_solid_cells [private]
- solid_cells/rgas_unit_sys [real,private]
- solid_cells/rhosum [real,private]
- solid_cells/sc_diags_reductions [public]
- solid_cells/sc_init_reduc_pointers [public]
- solid_cells/scp [real,private/optional/default=14650000.0]
- solid_cells/skin_depth [real,private/optional/default=0]
- solid_cells/solid_ds [real,private/optional/default=0.0]
- solid_cells/solid_dt [real,private/optional/default=0.0]
- solid_cells/solid_object [private]
- solid_cells/solid_reactions_intro_time [real,private/optional/default=0.0]
- solid_cells/sphere_phi (5) [real,private/optional/default=0.0]
- solid_cells/sphere_radius (5) [real,private]
- solid_cells/sphere_temp (5) [real,private/optional/default=330.0]
- solid_cells/sphere_theta (5) [real,private/optional/default=0.0]
- solid_cells/sphere_xpos (5) [real,private]
- solid_cells/sphere_xvel (5) [real,private/optional/default=0.0]
- solid_cells/sphere_ypos (5) [real,private]
- solid_cells/sphere_yvel (5) [real,private/optional/default=0.0]
- solid_cells/sphere_zpos (5) [real,private]
- solid_cells/sphere_zvel (5) [real,private/optional/default=0.0]
- solid_cells/srho [real,private/optional/default=1.08]
- solid_cells/svarname (8) [character,private]
- solid_cells/t0 [real,private]
- solid_cells/theta_shift [real,private/optional/default=0.0]
- solid_cells/time_step_ogrid [public]
- solid_cells/vs_normal (*) [real,private/allocatable]
- solid_cells/write_snapshot_solid_cells [private]
- solid_cells/wsnap_ogrid [public]
- solid_cells/wsnap_solid_cells [private]
- solid_cells/xorigo_ogrid [public]
Subroutines and functions
- subroutine solid_cells/register_solid_cells()
Set up indices for access to the fs and dfs arrays
- Call to:
- subroutine solid_cells/initialize_solid_cells(f)
Define the geometry of the solids. Currently only cylinders and spheres are implemented.
- Parameters:
- Use :
- Call to:
fatal_error(),fp_nearest_grid(),initial_condition_solid_cells(),output_solid_cells()
- 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.
28-nov-2008/nils: coded
- Parameters:
- Use :
initcond(gaunoise()),initialcondition(initial_condition_solid_cells())- Call to:
fatal_error(),initial_condition_solid_cells(),output_solid_cells()
- subroutine solid_cells/dsolid_dt(f, df, p)
Find pressure and stress in all the forcepoints (fp) positioned on object surface, based on values in nearest grid point.
mar-2009/kragset: coded okt-2009/kragset: updated to include multiple objects nov-2010/kragset: updated to include spheres
- subroutine solid_cells/dsolid_dt_integrate()
Calculate drag- and lift-coefficients for solid cell objects by integrating fluid force on object surface.
mar-2009/kragset: coded okt-2009/kragset: updated to include multiple objects nov-2010/kragset: updated to include spheres
- 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 :
- function solid_cells/in_solid_cell(part_pos, part_rad)
Check if the position px,py,pz is within a solid cell
02-dec-2008/nils: coded
- Parameters:
part_pos (3) [real]
part_rad [real]
- Return:
in_solid_cell [logical]
- Call to:
- subroutine solid_cells/freeze_solid_cells(df)
If we are in a solid cell (or in a cell where the value of the variables are found from interpolation) set df=0 for all variables
19-nov-2008/nils: coded
- Parameters:
- Call to:
- subroutine solid_cells/read_solid_cells_init_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine solid_cells/read_solid_cells_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine solid_cells/write_solid_cells_init_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- subroutine solid_cells/write_solid_cells_run_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- subroutine solid_cells/pencil_criteria_solid_cells()
All pencils that the Solid_Cells module depends on are specified here.
mar-2009/kragset: coded
Request p and sij-pencils here Request rho-pencil
- subroutine solid_cells/solid_cells_clean_up()
Deallocate the variables allocated in solid_cells
7-oct-2010/dhruba: adeped from hydro_kinematic 21-jul-2011/bing: fixed, only deallocate variable if allocted
- subroutine solid_cells/solid_cells_timestep_first(f)
Setup dfs in the beginning of each itsub.
- subroutine solid_cells/solid_cells_timestep_second(f, int_dt, int_ds)
Time evolution of solid_cells variables.
- Parameters:
- Call to: