subdomain_m Module


Used by

  • module~~subdomain_m~~UsedByGraph module~subdomain_m subdomain_m module~matcha_m matcha_m module~matcha_m->module~subdomain_m module~subdomain_s subdomain_s module~subdomain_s->module~subdomain_m module~matcha_s matcha_s module~matcha_s->module~matcha_m program~main main program~main->module~matcha_m

Interfaces

interface

  • private pure module function values(self) result(my_values)

    Arguments

    Type IntentOptional Attributes Name
    class(subdomain_t), intent(in) :: self

    Return Value real, allocatable, (:,:,:)

interface

  • private pure module function dx(self) result(my_dx)

    Arguments

    Type IntentOptional Attributes Name
    class(subdomain_t), intent(in) :: self

    Return Value real

interface

  • private pure module function dy(self) result(my_dy)

    Arguments

    Type IntentOptional Attributes Name
    class(subdomain_t), intent(in) :: self

    Return Value real

interface

  • private pure module function dz(self) result(my_dz)

    Arguments

    Type IntentOptional Attributes Name
    class(subdomain_t), intent(in) :: self

    Return Value real

interface

  • private pure module function dt_stable(self, alpha) result(my_dt)

    Set the time step at 90% of the stability limit obtained generalizing to 3D the value provided for 2D by Kassinos, S., & Alexiadis, A. (2024). Beyond Language: Applying MLX Transformers to Engineering Physics. arXiv preprint arXiv:2410.04167.

    Arguments

    Type IntentOptional Attributes Name
    class(subdomain_t), intent(in) :: self
    real, intent(in) :: alpha

    Return Value real

interface

  • private pure module function laplacian(rhs) result(laplacian_rhs)

    Arguments

    Type IntentOptional Attributes Name
    class(subdomain_t), intent(in) :: rhs

    Return Value type(subdomain_t)

interface

  • private pure module function multiply(lhs, rhs) result(product)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: lhs
    class(subdomain_t), intent(in) :: rhs

    Return Value type(subdomain_t)

interface

interface

  • private module subroutine define(side, boundary_val, internal_val, n, self)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: side
    real, intent(in) :: boundary_val
    real, intent(in) :: internal_val
    integer, intent(in) :: n

    number of grid points in each coordinate direction

    class(subdomain_t), intent(out) :: self

interface

  • private module subroutine step(alpha_dt, self)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: alpha_dt
    class(subdomain_t), intent(inout) :: self

interface


Derived Types

type, public ::  subdomain_t

Components

Type Visibility Attributes Name Initial
real, private, allocatable :: s_(:,:,:)

Type-Bound Procedures

procedure, public, pass(self) :: define
procedure, public, pass(self) :: step
procedure, public, pass(rhs) :: multiply
generic, public :: operator(.laplacian.) => laplacian
generic, public :: operator(*) => multiply
generic, public :: operator(+) => add
generic, public :: assignment(=) => assign_and_sync
procedure, public :: dt_stable
procedure, public :: dx
procedure, public :: dy
procedure, public :: dz
procedure, public :: values
procedure, private :: laplacian
procedure, private :: add
procedure, private :: assign_and_sync