Example #1
0
 def create_scheme(self):
     h0 = None
     hdx = None
     wcsph = WCSPHScheme(
         ['fluid'], [], dim=2, rho0=rho0, c0=c0, h0=h0,
         hdx=hdx, nu=None, gamma=7.0, alpha=0.0, beta=0.0
     )
     tvf = TVFScheme(
         ['fluid'], [], dim=2, rho0=rho0, c0=c0, nu=None,
         p0=p0, pb=None, h0=h0
     )
     edac = EDACScheme(
         ['fluid'], [], dim=2, rho0=rho0, c0=c0, nu=None,
         pb=p0, h=h0
     )
     iisph = IISPHScheme(
         fluids=['fluid'], solids=[], dim=2, nu=None,
         rho0=rho0, has_ghosts=True
     )
     crksph = CRKSPHScheme(
         fluids=['fluid'], dim=2, nu=None,
         rho0=rho0, h0=h0, c0=c0, p0=0.0
     )
     gtvf = GTVFScheme(
         fluids=['fluid'], dim=2, rho0=rho0, c0=c0,
         nu=None, h0=None, p0=p0, pref=None
     )
     pcisph = PCISPHScheme(
         fluids=['fluid'], dim=2, rho0=rho0, nu=None
     )
     s = SchemeChooser(
         default='tvf', wcsph=wcsph, tvf=tvf, edac=edac, iisph=iisph,
         crksph=crksph, gtvf=gtvf, pcisph=pcisph
     )
     return s
Example #2
0
 def create_scheme(self):
     aha = AdamiHuAdamsScheme(['fluid'], ['dam'],
                              dim=2,
                              rho0=ro,
                              c0=co,
                              alpha=alp,
                              gy=-9.81,
                              nu=0.0,
                              h0=0.03,
                              gamma=1.0)
     wcsph = WCSPHScheme(['fluid'], ['dam'],
                         dim=2,
                         rho0=ro,
                         c0=co,
                         h0=0.03,
                         hdx=1.3,
                         hg_correction=True,
                         gy=-9.81,
                         alpha=alp,
                         gamma=gamma,
                         update_h=True)
     edac = EDACScheme(['fluid'], ['dam'],
                       dim=2,
                       rho0=ro,
                       c0=co,
                       gy=-9.81,
                       alpha=0.0,
                       nu=0.0,
                       h=0.03,
                       clamp_p=True)
     return SchemeChooser(default='wcsph', wcsph=wcsph, aha=aha, edac=edac)
Example #3
0
 def create_scheme(self):
     wcsph = WCSPHScheme(
         ['fluid'], ['boundary'], dim=2, rho0=ro, c0=co,
         h0=h, hdx=1.3, gy=-9.81, alpha=alpha, beta=beta,
         gamma=gamma, hg_correction=True, update_h=True
     )
     aha = AdamiHuAdamsScheme(
         fluids=['fluid'], solids=['boundary'], dim=2, c0=co, nu=nu,
         rho0=ro, h0=h, p0=0.0, gy=-g, gamma=1.0, tdamp=0.0, alpha=alpha
     )
     edac = EDACScheme(
         fluids=['fluid'], solids=['boundary'], dim=2, c0=co, nu=nu,
         rho0=ro, h=h, pb=0.0, gy=-g, eps=0.0, clamp_p=True
     )
     iisph = IISPHScheme(
         fluids=['fluid'], solids=['boundary'], dim=2, nu=nu,
         rho0=ro, gy=-g
     )
     gtvf = GTVFScheme(
         fluids=['fluid'], solids=['boundary'], dim=2, nu=nu,
         rho0=ro, gy=-g, h0=None, c0=co, pref=None
     )
     sisph = SISPHScheme(
         fluids=['fluid'], solids=['boundary'], dim=2, nu=nu,
         c0=co, rho0=ro, alpha=0.05, gy=-g, pref=ro*co**2,
         internal_flow=False, hg_correction=True, gtvf=True, symmetric=True
     )
     s = SchemeChooser(default='wcsph', wcsph=wcsph, aha=aha, edac=edac,
                       iisph=iisph, gtvf=gtvf, sisph=sisph)
     return s
Example #4
0
 def create_scheme(self):
     wcsph = WCSPHScheme(['fluid'], ['wall', 'paddle', 'obstacle'],
                         dim=2,
                         rho0=ro,
                         c0=co,
                         h0=0.01,
                         hdx=1.3,
                         gy=-9.81,
                         hg_correction=True,
                         alpha=alp,
                         gamma=gamma,
                         update_h=True)
     edac = EDACScheme(['fluid'], ['wall', 'paddle', 'obstacle'],
                       dim=2,
                       rho0=ro,
                       c0=co,
                       gy=-9.81,
                       alpha=alp,
                       nu=0.0,
                       h=0.01,
                       clamp_p=True)
     aha = AdamiHuAdamsScheme(['fluid'], ['wall', 'paddle', 'obstacle'],
                              dim=2,
                              rho0=ro,
                              h0=0.01,
                              gamma=1.0,
                              alpha=alp,
                              gy=-9.81,
                              nu=0.0,
                              c0=co)
     return SchemeChooser(default='wcsph', aha=aha, wcsph=wcsph, edac=edac)
Example #5
0
 def create_scheme(self):
     h0 = None
     hdx = None
     wcsph = WCSPHScheme(['fluid'], [],
                         dim=2,
                         rho0=rho0,
                         c0=c0,
                         h0=h0,
                         hdx=hdx,
                         nu=None,
                         gamma=7.0,
                         alpha=0.0,
                         beta=0.0)
     tvf = TVFScheme(['fluid'], [],
                     dim=2,
                     rho0=rho0,
                     c0=c0,
                     nu=None,
                     p0=p0,
                     pb=None,
                     h0=h0)
     edac = EDACScheme(['fluid'], [],
                       dim=2,
                       rho0=rho0,
                       c0=c0,
                       nu=None,
                       pb=p0,
                       h=h0)
     s = SchemeChooser(default='tvf', wcsph=wcsph, tvf=tvf, edac=edac)
     return s
Example #6
0
 def create_scheme(self):
     wcsph = WCSPHScheme(['fluid'], ['wall', 'cube'], dim=2, rho0=ro,
                         h0=0.03, hdx=1.3, hg_correction=True, c0=co,
                         gy=-9.81, alpha=alp, gamma=gamma, update_h=True)
     edac = EDACScheme(['fluid'], ['wall', 'cube'], dim=2, rho0=ro, c0=co,
                       alpha=alp, nu=0.0, h=0.03, gy=-9.81, clamp_p=True)
     return SchemeChooser(default='wcsph', wcsph=wcsph, edac=edac)
Example #7
0
 def create_scheme(self):
     s = EDACScheme(['fluid'], ['solid'],
                    dim=2,
                    rho0=rho,
                    c0=c0,
                    gy=-9.81,
                    alpha=0.0,
                    nu=0.0,
                    h=h0,
                    clamp_p=True)
     return s
Example #8
0
 def create_scheme(self):
     h = nu = None
     s = EDACScheme(['fluid'], ['solid'],
                    dim=2,
                    rho0=rho,
                    c0=c0,
                    h=h,
                    pb=p0,
                    nu=nu,
                    inlet_outlet_manager=None,
                    inviscid_solids=['wall'])
     return s
Example #9
0
 def create_scheme(self):
     wcsph = WCSPHScheme(['fluid'], ['boundary'],
                         dim=2,
                         rho0=ro,
                         c0=co,
                         h0=h,
                         hdx=1.3,
                         gy=-9.81,
                         alpha=alpha,
                         beta=beta,
                         gamma=gamma,
                         hg_correction=True,
                         update_h=True)
     aha = AdamiHuAdamsScheme(fluids=['fluid'],
                              solids=['boundary'],
                              dim=2,
                              c0=co,
                              nu=nu,
                              rho0=ro,
                              h0=h,
                              p0=0.0,
                              gy=-g,
                              gamma=1.0,
                              tdamp=0.0,
                              alpha=alpha)
     edac = EDACScheme(fluids=['fluid'],
                       solids=['boundary'],
                       dim=2,
                       c0=co,
                       nu=nu,
                       rho0=ro,
                       h=h,
                       pb=0.0,
                       gy=-g,
                       eps=0.0,
                       clamp_p=True)
     iisph = IISPHScheme(fluids=['fluid'],
                         solids=['boundary'],
                         dim=2,
                         nu=nu,
                         rho0=ro,
                         gy=-g)
     s = SchemeChooser(default='wcsph',
                       wcsph=wcsph,
                       aha=aha,
                       edac=edac,
                       iisph=iisph)
     return s
Example #10
0
    def create_scheme(self):
        '''Other scheme can be added here'''
        h0 = nu = None
        self.iom = self._create_inlet_outlet_manager()

        edac = EDACScheme(['fluid'], ['solid'],
                          dim=2,
                          rho0=rho,
                          c0=c0,
                          h=h0,
                          pb=None,
                          nu=nu,
                          alpha=0.2,
                          inlet_outlet_manager=self.iom,
                          inviscid_solids=['wall'])

        s = SchemeChooser(default='edac', edac=edac)

        return s
Example #11
0
def test_scheme_chooser_does_not_clobber_default():

    # When
    wcsph = WCSPHScheme(
        ['f'],
        ['b'],
        dim=2,
        rho0=1.0,
        c0=10.0,
        h0=0.1,
        hdx=1.3,
        alpha=0.2,
        beta=0.1,
    )
    edac = EDACScheme(fluids=['f'],
                      solids=['b'],
                      dim=2,
                      c0=10.0,
                      nu=0.001,
                      rho0=1.0,
                      h=0.1,
                      alpha=0.0,
                      pb=0.0)
    s = SchemeChooser(default='wcsph', wcsph=wcsph, edac=edac)
    p = ArgumentParser(conflict_handler="resolve")
    s.add_user_options(p)
    opts = p.parse_args([])

    # When
    s.consume_user_options(opts)

    # Then
    assert s.scheme.alpha == 0.2
    assert s.scheme.beta == 0.1

    # When
    opts = p.parse_args(['--alpha', '0.3', '--beta', '0.4'])
    s.consume_user_options(opts)

    # Then
    assert s.scheme.alpha == 0.3
    assert s.scheme.beta == 0.4
Example #12
0
 def create_scheme(self):
     tvf = TVFScheme(['fluid'], ['solid'],
                     dim=2,
                     rho0=rho0,
                     c0=c0,
                     nu=None,
                     p0=p0,
                     pb=p0,
                     h0=hdx)
     edac = EDACScheme(
         fluids=['fluid'],
         solids=['solid'],
         dim=2,
         c0=c0,
         rho0=rho0,
         nu=0.0,
         pb=p0,
         eps=0.0,
         h=0.0,
     )
     s = SchemeChooser(default='tvf', tvf=tvf, edac=edac)
     return s