m_vector_calculus Module


Uses

  • module~~m_vector_calculus~~UsesGraph module~m_vector_calculus m_vector_calculus iso_fortran_env iso_fortran_env module~m_vector_calculus->iso_fortran_env module~m_allocator m_allocator module~m_vector_calculus->module~m_allocator module~m_base_backend m_base_backend module~m_vector_calculus->module~m_base_backend module~m_common m_common module~m_vector_calculus->module~m_common module~m_field m_field module~m_vector_calculus->module~m_field module~m_tdsops m_tdsops module~m_vector_calculus->module~m_tdsops module~m_allocator->iso_fortran_env module~m_allocator->module~m_common module~m_allocator->module~m_field module~m_mesh m_mesh module~m_allocator->module~m_mesh module~m_base_backend->module~m_allocator module~m_base_backend->module~m_common module~m_base_backend->module~m_field module~m_base_backend->module~m_tdsops module~m_base_backend->module~m_mesh module~m_poisson_fft m_poisson_fft module~m_base_backend->module~m_poisson_fft mpi mpi module~m_base_backend->mpi module~m_field->module~m_common module~m_tdsops->iso_fortran_env module~m_tdsops->module~m_common module~m_mesh->iso_fortran_env module~m_mesh->module~m_common module~m_mesh->module~m_field module~m_mesh->mpi module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_tdsops module~m_poisson_fft->module~m_mesh module~m_mesh_content->module~m_common

Used by

  • module~~m_vector_calculus~~UsedByGraph module~m_vector_calculus m_vector_calculus module~m_solver m_solver module~m_solver->module~m_vector_calculus module~m_base_case m_base_case module~m_base_case->module~m_solver module~m_case_channel m_case_channel module~m_case_channel->module~m_solver module~m_case_channel->module~m_base_case module~m_case_generic m_case_generic module~m_case_generic->module~m_solver module~m_case_generic->module~m_base_case module~m_case_tgv m_case_tgv module~m_case_tgv->module~m_solver module~m_case_tgv->module~m_base_case program~xcompact xcompact program~xcompact->module~m_base_case program~xcompact->module~m_case_channel program~xcompact->module~m_case_generic program~xcompact->module~m_case_tgv

Interfaces

public interface vector_calculus_t

  • public function init(backend) result(vector_calculus)

    Arguments

    Type IntentOptional Attributes Name
    class(base_backend_t), intent(inout), target :: backend

    Return Value type(vector_calculus_t)


Derived Types

type, public ::  vector_calculus_t

Defines vector calculus operators

Components

Type Visibility Attributes Name Initial
class(base_backend_t), public, pointer :: backend

Constructor

public function init (backend)

Type-Bound Procedures

procedure, public :: curl
procedure, public :: divergence_v2c
procedure, public :: gradient_c2v
procedure, public :: laplacian

Functions

public function init(backend) result(vector_calculus)

Arguments

Type IntentOptional Attributes Name
class(base_backend_t), intent(inout), target :: backend

Return Value type(vector_calculus_t)


Subroutines

public subroutine curl(self, o_i_hat, o_j_hat, o_k_hat, u, v, w, x_der1st, y_der1st, z_der1st)

Curl of a vector field (u, v, w).

Read more…

Arguments

Type IntentOptional Attributes Name
class(vector_calculus_t) :: self
class(field_t), intent(inout) :: o_i_hat

Vector components of the output vector field Omega

class(field_t), intent(inout) :: o_j_hat

Vector components of the output vector field Omega

class(field_t), intent(inout) :: o_k_hat

Vector components of the output vector field Omega

class(field_t), intent(in) :: u
class(field_t), intent(in) :: v
class(field_t), intent(in) :: w
class(tdsops_t), intent(in) :: x_der1st
class(tdsops_t), intent(in) :: y_der1st
class(tdsops_t), intent(in) :: z_der1st

public subroutine divergence_v2c(self, div_u, u, v, w, x_stagder_v2c, x_interpl_v2c, y_stagder_v2c, y_interpl_v2c, z_stagder_v2c, z_interpl_v2c)

Divergence of a vector field (u, v, w).

Read more…

Arguments

Type IntentOptional Attributes Name
class(vector_calculus_t) :: self
class(field_t), intent(inout) :: div_u
class(field_t), intent(in) :: u
class(field_t), intent(in) :: v
class(field_t), intent(in) :: w
class(tdsops_t), intent(in) :: x_stagder_v2c
class(tdsops_t), intent(in) :: x_interpl_v2c
class(tdsops_t), intent(in) :: y_stagder_v2c
class(tdsops_t), intent(in) :: y_interpl_v2c
class(tdsops_t), intent(in) :: z_stagder_v2c
class(tdsops_t), intent(in) :: z_interpl_v2c

public subroutine gradient_c2v(self, dpdx, dpdy, dpdz, p, x_stagder_c2v, x_interpl_c2v, y_stagder_c2v, y_interpl_c2v, z_stagder_c2v, z_interpl_c2v)

Gradient of a scalar field 'p'.

Read more…

Arguments

Type IntentOptional Attributes Name
class(vector_calculus_t) :: self
class(field_t), intent(inout) :: dpdx
class(field_t), intent(inout) :: dpdy
class(field_t), intent(inout) :: dpdz
class(field_t), intent(in) :: p
class(tdsops_t), intent(in) :: x_stagder_c2v
class(tdsops_t), intent(in) :: x_interpl_c2v
class(tdsops_t), intent(in) :: y_stagder_c2v
class(tdsops_t), intent(in) :: y_interpl_c2v
class(tdsops_t), intent(in) :: z_stagder_c2v
class(tdsops_t), intent(in) :: z_interpl_c2v

public subroutine laplacian(self, lapl_u, u, x_der2nd, y_der2nd, z_der2nd)

Laplacian of a scalar field 'u'.

Read more…

Arguments

Type IntentOptional Attributes Name
class(vector_calculus_t) :: self
class(field_t), intent(inout) :: lapl_u
class(field_t), intent(in) :: u
class(tdsops_t), intent(in) :: x_der2nd
class(tdsops_t), intent(in) :: y_der2nd
class(tdsops_t), intent(in) :: z_der2nd