wiki:SplitRegions

Version 3 (modified by trac, 12 years ago) ( diff )

Split Regions

The split region object is very similar to the uniform region object except that instead of having one set of conditions there are two: qabove and qbelow. In addition there is an interface object that defines a boundary within the shape between above and below.

TYPE(ShapeDef), POINTER :: Shape
TYPE(InterfaceDef), POINTER :: 
REAL(KIND=qPREC), DIMENSION(:), ALLOCATABLE :: qabove, qbelow
INTEGER :: SubSample=1
LOGICAL :: PersistInBoundaries = .false.
LOGICAL :: PersistInternal = .false.

When you call CreateSplitRegion it adds the uniform region to a list and then automatically handles the initialization and the necessary boundary conditions. There is nothing else you have to do except for setup the shape object and the interface object

  SplitRegion%InterfaceObj%Position=position
  CALL SetInterfaceOrientation(SplitRegion%InterfaceObj, theta, phi)
  CALL InitInterfaceWaves(SplitRegion%InterfaceObj, nWaves)
  DO j=1,nWaves
     READ(PROBLEM_DATA_HANDLE, NML=WaveData)
     CALL AddInterfaceWave(SplitRegion%InterfaceObj, wavevector, phase, amplitude)
  END DO
Note: See TracWiki for help on using the wiki.