MODFLOW 6  version 6.6.0.dev0
USGS Modular Hydrologic Model
gridconnectionmodule::gridconnectiontype Type Reference

This class is used to construct the connections object for the interface model's spatial discretization/grid. More...

Collaboration diagram for gridconnectionmodule::gridconnectiontype:
Collaboration graph

Public Member Functions

procedure, pass(this) construct
 
procedure, pass(this) destroy
 
procedure, pass(this) addtoregionalmodels
 
procedure, pass(this) connectprimaryexchange
 
procedure, pass(this) extendconnection
 
procedure, pass(this) getdiscretization
 
procedure, pass(this) buildinterfacemap
 
procedure, pass(this) isperiodic
 

Public Attributes

character(len=lenmempath) memorypath
 
integer(i4b) internalstencildepth
 stencil size for the interior More...
 
integer(i4b) exchangestencildepth
 stencil size at the interface More...
 
class(numericalmodeltype), pointer model => null()
 the model for which this grid connection exists More...
 
class(disconnexchangetype), pointer primaryexchange => null()
 pointer to the primary exchange for this interface More...
 
integer(i4b), pointer nrofboundarycells => null()
 nr of boundary cells with connection to another model More...
 
type(cellwithnbrstype), dimension(:), pointer boundarycells => null()
 cells on our side of the primary connections More...
 
type(cellwithnbrstype), dimension(:), pointer connectedcells => null()
 cells on the neighbors side of the primary connection More...
 
type(stlvecint), pointer haloexchanges
 all exchanges that are potentially part of this interface More...
 
integer(i4b), pointer nrofcells => null()
 the total number of cells in the interface More...
 
type(globalcelltype), dimension(:), pointer idxtoglobal => null()
 a map from interface index to global coordinate More...
 
integer(i4b), dimension(:), pointer, contiguous idxtoglobalidx => null()
 a (flat) map from interface index to global index, stored in mem. mgr. so can be used for debugging More...
 
type(listtyperegionalmodels
 the models participating in the interface More...
 
integer(i4b), dimension(:), pointer region_to_iface_map => null()
 (sparse) mapping from regional index to interface ixd More...
 
integer(i4b), dimension(:), pointer regionalmodeloffset => null()
 the new offset to compactify the range of indices More...
 
integer(i4b), pointer indexcount => null()
 counts the number of cells in the interface More...
 
type(connectionstype), pointer connections => null()
 sparse matrix with the connections More...
 
integer(i4b), dimension(:), pointer connectionmask => null()
 to mask out connections from the amat coefficient calculation More...
 
type(interfacemaptype), pointer interfacemap => null()
 defining map for the interface More...
 

Private Member Functions

procedure, pass(this), private allocatescalars
 
procedure, pass(this), private connectcell
 
procedure, pass(this), private buildconnections
 
procedure, pass(this), private addneighbors
 
procedure, pass(this), private addneighborcell
 
procedure, pass(this), private addremoteneighbors
 
procedure, pass(this), private get_regional_offset
 
generic, private getinterfaceindex => getinterfaceindexbycell, getinterfaceindexbyindexmodel
 
procedure, pass(this), private getinterfaceindexbycell
 
procedure, pass(this), private getinterfaceindexbyindexmodel
 
procedure, pass(this), private registerinterfacecells
 
procedure, pass(this), private addtoglobalmap
 
procedure, pass(this), private compressglobalmap
 
procedure, pass(this), private sortinterfacegrid
 
procedure, pass(this), private makeprimaryconnections
 
procedure, pass(this), private connectneighborcells
 
procedure, pass(this), private fillconnectiondatainternal
 
procedure, pass(this), private fillconnectiondatafromexchanges
 
procedure, pass(this), private createconnectionmask
 
procedure, pass(this), private maskinternalconnections
 
procedure, pass(this), private setmaskonconnection
 

Detailed Description

It works as follows:

1: construct basic instance, allocate data structures based on nr. of primary connections 2: add primary connections from exchanges 3: add secondary, tertiary, ... MODEL connections, depending on the size of the computational stencil 4: extend the connection, creating the full data structure and relations 5: build the connections object, from which the grid for the interface model can be constructed

A note on the different indices:

We have

  • GLOBAL index, which technically labels the row in the solution matrix
  • REGIONAL index, running over all models that participate in the interface grid
  • LOCAL index, local to each model
  • INTERFACE index, numbering the cells in the interface grid

Definition at line 56 of file GridConnection.f90.

Member Function/Subroutine Documentation

◆ addneighborcell()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::addneighborcell
private

Definition at line 103 of file GridConnection.f90.

◆ addneighbors()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::addneighbors
private

Definition at line 102 of file GridConnection.f90.

◆ addremoteneighbors()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::addremoteneighbors
private

Definition at line 104 of file GridConnection.f90.

◆ addtoglobalmap()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::addtoglobalmap
private

Definition at line 111 of file GridConnection.f90.

◆ addtoregionalmodels()

procedure, pass(this) gridconnectionmodule::gridconnectiontype::addtoregionalmodels

Definition at line 90 of file GridConnection.f90.

◆ allocatescalars()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::allocatescalars
private

Definition at line 88 of file GridConnection.f90.

◆ buildconnections()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::buildconnections
private

Definition at line 101 of file GridConnection.f90.

◆ buildinterfacemap()

procedure, pass(this) gridconnectionmodule::gridconnectiontype::buildinterfacemap

Definition at line 94 of file GridConnection.f90.

◆ compressglobalmap()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::compressglobalmap
private

Definition at line 112 of file GridConnection.f90.

◆ connectcell()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::connectcell
private

Definition at line 100 of file GridConnection.f90.

◆ connectneighborcells()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::connectneighborcells
private

Definition at line 115 of file GridConnection.f90.

◆ connectprimaryexchange()

procedure, pass(this) gridconnectionmodule::gridconnectiontype::connectprimaryexchange

Definition at line 91 of file GridConnection.f90.

◆ construct()

procedure, pass(this) gridconnectionmodule::gridconnectiontype::construct

Definition at line 87 of file GridConnection.f90.

◆ createconnectionmask()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::createconnectionmask
private

Definition at line 118 of file GridConnection.f90.

◆ destroy()

procedure, pass(this) gridconnectionmodule::gridconnectiontype::destroy

Definition at line 89 of file GridConnection.f90.

◆ extendconnection()

procedure, pass(this) gridconnectionmodule::gridconnectiontype::extendconnection

Definition at line 92 of file GridConnection.f90.

◆ fillconnectiondatafromexchanges()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::fillconnectiondatafromexchanges
private

Definition at line 117 of file GridConnection.f90.

◆ fillconnectiondatainternal()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::fillconnectiondatainternal
private

Definition at line 116 of file GridConnection.f90.

◆ get_regional_offset()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::get_regional_offset
private

Definition at line 105 of file GridConnection.f90.

◆ getdiscretization()

procedure, pass(this) gridconnectionmodule::gridconnectiontype::getdiscretization

Definition at line 93 of file GridConnection.f90.

◆ getinterfaceindex()

generic, private gridconnectionmodule::gridconnectiontype::getinterfaceindex
private

Definition at line 106 of file GridConnection.f90.

Here is the call graph for this function:

◆ getinterfaceindexbycell()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::getinterfaceindexbycell
private

Definition at line 108 of file GridConnection.f90.

◆ getinterfaceindexbyindexmodel()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::getinterfaceindexbyindexmodel
private

Definition at line 109 of file GridConnection.f90.

◆ isperiodic()

procedure, pass(this) gridconnectionmodule::gridconnectiontype::isperiodic

Definition at line 97 of file GridConnection.f90.

◆ makeprimaryconnections()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::makeprimaryconnections
private

Definition at line 114 of file GridConnection.f90.

◆ maskinternalconnections()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::maskinternalconnections
private

Definition at line 119 of file GridConnection.f90.

◆ registerinterfacecells()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::registerinterfacecells
private

Definition at line 110 of file GridConnection.f90.

◆ setmaskonconnection()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::setmaskonconnection
private

Definition at line 120 of file GridConnection.f90.

◆ sortinterfacegrid()

procedure, pass(this), private gridconnectionmodule::gridconnectiontype::sortinterfacegrid
private

Definition at line 113 of file GridConnection.f90.

Member Data Documentation

◆ boundarycells

type(cellwithnbrstype), dimension(:), pointer gridconnectionmodule::gridconnectiontype::boundarycells => null()

Definition at line 66 of file GridConnection.f90.

66  type(CellWithNbrsType), dimension(:), pointer :: boundaryCells => null() !< cells on our side of the primary connections

◆ connectedcells

type(cellwithnbrstype), dimension(:), pointer gridconnectionmodule::gridconnectiontype::connectedcells => null()

Definition at line 67 of file GridConnection.f90.

67  type(CellWithNbrsType), dimension(:), pointer :: connectedCells => null() !< cells on the neighbors side of the primary connection

◆ connectionmask

integer(i4b), dimension(:), pointer gridconnectionmodule::gridconnectiontype::connectionmask => null()

Definition at line 80 of file GridConnection.f90.

80  integer(I4B), dimension(:), pointer :: connectionMask => null() !< to mask out connections from the amat coefficient calculation

◆ connections

type(connectionstype), pointer gridconnectionmodule::gridconnectiontype::connections => null()

Definition at line 79 of file GridConnection.f90.

79  type(ConnectionsType), pointer :: connections => null() !< sparse matrix with the connections

◆ exchangestencildepth

integer(i4b) gridconnectionmodule::gridconnectiontype::exchangestencildepth

Definition at line 60 of file GridConnection.f90.

60  integer(I4B) :: exchangeStencilDepth !< stencil size at the interface

◆ haloexchanges

type(stlvecint), pointer gridconnectionmodule::gridconnectiontype::haloexchanges

Definition at line 68 of file GridConnection.f90.

68  type(STLVecInt), pointer :: haloExchanges !< all exchanges that are potentially part of this interface

◆ idxtoglobal

type(globalcelltype), dimension(:), pointer gridconnectionmodule::gridconnectiontype::idxtoglobal => null()

Definition at line 71 of file GridConnection.f90.

71  type(GlobalCellType), dimension(:), pointer :: idxToGlobal => null() !< a map from interface index to global coordinate

◆ idxtoglobalidx

integer(i4b), dimension(:), pointer, contiguous gridconnectionmodule::gridconnectiontype::idxtoglobalidx => null()

Definition at line 72 of file GridConnection.f90.

72  integer(I4B), dimension(:), pointer, contiguous :: idxToGlobalIdx => null() !< a (flat) map from interface index to global index,

◆ indexcount

integer(i4b), pointer gridconnectionmodule::gridconnectiontype::indexcount => null()

Definition at line 77 of file GridConnection.f90.

77  integer(I4B), pointer :: indexCount => null() !< counts the number of cells in the interface

◆ interfacemap

type(interfacemaptype), pointer gridconnectionmodule::gridconnectiontype::interfacemap => null()

Definition at line 82 of file GridConnection.f90.

82  type(InterfaceMapType), pointer :: interfaceMap => null() !< defining map for the interface

◆ internalstencildepth

integer(i4b) gridconnectionmodule::gridconnectiontype::internalstencildepth

Definition at line 59 of file GridConnection.f90.

59  integer(I4B) :: internalStencilDepth !< stencil size for the interior

◆ memorypath

character(len=lenmempath) gridconnectionmodule::gridconnectiontype::memorypath

Definition at line 58 of file GridConnection.f90.

58  character(len=LENMEMPATH) :: memoryPath

◆ model

class(numericalmodeltype), pointer gridconnectionmodule::gridconnectiontype::model => null()

Definition at line 62 of file GridConnection.f90.

62  class(NumericalModelType), pointer :: model => null() !< the model for which this grid connection exists

◆ nrofboundarycells

integer(i4b), pointer gridconnectionmodule::gridconnectiontype::nrofboundarycells => null()

Definition at line 65 of file GridConnection.f90.

65  integer(I4B), pointer :: nrOfBoundaryCells => null() !< nr of boundary cells with connection to another model

◆ nrofcells

integer(i4b), pointer gridconnectionmodule::gridconnectiontype::nrofcells => null()

Definition at line 70 of file GridConnection.f90.

70  integer(I4B), pointer :: nrOfCells => null() !< the total number of cells in the interface

◆ primaryexchange

class(disconnexchangetype), pointer gridconnectionmodule::gridconnectiontype::primaryexchange => null()

Definition at line 63 of file GridConnection.f90.

63  class(DisConnExchangeType), pointer :: primaryExchange => null() !< pointer to the primary exchange for this interface

◆ region_to_iface_map

integer(i4b), dimension(:), pointer gridconnectionmodule::gridconnectiontype::region_to_iface_map => null()

Definition at line 75 of file GridConnection.f90.

75  integer(I4B), dimension(:), pointer :: region_to_iface_map => null() !< (sparse) mapping from regional index to interface ixd

◆ regionalmodeloffset

integer(i4b), dimension(:), pointer gridconnectionmodule::gridconnectiontype::regionalmodeloffset => null()

Definition at line 76 of file GridConnection.f90.

76  integer(I4B), dimension(:), pointer :: regionalModelOffset => null() !< the new offset to compactify the range of indices

◆ regionalmodels

type(listtype) gridconnectionmodule::gridconnectiontype::regionalmodels

Definition at line 74 of file GridConnection.f90.

74  type(ListType) :: regionalModels !< the models participating in the interface

The documentation for this type was generated from the following file: