Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
schwarz Module Reference

Overlapping schwarz solves.

Data Types

type  schwarz_t
 

Functions/Subroutines

subroutine schwarz_init (this, xh, dof, gs_h, bclst, msh)
 
subroutine schwarz_free (this)
 
subroutine schwarz_setup_wt (this)
 setup weights
 
subroutine schwarz_setup_schwarz_wt2d_2 (wt, ie, n, work, nelv)
 Setup schwarz weights, 2d, second step.
 
subroutine schwarz_setup_schwarz_wt3d_2 (wt, ie, n, work, nelv)
 Setup schwarz weights, 3d, second step.
 
subroutine schwarz_toreg3d (b, a, n, nelv)
 convert array a from extended size to regular
 
subroutine schwarz_toext3d (a, b, n, nelv)
 convert array a from original size to size extended array with border
 
subroutine schwarz_extrude (arr1, l1, f1, arr2, l2, f2, nx, ny, nz, nelv)
 Sum values along rows l1, l2 with weights f1, f2 and store along row l1. Helps us avoid complicated communcation to get neighbor values. Simply copy interesting values to the boundary and then do gs_op on extended array.
 
subroutine schwarz_extrude_single (arr, l1, f1, l2, f2, nx, ny, nz, nelv)
 Same as schwarz_extrude but for the case when arr1 and arr2 are the same array. Avoids aliasing by using a single dummy argument. l1 and l2 must index non-overlapping rows (e.g. 0 vs 2).
 
subroutine schwarz_compute (this, e, r)
 
subroutine schwarz_wt3d (e, wt, n, nelv)
 

Function/Subroutine Documentation

◆ schwarz_compute()

subroutine schwarz::schwarz_compute ( class(schwarz_t), intent(inout this,
real(kind=rp), dimension(this%dof%size()), intent(inout e,
real(kind=rp), dimension(this%dof%size()), intent(inout r 
)
private

Definition at line 504 of file schwarz.f90.

Here is the call graph for this function:

◆ schwarz_extrude()

subroutine schwarz::schwarz_extrude ( real(kind=rp), dimension(nx, ny, nz, nelv), intent(inout arr1,
integer, intent(in l1,
real(kind=rp), intent(in f1,
real(kind=rp), dimension(nx, ny, nz, nelv), intent(in arr2,
integer, intent(in l2,
real(kind=rp), intent(in f2,
integer, intent(in nx,
integer, intent(in ny,
integer, intent(in nz,
integer, intent(in nelv 
)
private
Note
arr1 and arr2 must not be the same array. Use schwarz_extrude_single when operating on a single array to avoid aliasing violations.

Definition at line 386 of file schwarz.f90.

Here is the caller graph for this function:

◆ schwarz_extrude_single()

subroutine schwarz::schwarz_extrude_single ( real(kind=rp), dimension(nx, ny, nz, nelv), intent(inout arr,
integer, intent(in l1,
real(kind=rp), intent(in f1,
integer, intent(in l2,
real(kind=rp), intent(in f2,
integer, intent(in nx,
integer, intent(in ny,
integer, intent(in nz,
integer, intent(in nelv 
)
private

Definition at line 447 of file schwarz.f90.

Here is the caller graph for this function:

◆ schwarz_free()

subroutine schwarz::schwarz_free ( class(schwarz_t), intent(inout this)
private

Definition at line 173 of file schwarz.f90.

Here is the call graph for this function:

◆ schwarz_init()

subroutine schwarz::schwarz_init ( class(schwarz_t), intent(inout), target  this,
type(space_t), intent(inout), target  xh,
type(dofmap_t), intent(in), target  dof,
type(gs_t), intent(inout), target  gs_h,
type(bc_list_t), intent(inout), target  bclst,
type(mesh_t), intent(inout), target  msh 
)

Definition at line 112 of file schwarz.f90.

Here is the call graph for this function:

◆ schwarz_setup_schwarz_wt2d_2()

subroutine schwarz::schwarz_setup_schwarz_wt2d_2 ( real(kind=rp), dimension(n, 4, 2, nelv), intent(inout wt,
integer  ie,
integer, intent(in n,
real(kind=rp), dimension(n, n), intent(inout work,
integer, intent(in nelv 
)
private

Definition at line 284 of file schwarz.f90.

Here is the caller graph for this function:

◆ schwarz_setup_schwarz_wt3d_2()

subroutine schwarz::schwarz_setup_schwarz_wt3d_2 ( real(kind=rp), dimension(n, n, 4, 3, nelv), intent(inout wt,
integer, intent(in ie,
integer, intent(in n,
real(kind=rp), dimension(n, n, n), intent(inout work,
integer, intent(in nelv 
)
private

Definition at line 306 of file schwarz.f90.

Here is the caller graph for this function:

◆ schwarz_setup_wt()

subroutine schwarz::schwarz_setup_wt ( class(schwarz_t), intent(inout this)
private

Definition at line 215 of file schwarz.f90.

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

◆ schwarz_toext3d()

subroutine schwarz::schwarz_toext3d ( real(kind=rp), dimension(0:n+1, 0:n+1, 0:n+1, nelv), intent(inout a,
real(kind=rp), dimension(n, n, n, nelv), intent(inout b,
integer, intent(in n,
integer, intent(in nelv 
)
private

Definition at line 361 of file schwarz.f90.

Here is the caller graph for this function:

◆ schwarz_toreg3d()

subroutine schwarz::schwarz_toreg3d ( real(kind=rp), dimension(n, n, n, nelv), intent(inout b,
real(kind=rp), dimension(0:n+1, 0:n+1, 0:n+1, nelv), intent(inout a,
integer, intent(in n,
integer, intent(in nelv 
)
private

Definition at line 342 of file schwarz.f90.

Here is the caller graph for this function:

◆ schwarz_wt3d()

subroutine schwarz::schwarz_wt3d ( real(kind=rp), dimension(n, n, n, nelv), intent(inout e,
real(kind=rp), dimension(n, n, 4, 3, nelv), intent(inout wt,
integer, intent(in n,
integer, intent(in nelv 
)
private

Definition at line 595 of file schwarz.f90.

Here is the caller graph for this function: