MEF90HeatXfer_Type Derived Type

type, public, extends(MEF90Object) :: MEF90HeatXfer_Type


Components

Type Visibility Attributes Name Initial
type(tPetscSF), public :: IOToTemperatureSF
type(tPetscSF), public :: IOToboundaryFluxSF
type(tPetscSF), public :: IOToexternalTemperatureSF
type(tPetscSF), public :: IOTofluxSF
type(MEF90Ctx_Type), public, pointer :: MEF90Ctx => null()
type(c_ptr), public :: PETScCtx = C_NULL_PTR

Handle on self, set once in MEF90HeatXferCreate with PETScCtx = c_loc(HeatXfer), and handed to PETSc wherever an application context is expected: SNESSetFunction, SNESSetJacobian, TSSetIFunction, TSSetIJacobian, ... The callbacks in m_MEF90_HeatXfer recover the context with call c_f_pointer(PETScCtx, MEF90HeatXferCtx)

MEF90HeatXfer_Type cannot be passed to PETSc directly, the way MEF90HeatXferCtx_Type was up to mef90 0.5.2, because extending MEF90Object gives it type-bound procedures and PETSc declares its context arguments as assumed-type. This has to be a component rather than a local or an inline c_loc(), for lifetime reasons that are easy to get wrong: see the note at the top of MEF90/m_MEF90_BaseClass.F90 before changing any of this.

type(tVec), public, pointer :: boundaryFluxLocal => null()
type(tPetscSF), public :: boundaryFluxToIOSF
type(tPetscSF), public :: boundaryToTemperatureSF
integer(kind=C_INT32_T), public :: comm
integer(kind=C_INT32_T), public :: dim
type(tVec), public, pointer :: externalTemperatureLocal => null()
type(tPetscSF), public :: externalTemperatureToIOSF
type(tVec), public, pointer :: fluxLocal => null()
type(tPetscSF), public :: fluxToIOSF
type(MEF90HeatXferGlobalOptions_Type), public :: globalOptions
type(tDM), public :: megaDM
character(kind=c_char, len=MEF90MXSTRLEN), public :: name = "NULL"
character(kind=c_char, len=MEF90MXSTRLEN), public :: prefix
type(tVec), public, pointer :: temperatureLocal => null()
type(tPetscSF), public :: temperatureToIOSF
type(tPetscViewer), public :: viewer

Type-Bound Procedures

procedure, public, pass(self) :: setFromOptions => MEF90HeatXferSetFromOptions

  • public subroutine MEF90HeatXferSetFromOptions(self, ierr)

    Author
    Blaise Bourdin (2012-14, bourdin@lsu.edu) Blaise Bourdin (2026, bourdin@mcmaster.ca)

    MEF90HeatXferSetFromOptions: initializes a MEF90HeatXfer_Type from options

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90HeatXfer_Type), intent(inout) :: self
    integer(kind=C_INT32_T), intent(inout) :: ierr

procedure, public, pass(self) :: view => MEF90Object_view

  • private subroutine MEF90Object_view(self, viewer, ierr)

    Author
    Blaise Bourdin (2026, bourdin@mcmaster.ca)

    MEF90Object_view: Views a MEF90Object and flagged it as viewed so that it is not viewed multiple times when -verbose is set to a high value

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90Object), intent(in) :: self
    type(tPetscViewer), intent(in) :: viewer
    integer(kind=C_INT32_T), intent(inout) :: ierr

procedure, public, pass(self) :: view_internal => MEF90HeatXferView

  • public subroutine MEF90HeatXferView(self, viewer, ierr)

    Author
    Blaise Bourdin (2026, bourdin@mcmaster.ca)

    MEF90HeatXferView: the default viewer for a MEF90HeatXfer_Type

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90HeatXfer_Type), intent(in) :: self
    type(tPetscViewer), intent(in) :: viewer
    integer(kind=C_INT32_T), intent(inout) :: ierr