예제 #1
0
    def test_Cfd(self):
        ''' Test for Cfd '''
        gravity_model = meta_class.GravityModel()

        meta_obj = meta_class.Cfd(gravity_model=gravity_model)

        # Test setting the attribute on init
        self.assertEqual(meta_obj.gravity_model, gravity_model)

        self.assertEqual(
            meta_obj.definition,
            'Computational fluid dynamics general (set of ) equations for momentum, mass and energy'
        )  # noqa

        # Test the default values
        self.assertIsInstance(meta_obj.compressibility_model,
                              meta_class.IncompressibleFluidModel)
        self.assertIsInstance(meta_obj.thermal_model,
                              meta_class.IsothermalModel)
        self.assertIsInstance(meta_obj.turbulence_model,
                              meta_class.LaminarFlowModel)
        self.assertIsInstance(meta_obj.multiphase_model,
                              meta_class.SinglePhaseModel)
        self.assertIsInstance(meta_obj.rheology_model,
                              meta_class.NewtonianFluidModel)
        self.assertIsInstance(meta_obj.electrostatic_model,
                              meta_class.ConstantElectrostaticFieldModel)

        self.check_cuds_item(meta_obj)
        self.check_cuds_component(meta_obj)
        self.check_model_equation(meta_obj)
예제 #2
0
    def test_assign_vector(self):
        '''Test for assigning value to a CUBA with vector+float type'''
        # GravityModel.acceleration is a vector of float
        gravity_model = meta_class.GravityModel()

        with self.assertRaises(ValueError):
            # shape should be (3)
            gravity_model.acceleration = (1.0, 2.0)

        # Make sure values assigned can be obtained within
        # numerical precision
        expected = (1.e-10, 1.e-10, 1.e-10)
        gravity_model.acceleration = expected
        actual = gravity_model.acceleration
        numpy.testing.assert_allclose(actual, expected)
예제 #3
0
bp.material = cuds.get_by_name('sludge').uid

# water is Newtonian so no need to add that to rheology models
cfd.rheology_model = bp

cuds.add([cfd])

sm = api.StandardStressModel(name='standard_stress_model')
cuds.add([sm])

rvm = api.SimpleRelativeVelocityModel(name='simple_rel_vel_model')
rvm.diffusion_velocity = (0, -0.002, 0)
rvm.linear_constant = 285.0
cuds.add([rvm])

gm = api.GravityModel(name='gravitation')
gm.acceleration = (0, -9.81, 0)
cuds.add([gm])

# boundary condtitions
vel_inlet = api.ConstantVelocityCondition((0.0191, 0, 0), water,
                                          name='vel_inlet')
pres_inlet = api.ZeroGradientPressureCondition(0.0, water, name='pres_inlet')
vf_inlet = api.ConstantVolumeFractionCondition(0.001, water, name='vf_inlet')

vel_outlet = api.InletOutletVelocity((0, 0, 0), water, name='vel_outlet')

pres_outlet = api.ConstantPressureCondition(0.0, water, name='pres_outlet')
vf_outlet = api.InletOutletVolumeFraction(0.001, water, name='vf_outlet')

vel_walls = api.ConstantVelocityCondition((0, 0, 0), water, name='vel_walls')