Files
AMSS-NCKU/AMSS_NCKU_source/fd_grid.C
2026-01-13 15:01:15 +08:00

80 lines
1.9 KiB
C

#include <stdio.h>
#include <assert.h>
#include <math.h>
#include "cctk.h"
#include "config.h"
#include "stdc.h"
#include "util.h"
#include "array.h"
#include "linear_map.h"
#include "coords.h"
#include "tgrid.h"
#include "fd_grid.h"
namespace AHFinderDirect
{
using jtutil::error_exit;
//*****************************************************************************
//
// This function computes a single coefficient of a 1st derivative
// molecule, for unit grid spacing.
//
// static
fp fd_grid::dx_coeff(int m)
{
switch (m)
{
case -2:
return FD_GRID__ORDER4__DX__COEFF_M2;
case -1:
return FD_GRID__ORDER4__DX__COEFF_M1;
case 0:
return FD_GRID__ORDER4__DX__COEFF_0;
case +1:
return FD_GRID__ORDER4__DX__COEFF_P1;
case +2:
return FD_GRID__ORDER4__DX__COEFF_P2;
default:
cout << "***** fd_grid::dx_coeff(): m=" << m << " is outside order=4 molecule radius=" << FD_GRID__MOL_RADIUS << endl;
abort();
}
}
//*****************************************************************************
//
// This function computes a single coefficient of a 2nd derivative
// molecule, for unit grid spacing.
//
// static
fp fd_grid::dxx_coeff(int m)
{
switch (m)
{
case -2:
return FD_GRID__ORDER4__DXX__COEFF_M2;
case -1:
return FD_GRID__ORDER4__DXX__COEFF_M1;
case 0:
return FD_GRID__ORDER4__DXX__COEFF_0;
case +1:
return FD_GRID__ORDER4__DXX__COEFF_P1;
case +2:
return FD_GRID__ORDER4__DXX__COEFF_P2;
default:
cout << "***** fd_grid::dx_coeff(): m=" << m << " is outside order=4 molecule radius=" << FD_GRID__MOL_RADIUS << endl;
abort();
}
}
//******************************************************************************
} // namespace AHFinderDirect