filter.f

filter.f#

These are the subroutines in filter.f.

Subroutines and functions

subroutine  pod_proj(uu, r1, nn, msg)#

Apply smoothing function to ROM coefficients vector uu.

Parameters:
  • uu (nn) [real] :: output/input, ROM coefficients vector to be filtered.

  • r1 [integer] :: input, number of modes to be filtered.

  • nn [integer] :: input, length of vector uu.

  • msg [character] :: input, specifier for for different filter functions. Currently, msg = step is a supported specifier. msg = linear, msg = parabo and msg = cubic are deprecated.

Called from:

rom_step_legacy(), bdfext_step(), post(), set_bdf_coef(), evalc(), evalc3(), evalc4(), setcintp(), setr_t(), setr_v(), setuavg(), settavg(), seth(), hybrid_advance(), constrained_pod(), evalc2(), evf(), check_diag(), check_box(), update_h(), set_ucoef_in_ext(), set_tcoef_in_ext(), setuj()

Call to:

setdf(), dgetrf(), dgetrs(), push_sol(), pv2b(), ps2b(), pop_sol()

subroutine  pod_df(uu)#

Apply ROM differential filter to ROM coefficients vector uu.

Parameters:

uu (nb) [real] :: output/input, ROM coefficients vector to be filtered.

Called from:

rom_step_legacy(), bdfext_step(), post(), set_bdf_coef(), evalc(), evalc3(), evalc4(), setcintp(), setr_t(), setr_v()

Call to:

setdf(), dgetrf(), dgetrs(), push_sol(), pv2b(), ps2b(), pop_sol()

subroutine  setdf(flu, a, b, ad_diff)#

Set up ROM differential filter (DF) operator \(B + \text{filter radius} * A\).

Parameters:
  • flu (nb * nb) [real] :: output, differential filter operator.

  • a (nb * nb) [real] :: input, ROM stiffness matrix.

  • b (nb * nb) [real] :: input, ROM mass matrix.

  • ad_diff [real] :: input, filter radius.

Called from:

pod_proj(), pod_df()

Call to:

push_sol(), pv2b(), ps2b(), pop_sol()

subroutine  set_les_imp(fles1, fles2)#

Set implicit les matrices.

Parameters:
  • fles1 (1 + nb,nb) [real] :: filtering matrix for velocity

  • fles2 (1 + nb,nb) [real] :: filtering matrix for temperature

Called from:

rom_update(), offline_mode(), online_mode(), recon_mode(), rom_setup(), asnap(), setops(), setqoi()

Call to:

push_sol(), pv2b(), ps2b(), pop_sol()

subroutine  apply_les_imp(uu, tt, sig, fles1, fles2, tmp)#

Apply implicit les filter to coefficients.

Parameters:
  • uu (1 + nb) [real] :: velocity coefficients

  • tt (1 + nb) [real] :: temperature coefficients

  • sig [real] :: filter strength

  • fles1 (1 + nb,nb) [real] :: filter matrix for velocity

  • fles2 (1 + nb,nb) [real] :: filter matrix for temperature

  • tmp (1 + nb) [real] :: work array

Called from:

bdfext_step()

subroutine  evalnut(nut, u1, u2, u3)#

Evaluate eddy viscosity.

Parameters:
  • nut (lx1,ly1,lz1,lelt) [real] :: eddy viscosity field

  • u1 (lt) [real] :: first component of velocity field

  • u2 (lt) [real] :: second component of velocity field

  • u3 (lt) [real] :: third component of velocity field

subroutine  efr_relaxation(filtered_coef, coef, relax, nb)#

Perform the relaxation step in the evolve-filter-relaxation ROM.

Parameters:
  • filtered_coef (nb) [real] :: input/output, filtered ROM coefficients vector.

  • coef (nb) [real] :: input, unfiltered ROM coefficients vector.

  • relax [real] :: input, relaxation parameter in [dt, 1].

  • nb [integer] :: input, length of vector filtered_coef and coef.

Called from:

bdfext_step()