45  use, 
intrinsic :: iso_fortran_env
 
   60    integer,             
intent(in)    :: dim
 
   61    integer,             
intent(in)    :: order
 
   62    real(real64),        
intent(in)    :: h(:)
 
   63    type(nl_operator_t), 
intent(inout) :: lapl
 
   64    real(real64), 
optional,     
intent(in)    :: alpha
 
   67    real(real64) :: alpha_, kmax
 
   68    real(real64), 
allocatable :: fp(:)
 
   73    if (
present(alpha)) alpha_ = alpha
 
   74    kmax = 
m_pi**2 * alpha_
 
   76    safe_allocate(fp(1:order+1))
 
   87      fp(2) =  
m_one/12.0_real64 + 15.0_real64*kmax/64.0_real64
 
   89      fp(4) = -
m_one/12.0_real64 + kmax/64.0_real64
 
   91      fp(1) = -77.0_real64/72.0_real64 - 35.0_real64*kmax/128.0_real64
 
   92      fp(2) =  8.0_real64/45.0_real64 + 7.0_real64*kmax/32.0_real64
 
   93      fp(3) =  23.0_real64/45.0_real64 - 7.0_real64*kmax/64.0_real64
 
   94      fp(4) = -8.0_real64/45.0_real64 + kmax/32.0_real64
 
   95      fp(5) =  17.0_real64/720.0_real64 - kmax/256.0_real64
 
   97      fp(1) = -449.0_real64/360.0_real64 - 63.0_real64*kmax/256.0_real64
 
   98      fp(2) =  
m_four/15.0_real64 + 105.0_real64*kmax/512.0_real64
 
   99      fp(3) =  59.0_real64/105.0_real64 - 15.0_real64*kmax/128.0_real64
 
  100      fp(4) = -82.0_real64/315.0_real64 + 45.0_real64*kmax/1024.0_real64
 
  101      fp(5) =  311.0_real64/5040.0_real64 - 
m_five*kmax/512.0_real64
 
  102      fp(6) = -
m_two/315.0_real64 + kmax/1024.0_real64
 
  104      fp(1) = -2497.0_real64/1800.0_real64 - 231.0_real64*kmax/1024.0_real64
 
  105      fp(2) =  26.0_real64/75.0_real64 + 99.0_real64*kmax/512.0_real64
 
  106      fp(3) =  493.0_real64/840.0_real64 - 495.0_real64*kmax/4096.0_real64
 
  107      fp(4) = -103.0_real64/315.0_real64 + 55.0_real64*kmax/1024.0_real64
 
  108      fp(5) =  2647.0_real64/25200.0_real64 - 33.0_real64*kmax/2048.0_real64
 
  109      fp(6) = -31.0_real64/1575.0_real64 + 
m_three*kmax/1024.0_real64
 
  110      fp(7) =  
m_one/600.0_real64 - kmax/4096.0_real64
 
  113    lapl%w(1,:) = fp(1)*sum(1/h(1:dim)**2)
 
  119        lapl%w(k,:) = fp(-j+1) / h(i)**2
 
  124        lapl%w(k,:) = fp( j+1) / h(i)**2
 
  128    safe_deallocate_a(fp)
 
real(real64), parameter, public m_two
 
real(real64), parameter, public m_four
 
real(real64), parameter, public m_pi
some mathematical constants
 
real(real64), parameter, public m_half
 
real(real64), parameter, public m_one
 
real(real64), parameter, public m_three
 
real(real64), parameter, public m_five
 
This module defines non-local operators.
 
Implements the variational discretization of the Laplacian as proposed by P. Maragakis,...
 
subroutine, public stencil_variational_coeff_lapl(dim, order, h, lapl, alpha)