Defines a vector valued Dirichlet condition prescribed by mathematical expressions.
|
| subroutine | expression_dirichlet_vector_init (this, coef, json) |
| | Constructor from JSON.
|
| |
| subroutine | expression_dirichlet_vector_init_from_components (this, coef, str_x, str_y, str_z) |
| | Constructor from components.
|
| |
| subroutine | expression_dirichlet_vector_free (this) |
| | Destructor.
|
| |
| subroutine | expression_dirichlet_vector_finalize (this, only_facets) |
| | Finalize.
|
| |
| subroutine | expression_dirichlet_vector_update (this, time, strm) |
| | Bring the values up to date with the current time.
|
| |
| subroutine | expression_dirichlet_vector_apply_scalar (this, x, n, time, strong) |
| | (No-op) Apply scalar.
|
| |
| subroutine | expression_dirichlet_vector_apply_scalar_dev (this, x_d, time, strong, strm) |
| | (No-op) Apply scalar (device version).
|
| |
| subroutine | expression_dirichlet_vector_apply_vector (this, x, y, z, n, time, strong) |
| | Apply the condition to a vector field.
|
| |
| subroutine | expression_dirichlet_vector_apply_vector_dev (this, x_d, y_d, z_d, time, strong, strm) |
| | Apply the condition to a vector field (device version).
|
| |
◆ expression_dirichlet_vector_apply_scalar()
| subroutine expression_dirichlet_vector::expression_dirichlet_vector_apply_scalar |
( |
class(expression_dirichlet_vector_t), intent(inout) |
this, |
|
|
real(kind=rp), dimension(n), intent(inout) |
x, |
|
|
integer, intent(in) |
n, |
|
|
type(time_state_t), intent(in), optional |
time, |
|
|
logical, intent(in), optional |
strong |
|
) |
| |
|
private |
- Parameters
-
| [in,out] | x | The field onto which to apply the values. |
| [in] | n | The size of x. |
| [in] | time | The current time state. |
| [in] | strong | Whether the condition is applied strongly. |
Definition at line 309 of file expression_dirichlet_vector.f90.
◆ expression_dirichlet_vector_apply_scalar_dev()
| subroutine expression_dirichlet_vector::expression_dirichlet_vector_apply_scalar_dev |
( |
class(expression_dirichlet_vector_t), intent(inout), target |
this, |
|
|
type(c_ptr), intent(inout) |
x_d, |
|
|
type(time_state_t), intent(in), optional |
time, |
|
|
logical, intent(in), optional |
strong, |
|
|
type(c_ptr), intent(inout) |
strm |
|
) |
| |
|
private |
- Parameters
-
| [in,out] | x_d | Device pointer to the field. |
| [in] | time | The current time state. |
| [in] | strong | Whether the condition is applied strongly. |
| [in,out] | strm | The device stream to issue the work on. |
Definition at line 322 of file expression_dirichlet_vector.f90.
◆ expression_dirichlet_vector_apply_vector()
| subroutine expression_dirichlet_vector::expression_dirichlet_vector_apply_vector |
( |
class(expression_dirichlet_vector_t), intent(inout) |
this, |
|
|
real(kind=rp), dimension(n), intent(inout) |
x, |
|
|
real(kind=rp), dimension(n), intent(inout) |
y, |
|
|
real(kind=rp), dimension(n), intent(inout) |
z, |
|
|
integer, intent(in) |
n, |
|
|
type(time_state_t), intent(in), optional |
time, |
|
|
logical, intent(in), optional |
strong |
|
) |
| |
|
private |
- Parameters
-
| [in,out] | x | The x-component of the field. |
| [in,out] | y | The y-component of the field. |
| [in,out] | z | The z-component of the field. |
| [in] | n | The size of x, y and z. |
| [in] | time | The current time state. |
| [in] | strong | Whether the condition is applied strongly. |
Definition at line 338 of file expression_dirichlet_vector.f90.
◆ expression_dirichlet_vector_apply_vector_dev()
| subroutine expression_dirichlet_vector::expression_dirichlet_vector_apply_vector_dev |
( |
class(expression_dirichlet_vector_t), intent(inout), target |
this, |
|
|
type(c_ptr), intent(inout) |
x_d, |
|
|
type(c_ptr), intent(inout) |
y_d, |
|
|
type(c_ptr), intent(inout) |
z_d, |
|
|
type(time_state_t), intent(in), optional |
time, |
|
|
logical, intent(in), optional |
strong, |
|
|
type(c_ptr), intent(inout) |
strm |
|
) |
| |
|
private |
- Parameters
-
| [in,out] | x_d | Device pointer to the x-component of the field. |
| [in,out] | y_d | Device pointer to the y-component of the field. |
| [in,out] | z_d | Device pointer to the z-component of the field. |
| [in] | time | The current time state. |
| [in] | strong | Whether the condition is applied strongly. |
| [in,out] | strm | The device stream to issue the work on. |
Definition at line 386 of file expression_dirichlet_vector.f90.
◆ expression_dirichlet_vector_finalize()
Tabulates the coordinates of the points of the mask and evaluates whichever of the three expressions do not depend on time.
- Parameters
-
| [in] | only_facets | Whether to only mark the facets of the mask. |
Definition at line 190 of file expression_dirichlet_vector.f90.
◆ expression_dirichlet_vector_free()
◆ expression_dirichlet_vector_init()
◆ expression_dirichlet_vector_init_from_components()
| subroutine expression_dirichlet_vector::expression_dirichlet_vector_init_from_components |
( |
class(expression_dirichlet_vector_t), intent(inout), target |
this, |
|
|
type(coef_t), intent(in), target |
coef, |
|
|
character(len=*), intent(in) |
str_x, |
|
|
character(len=*), intent(in) |
str_y, |
|
|
character(len=*), intent(in) |
str_z |
|
) |
| |
|
private |
- Parameters
-
| [in] | coef | The SEM coefficients. |
| [in] | str_x | The expression for the x-component. |
| [in] | str_y | The expression for the y-component. |
| [in] | str_z | The expression for the z-component. |
Definition at line 125 of file expression_dirichlet_vector.f90.
◆ expression_dirichlet_vector_update()
A no-op unless at least one of the expressions depends on time and the values have not already been updated in this timestep. Only the time dependent components are re-evaluated, but all three are copied to the device, since they share one transfer anyway.
- Parameters
-
| [in] | time | The current time state. |
| [in,out] | strm | The device stream to issue the copies on. |
Definition at line 251 of file expression_dirichlet_vector.f90.