polymer

Module

Description

$Id$

This modules deals with all aspects of polymers.

** 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 :: lpolymer = .true.

MVAR CONTRIBUTION 6 MAUX CONTRIBUTION 1

PENCILS PROVIDED poly(3,3);trp;fr;frC(3,3) PENCILS PROVIDED u_dot_gradC(3,3);Cijk(3,3,3); del2poly(3,3); PENCILS PROVIDED div_frC(3); divC(3); grad_fr(3)


Quick access

Variables:

calc_pencils_fene_p, calc_pencils_oldroyd_b, cdotgradut, enum_poly_algo, enum_poly_model, eta_poly, fenep_l, frmax_local, gradudotc, idiag_frmax, idiag_polytrm, initpoly, lpoly_diffusion, lpolyadvect, lpolyback, lupw_poly, mu_poly, pamp, poly_algo, poly_model, rod_dirn, simple_dpoly_dt, tau_poly, tau_poly1

Routines:

calc_diagnostics_polymer(), calc_pencils_polymer(), calc_polymer_after_boundary(), dpoly_dt(), get_slices_polymer(), init_poly(), initialize_polymer(), pencil_criteria_polymer(), pencil_interdep_polymer(), read_polymer_init_pars(), read_polymer_run_pars(), register_polymer(), rprint_polymer(), write_polymer_init_pars(), write_polymer_run_pars()

Needed modules

Variables

  • polymer/calc_pencils_fene_p [private]
  • polymer/calc_pencils_oldroyd_b [private]
  • polymer/cdotgradut (nx,3,3) [real,private]
  • polymer/enum_poly_algo [integer,private/optional/default=0]
  • polymer/enum_poly_model [integer,private/optional/default=0]
  • polymer/eta_poly [real,private/optional/default=0.0]
  • polymer/fenep_l [real,private/optional/default=0.0]
  • polymer/frmax_local [real,private/optional/default=1.0]
  • polymer/gradudotc (nx,3,3) [real,private]
  • polymer/id_block_persistent [integer,private/parameter/optional/default=2000]
  • polymer/id_record_dt_gw [integer,private/parameter/optional/default=350]
  • polymer/id_record_eps_rkf [integer,private/parameter/optional/default=331]
  • polymer/id_record_forcing_location [integer,private/parameter/optional/default=270]
  • polymer/id_record_forcing_torus [integer,private/parameter/optional/default=272]
  • polymer/id_record_forcing_tsforce [integer,private/parameter/optional/default=271]
  • polymer/id_record_hydro_ampl [integer,private/parameter/optional/default=286]
  • polymer/id_record_hydro_avec_gb [integer,private/parameter/optional/default=289]
  • polymer/id_record_hydro_location [integer,private/parameter/optional/default=285]
  • polymer/id_record_hydro_phase1 [integer,private/parameter/optional/default=281]
  • polymer/id_record_hydro_phase2 [integer,private/parameter/optional/default=282]
  • polymer/id_record_hydro_qvec_gb [integer,private/parameter/optional/default=288]
  • polymer/id_record_hydro_tphase [integer,private/parameter/optional/default=280]
  • polymer/id_record_hydro_tsforce [integer,private/parameter/optional/default=284]
  • polymer/id_record_hydro_wavenumber [integer,private/parameter/optional/default=287]
  • polymer/id_record_ism_bold_mass [integer,private/parameter/optional/default=252]
  • polymer/id_record_ism_pos_next_old [integer,private/parameter/optional/default=251]
  • polymer/id_record_ism_snrs [integer,private/parameter/optional/default=259]
  • polymer/id_record_ism_snrs_old [integer,private/parameter/optional/default=1002]
  • polymer/id_record_ism_t_cluster [integer,private/parameter/optional/default=261]
  • polymer/id_record_ism_t_next_old [integer,private/parameter/optional/default=250]
  • polymer/id_record_ism_t_next_sni [integer,private/parameter/optional/default=253]
  • polymer/id_record_ism_t_next_snii [integer,private/parameter/optional/default=254]
  • polymer/id_record_ism_toggle_old [integer,private/parameter/optional/default=1001]
  • polymer/id_record_ism_toggle_sni [integer,private/parameter/optional/default=257]
  • polymer/id_record_ism_toggle_snii [integer,private/parameter/optional/default=258]
  • polymer/id_record_ism_x_cluster [integer,private/parameter/optional/default=255]
  • polymer/id_record_ism_y_cluster [integer,private/parameter/optional/default=256]
  • polymer/id_record_ism_z_cluster [integer,private/parameter/optional/default=260]
  • polymer/id_record_iteration_number [integer,private/parameter/optional/default=100]
  • polymer/id_record_magnetic_ampl [integer,private/parameter/optional/default=312]
  • polymer/id_record_magnetic_phase [integer,private/parameter/optional/default=311]
  • polymer/id_record_random_seeds [integer,private/parameter/optional/default=1]
  • polymer/id_record_random_seeds2 [integer,private/parameter/optional/default=2]
  • polymer/id_record_shear_delta_y [integer,private/parameter/optional/default=320]
  • polymer/id_record_special_lnkmin0 [integer,private/parameter/optional/default=340]
  • polymer/id_record_time_step [integer,private/parameter/optional/default=330]
  • polymer/idiag_frmax [integer,private/optional/default=0]

    DIAG_DOC: $max(f(r))$

  • polymer/idiag_polytrm [integer,private/optional/default=0]

    DIAG_DOC: $leftlangle Tr[C_{ij}]rightrangle$

  • polymer/initpoly (ninit) [character,private/optional/default='nothing']
  • polymer/lpoly_diffusion [logical,private/optional/default=.false.]
  • polymer/lpolyadvect [logical,private/optional/default=.true.]
  • polymer/lpolyback [logical,private/optional/default=.true.]
  • polymer/lupw_poly [logical,private/optional/default=.false.]
  • polymer/mu_poly [real,private/optional/default=0.0]
  • polymer/pamp [real,private/optional/default=1.0]
  • polymer/poly_algo [character,private/optional/default='simple']
  • polymer/poly_model [character,private/optional/default='oldroyd-b']
  • polymer/rod_dirn (3) [real,private/optional/default=(/0.0,0.0,0.0/)]
  • polymer/simple_dpoly_dt [private]
  • polymer/tau_poly [real,private/optional/default=0.0]
  • polymer/tau_poly1 [real,private/optional/default=1.0]

Subroutines and functions

subroutine  polymer/register_polymer()

Initialise variables.

14-Aug-08/Dhruba: coded

Use :

farraymanager

Called from:

register_modules()

Call to:

svn_id(), warning(), fatal_error(), not_implemented(), symmetrise3x3_ut2lt(), del2m3x3_sym(), trace_mn(), gijl_symmetric(), u_dot_grad_mat(), div_mn_2tensor(), dot_mn_vm(), max_mn_name(), identify_bcs(), mult_matrix(), max_mn(), calc_diagnostics_polymer(), kronecker_delta()

subroutine  polymer/initialize_polymer(f)

Perform any post-parameter-read initialization. At present does nothing.

14-aug-08/dhruba: initialize polymer field

Parameters:

f (,,*,*) [real,contiguous]

Called from:

register_modules(), initialize_modules()

Call to:

warning(), fatal_error(), not_implemented(), symmetrise3x3_ut2lt(), del2m3x3_sym(), trace_mn(), gijl_symmetric(), u_dot_grad_mat(), div_mn_2tensor(), dot_mn_vm(), max_mn_name(), identify_bcs(), mult_matrix(), max_mn(), calc_diagnostics_polymer(), kronecker_delta()

subroutine  polymer/init_poly(f)

Initialise polymer field.

14-aug-2008/dhruba: coded

Parameters:

f (,,*,*) [real,contiguous]

Use :

initcond

Called from:

start

Call to:

fatal_error(), not_implemented(), symmetrise3x3_ut2lt(), del2m3x3_sym(), trace_mn(), gijl_symmetric(), u_dot_grad_mat(), div_mn_2tensor(), dot_mn_vm(), max_mn_name(), identify_bcs(), mult_matrix(), max_mn(), calc_diagnostics_polymer(), kronecker_delta()

subroutine  polymer/pencil_criteria_polymer()

All pencils that the Polymer module depends on are specified here.

Called from:

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

Call to:

not_implemented(), fatal_error(), symmetrise3x3_ut2lt(), del2m3x3_sym(), trace_mn(), gijl_symmetric(), u_dot_grad_mat(), div_mn_2tensor(), dot_mn_vm(), max_mn_name(), identify_bcs(), mult_matrix(), max_mn(), calc_diagnostics_polymer(), kronecker_delta()

subroutine  polymer/pencil_interdep_polymer(lpencil_in)

Interdependency among pencils from the Polymer module is specified here.

18-aug-2008/dhruba: coded

Parameters:

lpencil_in (npencils) [logical]

Called from:

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

Call to:

symmetrise3x3_ut2lt(), del2m3x3_sym(), trace_mn(), gijl_symmetric(), u_dot_grad_mat(), fatal_error(), div_mn_2tensor(), dot_mn_vm(), max_mn_name(), identify_bcs(), mult_matrix(), not_implemented(), max_mn(), calc_diagnostics_polymer(), kronecker_delta()

subroutine  polymer/calc_pencils_polymer(f, p)

Calculate polymer pencils. Most basic pencils should come first, as others may depend on them.

18-aug-08/dhruba: coded

Parameters:
  • f (,,*,*) [real,inout,contiguous]

  • p [pencil_case,inout]

Called from:

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

Call to:

symmetrise3x3_ut2lt(), del2m3x3_sym(), trace_mn(), gijl_symmetric(), u_dot_grad_mat(), fatal_error(), div_mn_2tensor(), dot_mn_vm(), max_mn_name(), identify_bcs(), mult_matrix(), not_implemented(), max_mn(), calc_diagnostics_polymer(), kronecker_delta()

subroutine  polymer/calc_diagnostics_polymer(p)

Calculates the diagnostic quantities for polymer module Most basic pencils should come first, as others may depend on them.

Parameters:

p [pencil_case]

Use :

diagnostics (sum_mn_name(), max_mn_name())

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer(), dpoly_dt(), calc_diagnostics_polymer()

Call to:

max_mn_name(), identify_bcs(), mult_matrix(), not_implemented(), fatal_error(), max_mn(), calc_diagnostics_polymer(), kronecker_delta()

subroutine  polymer/dpoly_dt(f, df, p)

Polymer evolution.

18-aug-08/dhruba: coded

Parameters:
  • f (,,*,*) [real,contiguous]

  • df (,,*,*) [real,contiguous]

  • p [pencil_case]

Called from:

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

Call to:

identify_bcs(), mult_matrix(), not_implemented(), fatal_error(), max_mn(), calc_diagnostics_polymer(), kronecker_delta()

subroutine  polymer/calc_polymer_after_boundary(f)
Parameters:

f (,,*,*) [real,contiguous]

Called from:

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

Call to:

fatal_error()

subroutine  polymer/read_polymer_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  polymer/write_polymer_init_pars(unit)
Parameters:

unit [integer,in]

Called from:

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

subroutine  polymer/read_polymer_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  polymer/write_polymer_run_pars(unit)
Parameters:

unit [integer,in]

Called from:

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

subroutine  polymer/get_slices_polymer(f, slices)

Write slices for animation of polymeric variables.

26-jul-06/tony: coded

Parameters:
subroutine  polymer/rprint_polymer(lreset[, lwrite])

Reads and registers print parameters relevant for polymer.

8-aug-10/dhruba: aped from pscalar

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics, farraymanager (farray_index_append())

Called from:

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