![]() |
This module contains functions to compute Lagrange polynomials and its derivatives; and to interpolate \(x,y,z\)-variables at \(\xi,\eta,\zeta\)-coordinates.
Public Member Functions | |
real function, public | lagrap (i, x, n) |
function to compute value of order \(n\) Lagrange polynomial of the GLL node i at abscissa \(x\): \( h_i(x) = \displaystyle\prod_{l=1,\, l\neq i}^{N_{GLL}} \frac{x-x_l}{x_i-x_l} \) More... | |
real function, public | lagrap_geom (i, x, n) |
function to compute value of order \(n_g\) Lagrange polynomial of geometric node i at abscissa \(x\): \( h_i(x) = \displaystyle\prod_{l=1,\, l\neq i}^{n_{g}} \frac{x-x_l}{x_i-x_l} \) More... | |
real function, public | lagrad (i, x, n) |
function to compute value of the derivative of order \(n\) Lagrange polynomial of GLL node i at abscissa \(x\): \( h'_{i}(x) = \displaystyle\sum^{N_{GLL}}_{j \ne i} \frac{1}{x_i - x_j} \displaystyle\prod^{N_{GLL}}_{k \ne i, k \ne j} \frac{x-x_k}{x_i - x_k} \) More... | |
real function, public | lagrad_geom (i, x, n) |
function to compute value of the derivative of order \(n_g\) Lagrange polynomial of geometric node i at abscissa \(x\): \( h'_{i}(x) = \displaystyle\sum^{n_{g}}_{j \ne i} \frac{1}{x_i - x_j} \displaystyle\prod^{n_{g}}_{k \ne i, k \ne j} \frac{x-x_k}{x_i - x_k} \) More... | |
subroutine, public | hexa_lagrange_interp (gll_values, lag, x, y, z) |
This subroutine interpolates GLL nodes \(x,y,z\)-values of a hexahedron element using Lagrange polynomials. More... | |
subroutine, public | quad_lagrange_interp (gll_values, lag, x, y, z) |
This subroutine interpolates GLL nodes \(x,y,z\)-values of a quadrangle element using Lagrange polynomials. More... | |
Definition at line 126 of file module_lagrange.f90.
subroutine, public mod_lagrange::hexa_lagrange_interp | ( | real, dimension(ig_ndof,ig_ngll,ig_ngll,ig_ngll), intent(in) | gll_values, |
real, dimension( ig_ngll,ig_ngll,ig_ngll), intent(in) | lag, | ||
real, intent(out) | x, | ||
real, intent(out) | y, | ||
real, intent(out) | z | ||
) |
gll_values | : GLL nodes \(x,y,z\)-values of a hexahedron element |
lag | : pre-computed values of Lagrange polynomials at location \(\xi,\eta,\zeta\) in a hexahedron element |
x | : interpolated \(x\)-values at location \(\xi,\eta,\zeta\) |
y | : interpolated \(y\)-values at location \(\xi,\eta,\zeta\) |
z | : interpolated \(z\)-values at location \(\xi,\eta,\zeta\) |
Definition at line 314 of file module_lagrange.f90.
Referenced by mod_receiver::write_receiver_output().
real function, public mod_lagrange::lagrad | ( | integer, intent(in) | i, |
real, intent(in) | x, | ||
integer, intent(in) | n | ||
) |
x | : abscissa where the derivative of Lagrange polynomial is computed |
i | : local position (i.e. node) in the reference domain [-1:1] where lagrange polynomial = 1 (0 at others nodes). Note: lagrange polynomial = 1 at i location but not its derivative. |
n | : number of GLL nodes in the reference domain [-1:1] |
Definition at line 213 of file module_lagrange.f90.
Referenced by mod_source::compute_double_couple_source(), and mod_init_efi::init_gll_nodes().
real function, public mod_lagrange::lagrad_geom | ( | integer, intent(in) | i, |
real, intent(in) | x, | ||
integer, intent(in) | n | ||
) |
x | : abscissa where the derivative of Lagrange polynomial is computed |
i | : local position (i.e. node) in the reference domain [-1:1] where lagrange polynomial = 1 (0 at others nodes). Note: lagrange polynomial = 1 at i location but not its derivative. |
n | : number of geometric nodes in the reference domain [-1:1] |
Definition at line 262 of file module_lagrange.f90.
Referenced by mod_jacobian::compute_hexa_jacobian(), mod_jacobian::compute_quad_jacobian(), mod_init_efi::init_jacobian_matrix_hexa(), and mod_init_efi::init_jacobian_matrix_quad().
real function, public mod_lagrange::lagrap | ( | integer, intent(in) | i, |
real, intent(in) | x, | ||
integer, intent(in) | n | ||
) |
x | : abscissa where Lagrange polynomial is computed |
i | : local position (i.e. node) in the reference domain [-1:1] where lagrange polynomial = 1 (0 at others nodes) |
n | : number of GLL nodes in the reference domain [-1:1] (see mod_global_variables::ig_ngll) |
Definition at line 150 of file module_lagrange.f90.
Referenced by mod_source::compute_double_couple_source(), mod_receiver::compute_info_hexa_receiver(), and mod_receiver::compute_info_quad_receiver().
real function, public mod_lagrange::lagrap_geom | ( | integer, intent(in) | i, |
real, intent(in) | x, | ||
integer, intent(in) | n | ||
) |
x | : abscissa where Lagrange polynomial is computed |
i | : local position (i.e. node) in the reference domain [-1:1] where lagrange polynomial = 1 (0 at others nodes) |
n | : number of geometric nodes in the reference domain [-1:1] |
Definition at line 181 of file module_lagrange.f90.
Referenced by mod_jacobian::compute_hexa_jacobian(), mod_coordinate::compute_hexa_point_coord(), mod_jacobian::compute_quad_jacobian(), mod_coordinate::compute_quad_point_coord(), mod_coordinate::compute_quad_point_coord_z(), mod_init_efi::init_gll_nodes_coordinates(), mod_init_efi::init_jacobian_matrix_hexa(), and mod_init_efi::init_jacobian_matrix_quad().
subroutine, public mod_lagrange::quad_lagrange_interp | ( | real, dimension(ig_ndof,ig_ngll,ig_ngll), intent(in) | gll_values, |
real, dimension( ig_ngll,ig_ngll), intent(in) | lag, | ||
real, intent(out) | x, | ||
real, intent(out) | y, | ||
real, intent(out) | z | ||
) |
gll_values | : GLL nodes \(x,y,z\)-values of a quadrangle element |
lag | : pre-computed values of Lagrange polynomials at a location \(\xi,\eta\) in a quadrangle element |
x | : \(x\)-value interpolation |
y | : \(y\)-value interpolation |
z | : \(z\)-value interpolation |
Definition at line 365 of file module_lagrange.f90.
Referenced by mod_receiver::write_receiver_output(), and mod_snapshot_surface::write_snapshot_surface().