File: FixedLidWaveSim.py

package info (click to toggle)
esys-particle 2.1-4
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 7,284 kB
  • sloc: cpp: 77,304; python: 5,647; makefile: 1,176; sh: 10
file content (59 lines) | stat: -rw-r--r-- 1,968 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#############################################################
##                                                         ##
## Copyright (c) 2003-2011 by The University of Queensland ##
## Earth Systems Science Computational Centre (ESSCC)      ##
## http://www.uq.edu.au/esscc                              ##
##                                                         ##
## Primary Business: Brisbane, Queensland, Australia       ##
## Licensed under the Open Software License version 3.0    ##
## http://www.opensource.org/licenses/osl-3.0.php          ##
##                                                         ##
#############################################################
#!/bin/env mpipython
"""
Defines single class L{FixedLidWaveSim.FixedLidWaveSim} which extends
L{WaveSim.WaveSim}.
"""
from WaveSim      import *
from OptionParser import OptionParser

import time
import sys

class FixedLidWaveSim(WaveSim):
    """
    Extends L{WaveSim.WaveSim} class, overides the L{createBoundaryWalls}
    walls method simply by adding a "fixed lid" instead of having a
    free-surface.
    """
    def createBoundaryWalls(self):
        """
        Create the walls and the elastic bonds between walls
        and the tagged particles. Create an elastic wall at
        the surface (maximum y) in addition to walls on other
        sides of the particle block.
        """

        #
        # Create walls on all sides except the maximum y
        #
        WaveSim.createBoundaryWalls(self)

        #
        # Create the wall on the max y side
        #
        self.getLsmWaveSim().createWall(
            NRotBondedWallPrms(
              self.wallBondSpringK,
              self.getParticleBBox().getMaxPt(),
              Vec3(0, -1, 0),
              TOP_TAG
            )
        )

if (__name__=="__main__"):
    parser = OptionParser()
    (options, args) = parser.parse_args(sys.argv[1:])

    waveSim = FixedLidWaveSim(options)
    waveSim.runSim()