The tensor product function which is represented by a linear combination of the basis functions from a tensor product space.
More...
|
| procedure | init (this, space, vec) |
| | Initialize a tensor product function with a given tensor product space and an optional vector.
|
| |
| procedure | distribute (this) |
| | Distribute the tensor product B-spline function to the neighbouring ranks/subdomains.
|
| |
| procedure | accumulate (this, my_data, inds) |
| | Accumulate the tensor product B-spline function to the neighbouring ranks/subdomains.
|
| |
| procedure | destroy (this) |
| | Destroy a tensor product B-spline function.
|
| |
| generic | assignment (out, in) |
| | Copy a tensor product B-spline function.
|
| |
| procedure | axpy (y, a, x) |
| | Perform the operation this = this + a * x for tensor product B-spline functions.
|
| |
| procedure | scale (this, a) |
| | Scale a tensor product B-spline function by a scalar.
|
| |
| procedure | reset (this, vec) |
| | Reset the tensor product function to zero.
|
| |
| procedure | is_initialized (this) |
| | Check if the tensor product function is initialized.
|
| |
|
|
type(tensorprodspace) | space |
| | The tensor product space to which this function belongs.
|
| |
|
real(wp), dimension(:, :, :), pointer | data => null() |
| | The coefficients of the tensor product function.
|
| |
|
type(sharedmemorywindow) | shmem_window |
| | MPI window for shared memory access.
|
| |
|
logical | is_on_device = .false. |
| | Indicates whether the data is stored on a GPU device.
|
| |
The tensor product function which is represented by a linear combination of the basis functions from a tensor product space.
◆ accumulate()
| procedure m_tensorprod_basis::tensorprodfun::accumulate |
( |
class(tensorprodfun), intent(inout) | this, |
|
|
real(wp), dimension(:, :, :), intent(in), optional, target, contiguous | my_data, |
|
|
type(tensorprodindices), intent(in), optional | inds ) |
Accumulate the tensor product B-spline function to the neighbouring ranks/subdomains.
- Parameters
-
| [in,out] | this | Tensor product B-spline function to accumulate |
| [in] | my_data | _(optional)_ If provided, this local data will be summed across the shared memory ranks and added to the shared window before accumulation |
| [in] | inds | _(optional)_ If provided, only accumulate the specified indices (used for non-responsible B-splines) |
- Note
- Data from active and non-responsible B-splines is sent to the responsible ranks, and the results are added. At the end, the responsible ranks will have the full values for their responsible B-splines, while the non-responsible ranks will have zero values for their active and non-responsible B-splines. Hence, this action is idempotent (like distribute()).
◆ assignment()
| generic m_tensorprod_basis::tensorprodfun::assignment |
( |
class(tensorprodfun), intent(out) | out, |
|
|
class(tensorprodfun), intent(in) | in ) |
Copy a tensor product B-spline function.
- Parameters
-
| [out] | out | Tensor product B-spline function to copy to |
| [in] | in | Tensor product B-spline function to copy from |
◆ axpy()
| procedure m_tensorprod_basis::tensorprodfun::axpy |
( |
class(tensorprodfun), intent(inout) | y, |
|
|
real(wp), intent(in) | a, |
|
|
type(tensorprodfun), intent(in) | x ) |
Perform the operation this = this + a * x for tensor product B-spline functions.
- Parameters
-
| [in,out] | this | Tensor product B-spline function to update |
| [in] | a | Scalar multiplier |
| [in] | x | Tensor product B-spline function to add |
◆ destroy()
| procedure m_tensorprod_basis::tensorprodfun::destroy |
( |
class(tensorprodfun), intent(inout) | this | ) |
|
Destroy a tensor product B-spline function.
- Parameters
-
| [in,out] | this | Tensor product B-spline function to destroy |
◆ distribute()
| procedure m_tensorprod_basis::tensorprodfun::distribute |
( |
class(tensorprodfun), intent(inout) | this | ) |
|
Distribute the tensor product B-spline function to the neighbouring ranks/subdomains.
- Parameters
-
| [in,out] | this | Tensor product B-spline function to distribute |
◆ init()
| procedure m_tensorprod_basis::tensorprodfun::init |
( |
class(tensorprodfun), intent(out) | this, |
|
|
type(tensorprodspace), intent(in) | space, |
|
|
intent(in) | vec ) |
Initialize a tensor product function with a given tensor product space and an optional vector.
- Parameters
-
| [out] | this | Tensor product function to initialize |
| [in] | space | Tensor product space to which the function belongs |
| [in] | vec | _(optional)_ Vector containing the coefficients of the tensor product function |
◆ is_initialized()
| procedure m_tensorprod_basis::tensorprodfun::is_initialized |
( |
class(tensorprodfun), intent(in) | this | ) |
|
Check if the tensor product function is initialized.
- Parameters
-
| [in] | this | Tensor product function to check |
- Returns
- Whether the tensor product function is initialized
◆ reset()
| procedure m_tensorprod_basis::tensorprodfun::reset |
( |
class(tensorprodfun), intent(inout) | this, |
|
|
intent(in) | vec ) |
Reset the tensor product function to zero.
- Parameters
-
| [in,out] | this | Tensor product function to reset |
| [in] | vec | _(optional)_ Vector containing the coefficients of the tensor product function |
◆ scale()
| procedure m_tensorprod_basis::tensorprodfun::scale |
( |
class(tensorprodfun), intent(inout) | this, |
|
|
real(wp), intent(in) | a ) |
Scale a tensor product B-spline function by a scalar.
- Parameters
-
| [in,out] | this | Tensor product B-spline function to scale |
| [in] | a | Scalar multiplier |
The documentation for this type was generated from the following file:
- /builds/rwr/bspline_feec/src/tensorprod/m_tensorprod_basis.f90