Neko  0.8.1
A portable framework for high-order spectral element flow simulations
filters Module Reference

A module containing filter functions and subroutines. These functions are used to modify fields in a way that is useful for various simulations. More...

Functions/Subroutines

subroutine, public smooth_step_field (F, edge0, edge1)
 Apply a smooth step function to a field. More...
 
subroutine, public permeability_field (F_out, x, k_0, k_1, q)
 Apply a permeability function to a field. More...
 
subroutine, public step_function_field (F, x0, value0, value1)
 Apply a step function to a field. More...
 

Detailed Description

A module containing filter functions and subroutines. These functions are used to modify fields in a way that is useful for various simulations.

Function/Subroutine Documentation

◆ permeability_field()

subroutine, public filters::permeability_field ( type(field_t), intent(inout)  F_out,
type(field_t), intent(in)  x,
real(kind=rp), intent(in)  k_0,
real(kind=rp), intent(in)  k_1,
real(kind=rp), intent(in)  q 
)

Apply a permeability function to a field.

The permeability function is defined as:

\[ k(x) = k_0 + (k_1 - k_0) x \frac{q + 1}{q + x}} \]

Parameters
[in,out]FField to be modified.
[in]k_0Permeability at x=0.
[in]k_1Permeability at x=1.
[in]qPenalty factor.

Definition at line 77 of file filters.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smooth_step_field()

subroutine, public filters::smooth_step_field ( type(field_t), intent(inout)  F,
real(kind=rp), intent(in)  edge0,
real(kind=rp), intent(in)  edge1 
)

Apply a smooth step function to a field.

The smooth step function is defined as:

\[ t = (x - edge0) / (edge1 - edge0) f(t) = \begin{cases} t^3 (t (6x - 15) + 10), & t \in [0, 1] \\ 0, & t \leq 0 \\ 1, & t \geq 1 \\ \end{cases} \]

Note
The step can be inverted by swapping edge0 and edge1.
Parameters
[in,out]FField to be modified.
[in]edge0Edge giving output 0.
[in]edge1Edge giving output 1.

Definition at line 61 of file filters.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ step_function_field()

subroutine, public filters::step_function_field ( type(field_t), intent(inout)  F,
real(kind=rp), intent(in)  x0,
real(kind=rp), intent(in)  value0,
real(kind=rp), intent(in)  value1 
)

Apply a step function to a field.

Parameters
[in,out]FField to be modified.
[in]x0Position of the step.
[in]value0Value of the field before the step.
[in]value1Value of the field after the step.

Definition at line 93 of file filters.f90.

Here is the call graph for this function:
Here is the caller graph for this function: