|
Neko 1.99.7
A portable framework for high-order spectral element flow simulations
|
Collects data on the boundary points of one or more labelled zones and perform some bounary operations. More...

Public Member Functions | |
| procedure, pass(this) | init (this, coef, zone_indices, outward_normals) |
| Constructor. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | update_geometry (this) |
| Re-gather the geometry factors at the boundary points. | |
| generic | get (this, name, v) |
| Sample a quantity into a boundary vector. | |
| generic | get (this, f, v) |
| Sample a quantity into a boundary vector. | |
| generic | scatter (this, v, f, clear) |
| Scatter boundary values back into a full field. | |
| generic | scatter (this, name, f, clear) |
| Scatter boundary values back into a full field. | |
| generic | integrate (this, name) |
| Surface integral of a quantity over the zones. | |
| generic | integrate (this, f) |
| Surface integral of a quantity over the zones. | |
| generic | average (this, name) |
| Area weighted average of a quantity over the zones. | |
| generic | average (this, f) |
| Area weighted average of a quantity over the zones. | |
| procedure, pass(this) | surface_area (this) |
| Total surface area of the zones. | |
| procedure, pass(this) | centroid (this) |
| Area weighted geometric centre of the zones. | |
| procedure, pass(this) | point_average (this) |
| Unweighted mean of the boundary point coordinates. | |
| generic | integrate_vector (this, fx, fy, fz) |
| Surface integral of a vector quantity, component by component. | |
| generic | integrate_vector (this, fx, fy, fz) |
| Surface integral of a vector quantity, component by component. | |
| generic | integrate_normal (this, name) |
| Surface integral of a scalar times the normal. | |
| generic | integrate_normal (this, f) |
| Surface integral of a scalar times the normal. | |
| generic | flux (this, u, v, w) |
| Flux of a vector quantity through the zones. | |
| generic | flux (this, u, v, w) |
| Flux of a vector quantity through the zones. | |
| generic | tangential (this, vx, vy, vz) |
| Wall tangential part of a vector. | |
| generic | tangential (this, vx, vy, vz, tx, ty, tz) |
| Wall tangential part of a vector. | |
| generic | normal (this, vx, vy, vz) |
| Wall normal part of a vector. | |
| generic | normal (this, vx, vy, vz, nx, ny, nz) |
| Wall normal part of a vector. | |
Static Public Member Functions | |
| procedure, nopass | is_geometry (name) |
| Whether a name refers to a geometry attribute. | |
Public Attributes | |
| type(coef_t), pointer | coef => null() |
| SEM coefficients. | |
| type(dirichlet_t) | bc |
| Boundary mask built from the chosen zones. | |
| integer, dimension(:), allocatable | zone_indices |
| Labelled zones included. | |
| integer | n_local = 0 |
| Number of boundary points on this rank. | |
| integer | n_global = 0 |
| Number of boundary points over all ranks. | |
| type(vector_t) | x |
| Coordinates at the boundary points. | |
| type(vector_t) | y |
| type(vector_t) | z |
| type(vector_t) | n_x |
| Unit normal components at the boundary points. | |
| type(vector_t) | n_y |
| type(vector_t) | n_z |
| type(vector_t) | area |
| Surface quadrature weights at the boundary points. | |
| logical | outward_normals = .true. |
Whether the stored normals point out of the wall into the fluid. When false they keep the coef convention, pointing out of the fluid. | |
Private Member Functions | |
| procedure, pass(this), private | get_vector_by_name (this, name, v) |
| Sample a named quantity at the boundary points into a vector. | |
| procedure, pass(this), private | get_vector_by_field (this, f, v) |
| Sample a field at the boundary points into a vector. | |
| procedure, pass(this), private | scatter_to_field_by_vector (this, v, f, clear) |
| Scatter a boundary vector back into a full field. | |
| procedure, pass(this), private | scatter_to_field_by_name (this, name, f, clear) |
| Scatter a named boundary quantity into a full field. | |
| procedure, pass(this), private | integrate_by_name (this, name) |
| Surface integral of a named quantity over the zones. | |
| procedure, pass(this), private | integrate_by_field (this, f) |
| Surface integral of a field over the zones. | |
| procedure, pass(this), private | average_by_name (this, name) |
| Area weighted average of a named quantity over the zones. | |
| procedure, pass(this), private | average_by_field (this, f) |
| Area weighted average of a field over the zones. | |
| procedure, pass(this), private | integrate_vector_by_name (this, fx, fy, fz) |
| Surface integral of a named vector quantity, component by component. | |
| procedure, pass(this), private | integrate_vector_by_field (this, fx, fy, fz) |
| Surface integral of a vector quantity, component by component. | |
| procedure, pass(this), private | integrate_normal_by_name (this, name) |
| Surface integral of a named scalar quantity times the normal. | |
| procedure, pass(this), private | integrate_normal_by_field (this, f) |
| Surface integral of a scalar quantity times the normal. | |
| procedure, pass(this), private | flux_by_name (this, u, v, w) |
| Flux of a named vector quantity through the zones. | |
| procedure, pass(this), private | flux_by_field (this, u, v, w) |
| Flux of a vector quantity through the zones. | |
| procedure, pass(this), private | tangential_inplace (this, vx, vy, vz) |
Keep only the wall tangential part of a vector at the boundary points, in place. Each component is overwritten with v - (v . n) n. | |
| procedure, pass(this), private | tangential_split (this, vx, vy, vz, tx, ty, tz) |
Wall tangential part of a vector at the boundary points, out of place. The input (vx, vy, vz) is left unchanged and (tx, ty, tz) receive v - (v . n) n. | |
| procedure, pass(this), private | normal_inplace (this, vx, vy, vz) |
Keep only the wall normal part of a vector at the boundary points, in place. Each component is overwritten with (v . n) n. | |
| procedure, pass(this), private | normal_split (this, vx, vy, vz, nx, ny, nz) |
Wall normal part of a vector at the boundary points, out of place. The input (vx, vy, vz) is left unchanged and (nx, ny, nz) receive (v . n) n. | |
Private Attributes | |
| type(vector_t), private | work |
| Work vector. | |
Definition at line 56 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::average | ( | class(boundary_data_t), intent(inout) | this, |
| type(field_t), intent(in) | f | ||
| ) |
| f | The field to average. |
Definition at line 108 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::average | ( | class(boundary_data_t), intent(inout) | this, |
| character(len=*), intent(in) | name | ||
| ) |
| name | The quantity to average. |
Definition at line 108 of file boundary_data.f90.
|
private |
| f | The field to average. |
Definition at line 111 of file boundary_data.f90.
|
private |
| name | The quantity to average. |
Definition at line 109 of file boundary_data.f90.
| procedure, pass(this) boundary_data::boundary_data_t::centroid | ( | class(boundary_data_t), intent(inout) | this | ) |
Definition at line 116 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::flux | ( | class(boundary_data_t), intent(inout) | this, |
| type(field_t), intent(in) | u, | ||
| type(field_t), intent(in) | v, | ||
| type(field_t), intent(in) | w | ||
| ) |
| u | The x component. |
| v | The y component. |
| w | The z component. |
Definition at line 134 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::flux | ( | class(boundary_data_t), intent(inout) | this, |
| character(len=*), intent(in) | u, | ||
| character(len=*), intent(in) | v, | ||
| character(len=*), intent(in) | w | ||
| ) |
| u | The name of the x component. |
| v | The name of the y component. |
| w | The name of the z component. |
Definition at line 134 of file boundary_data.f90.
|
private |
| u | The x component. |
| v | The y component. |
| w | The z component. |
Definition at line 137 of file boundary_data.f90.
|
private |
| u | The name of the x component. |
| v | The name of the y component. |
| w | The name of the z component. |
Definition at line 135 of file boundary_data.f90.
| procedure, pass(this) boundary_data::boundary_data_t::free | ( | class(boundary_data_t), intent(inout) | this | ) |
Definition at line 82 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::get | ( | class(boundary_data_t), intent(inout) | this, |
| type(field_t), intent(in) | f, | ||
| type(vector_t), intent(inout) | v | ||
| ) |
| f | The source field, which must live on the same dofmap. |
| v | The vector to fill. |
Definition at line 87 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::get | ( | class(boundary_data_t), intent(inout) | this, |
| character(len=*), intent(in) | name, | ||
| type(vector_t), intent(inout) | v | ||
| ) |
The name is either one of the geometry attributes x, y, z, n_x, n_y, n_z, area, or the name of a field in the registry.
| name | The requested quantity. |
| v | The vector to fill. |
Definition at line 87 of file boundary_data.f90.
|
private |
| f | The source field, which must live on the same dofmap. |
| v | The vector to fill. |
Definition at line 90 of file boundary_data.f90.
|
private |
The name is either one of the geometry attributes x, y, z, n_x, n_y, n_z, area, or the name of a field in the registry.
| name | The requested quantity. |
| v | The vector to fill. |
Definition at line 88 of file boundary_data.f90.
| procedure, pass(this) boundary_data::boundary_data_t::init | ( | class(boundary_data_t), intent(inout) | this, |
| type(coef_t), intent(inout), target | coef, | ||
| integer, dimension(:), intent(in) | zone_indices, | ||
| logical, intent(in), optional | outward_normals | ||
| ) |
| coef | The SEM coefficients. |
| zone_indices | The labelled zones to include. |
| outward_normals | Whether the normals should point out of the wall into the fluid, which is the default. Pass false to keep the coef convention, where they point out of the fluid domain. |
Definition at line 80 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::integrate | ( | class(boundary_data_t), intent(inout) | this, |
| type(field_t), intent(in) | f | ||
| ) |
| f | The field to integrate, on the same dofmap. |
Definition at line 102 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::integrate | ( | class(boundary_data_t), intent(inout) | this, |
| character(len=*), intent(in) | name | ||
| ) |
| name | The quantity to integrate. |
Definition at line 102 of file boundary_data.f90.
|
private |
| f | The field to integrate, on the same dofmap. |
Definition at line 105 of file boundary_data.f90.
|
private |
| name | The quantity to integrate. |
Definition at line 103 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::integrate_normal | ( | class(boundary_data_t), intent(inout) | this, |
| type(field_t), intent(in) | f | ||
| ) |
outward_normals. | f | The scalar field. |
Definition at line 127 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::integrate_normal | ( | class(boundary_data_t), intent(inout) | this, |
| character(len=*), intent(in) | name | ||
| ) |
| name | The scalar quantity. |
Definition at line 127 of file boundary_data.f90.
|
private |
outward_normals. | f | The scalar field. |
Definition at line 131 of file boundary_data.f90.
|
private |
| name | The scalar quantity. |
Definition at line 129 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::integrate_vector | ( | class(boundary_data_t), intent(inout) | this, |
| character(len=*), intent(in) | fx, | ||
| character(len=*), intent(in) | fy, | ||
| character(len=*), intent(in) | fz | ||
| ) |
| fx | The name of the x component. |
| fy | The name of the y component. |
| fz | The name of the z component. |
Definition at line 120 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::integrate_vector | ( | class(boundary_data_t), intent(inout) | this, |
| type(field_t), intent(in) | fx, | ||
| type(field_t), intent(in) | fy, | ||
| type(field_t), intent(in) | fz | ||
| ) |
| fx | The x component. |
| fy | The y component. |
| fz | The z component. |
Definition at line 120 of file boundary_data.f90.
|
private |
| fx | The x component. |
| fy | The y component. |
| fz | The z component. |
Definition at line 124 of file boundary_data.f90.
|
private |
| fx | The name of the x component. |
| fy | The name of the y component. |
| fz | The name of the z component. |
Definition at line 122 of file boundary_data.f90.
|
static |
| name | The requested name. |
Definition at line 100 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::normal | ( | class(boundary_data_t), intent(inout) | this, |
| type(vector_t), intent(inout) | vx, | ||
| type(vector_t), intent(inout) | vy, | ||
| type(vector_t), intent(inout) | vz | ||
| ) |
| vx | The x component, overwritten with its normal part. |
| vy | The y component, overwritten with its normal part. |
| vz | The z component, overwritten with its normal part. |
Definition at line 146 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::normal | ( | class(boundary_data_t), intent(inout) | this, |
| type(vector_t), intent(in) | vx, | ||
| type(vector_t), intent(in) | vy, | ||
| type(vector_t), intent(in) | vz, | ||
| type(vector_t), intent(inout) | nx, | ||
| type(vector_t), intent(inout) | ny, | ||
| type(vector_t), intent(inout) | nz | ||
| ) |
| vx | The input x component. |
| vy | The input y component. |
| vz | The input z component. |
| nx | The output x component of the normal part. |
| ny | The output y component of the normal part. |
| nz | The output z component of the normal part. |
Definition at line 146 of file boundary_data.f90.
|
private |
| vx | The x component, overwritten with its normal part. |
| vy | The y component, overwritten with its normal part. |
| vz | The z component, overwritten with its normal part. |
Definition at line 147 of file boundary_data.f90.
|
private |
| vx | The input x component. |
| vy | The input y component. |
| vz | The input z component. |
| nx | The output x component of the normal part. |
| ny | The output y component of the normal part. |
| nz | The output z component of the normal part. |
Definition at line 149 of file boundary_data.f90.
| procedure, pass(this) boundary_data::boundary_data_t::point_average | ( | class(boundary_data_t), intent(inout) | this | ) |
Definition at line 118 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::scatter | ( | class(boundary_data_t), intent(inout) | this, |
| character(len=*), intent(in) | name, | ||
| type(field_t), intent(inout) | f, | ||
| logical, intent(in), optional | clear | ||
| ) |
| name | The requested quantity. |
| f | The destination field. |
| clear | If true, zero the whole field before writing the boundary points; defaults to false. |
Definition at line 93 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::scatter | ( | class(boundary_data_t), intent(inout) | this, |
| type(vector_t), intent(in) | v, | ||
| type(field_t), intent(inout) | f, | ||
| logical, intent(in), optional | clear | ||
| ) |
| v | The boundary point values. |
| f | The destination field. |
| clear | If true, zero the whole field before writing the boundary points; defaults to false. |
Definition at line 93 of file boundary_data.f90.
|
private |
| name | The requested quantity. |
| f | The destination field. |
| clear | If true, zero the whole field before writing the boundary points; defaults to false. |
Definition at line 97 of file boundary_data.f90.
|
private |
| v | The boundary point values. |
| f | The destination field. |
| clear | If true, zero the whole field before writing the boundary points; defaults to false. |
Definition at line 95 of file boundary_data.f90.
| procedure, pass(this) boundary_data::boundary_data_t::surface_area | ( | class(boundary_data_t), intent(inout) | this | ) |
Definition at line 114 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::tangential | ( | class(boundary_data_t), intent(inout) | this, |
| type(vector_t), intent(inout) | vx, | ||
| type(vector_t), intent(inout) | vy, | ||
| type(vector_t), intent(inout) | vz | ||
| ) |
| vx | The x component, overwritten with its tangential part. |
| vy | The y component, overwritten with its tangential part. |
| vz | The z component, overwritten with its tangential part. |
Definition at line 140 of file boundary_data.f90.
| generic boundary_data::boundary_data_t::tangential | ( | class(boundary_data_t), intent(inout) | this, |
| type(vector_t), intent(in) | vx, | ||
| type(vector_t), intent(in) | vy, | ||
| type(vector_t), intent(in) | vz, | ||
| type(vector_t), intent(inout) | tx, | ||
| type(vector_t), intent(inout) | ty, | ||
| type(vector_t), intent(inout) | tz | ||
| ) |
| vx | The input x component. |
| vy | The input y component. |
| vz | The input z component. |
| tx | The output x component of the tangential part. |
| ty | The output y component of the tangential part. |
| tz | The output z component of the tangential part. |
Definition at line 140 of file boundary_data.f90.
|
private |
| vx | The x component, overwritten with its tangential part. |
| vy | The y component, overwritten with its tangential part. |
| vz | The z component, overwritten with its tangential part. |
Definition at line 141 of file boundary_data.f90.
|
private |
| vx | The input x component. |
| vy | The input y component. |
| vz | The input z component. |
| tx | The output x component of the tangential part. |
| ty | The output y component of the tangential part. |
| tz | The output z component of the tangential part. |
Definition at line 143 of file boundary_data.f90.
| procedure, pass(this) boundary_data::boundary_data_t::update_geometry | ( | class(boundary_data_t), intent(inout) | this | ) |
Definition at line 84 of file boundary_data.f90.
| type(vector_t) boundary_data::boundary_data_t::area |
Definition at line 72 of file boundary_data.f90.
| type(dirichlet_t) boundary_data::boundary_data_t::bc |
Definition at line 60 of file boundary_data.f90.
Definition at line 58 of file boundary_data.f90.
| integer boundary_data::boundary_data_t::n_global = 0 |
Definition at line 66 of file boundary_data.f90.
| integer boundary_data::boundary_data_t::n_local = 0 |
Definition at line 64 of file boundary_data.f90.
| type(vector_t) boundary_data::boundary_data_t::n_x |
Definition at line 70 of file boundary_data.f90.
| type(vector_t) boundary_data::boundary_data_t::n_y |
Definition at line 70 of file boundary_data.f90.
| type(vector_t) boundary_data::boundary_data_t::n_z |
Definition at line 70 of file boundary_data.f90.
| logical boundary_data::boundary_data_t::outward_normals = .true. |
Definition at line 77 of file boundary_data.f90.
Definition at line 74 of file boundary_data.f90.
| type(vector_t) boundary_data::boundary_data_t::x |
Definition at line 68 of file boundary_data.f90.
| type(vector_t) boundary_data::boundary_data_t::y |
Definition at line 68 of file boundary_data.f90.
| type(vector_t) boundary_data::boundary_data_t::z |
Definition at line 68 of file boundary_data.f90.
| integer, dimension(:), allocatable boundary_data::boundary_data_t::zone_indices |
Definition at line 62 of file boundary_data.f90.