Version 2 (modified by 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.