model_builder_abstract_class Module

Houses abstract Model builder object, used to construct and add Model objects to Modeller objects


Used by


Interfaces

interface

interface

  • private pure module function getArrayParams(this) result(params)

    Getter for ModelBuilder arrayParams

    Arguments

    Type IntentOptional Attributes Name
    class(ModelBuilder), intent(in) :: this

    Return Value type(NamedArrayContainer)

interface

  • private module subroutine loadParams(this, jsonCont, mpiCont)

    Load parameters from "./config.json"

    Arguments

    Type IntentOptional Attributes Name
    class(ModelBuilder), intent(inout) :: this
    type(JSONController), intent(inout) :: jsonCont

    JSONController object responsible for reading the config file

    type(MPIController), intent(inout) :: mpiCont

    MPIController object to be used with JSON IO

interface

  • private module subroutine outputUsedParams(this, jsonCont, mpiCont)

    Output used parameters to "./used_config.json"

    Arguments

    Type IntentOptional Attributes Name
    class(ModelBuilder), intent(inout) :: this
    type(JSONController), intent(inout) :: jsonCont

    JSONController object responsible for writing the config file

    type(MPIController), intent(inout) :: mpiCont

    MPIController object to be used with JSON IO

interface

  • private pure module subroutine setScalarParams(this, params)

    Setter for ModelBuilder scalarParams

    Arguments

    Type IntentOptional Attributes Name
    class(ModelBuilder), intent(inout) :: this
    type(NamedScalarContainer), intent(in) :: params

interface

  • private pure module subroutine setArrayParams(this, params)

    Setter for ModelBuilder scalarParams

    Arguments

    Type IntentOptional Attributes Name
    class(ModelBuilder), intent(inout) :: this
    type(NamedArrayContainer), intent(in) :: params

Abstract Interfaces

abstract interface

  • private subroutine addModel(this, modellerObj)

    Abstract routine for adding Models to a Modeller object after building them

    Arguments

    Type IntentOptional Attributes Name
    class(ModelBuilder), intent(inout) :: this
    class(Modeller), intent(inout) :: modellerObj

    Modeller object that will house the constructed Model after it is built by the builder


Derived Types

type, public, abstract, extends(Object) ::  ModelBuilder

Abstract ModelBuilder object, housing basic functionality for the construction of Model objects and passing those objects to their final Modeller destination

Components

Type Visibility Attributes Name Initial
logical, public :: userDefined = .false.

True only if user explicitly sets it to true

type(NamedScalarContainer), private :: scalarParams

Named scalar parameters for reading/writing JSON config files and use in Model construction

type(NamedArrayContainer), private :: arrayParams

Named array parameters for reading/writing JSON config files and use in Model construction

integer(kind=ik), private :: numImplicitGroups

Number of implicit Term groups contained in the Model to be built

integer(kind=ik), private :: numGeneralGroups

Number of general Term groups contained in th Model to be built

Type-Bound Procedures

procedure, public :: isDefined => isDefinedObject
procedure, public :: makeDefined => makeDefinedObject
procedure, public :: makeUndefined => makeUndefinedObject
procedure, public :: loadParams
procedure, public :: outputUsedParams
procedure, public :: getScalarParams
procedure, public :: getArrayParams
procedure, public :: setScalarParams
procedure, public :: setArrayParams
procedure(addModel), public, deferred :: addModelToModeller