def test_densityScale(self): dim = Nondimensional() dim._configure() dim.setDensityScale(2.0*kilogram/meter**3) self.assertEqual(1.0*meter, dim.lengthScale()) self.assertEqual(1.0*pascal, dim.pressureScale()) self.assertEqual(1.0*second, dim.timeScale()) self.assertEqual(2.0*kilogram/meter**3, dim.densityScale()) return
def test_temperatureScale(self): dim = Nondimensional() dim._configure() dim.setTemperatureScale(2.0*kelvin) self.assertEqual(1.0*meter, dim.lengthScale()) self.assertEqual(1.0*pascal, dim.pressureScale()) self.assertEqual(1.0*second, dim.timeScale()) self.assertEqual(2.0*kelvin, dim.temperatureScale()) return
def test_temperatureScale(self): dim = Nondimensional() dim._configure() dim.setTemperatureScale(2.0 * kelvin) self.assertEqual(1.0 * meter, dim.lengthScale()) self.assertEqual(1.0 * pascal, dim.pressureScale()) self.assertEqual(1.0 * second, dim.timeScale()) self.assertEqual(2.0 * kelvin, dim.temperatureScale()) return
def test_densityScale(self): dim = Nondimensional() dim._configure() dim.setDensityScale(2.0 * kilogram / meter**3) self.assertEqual(1.0 * meter, dim.lengthScale()) self.assertEqual(1.0 * pascal, dim.pressureScale()) self.assertEqual(1.0 * second, dim.timeScale()) self.assertEqual(2.0 * kilogram / meter**3, dim.densityScale()) return
def test_constructor(self): dim = Nondimensional() dim._configure() self.assertEqual(1.0*meter, dim.lengthScale()) self.assertEqual(1.0*pascal, dim.pressureScale()) self.assertEqual(1.0*second, dim.timeScale()) self.assertEqual(1.0*kilogram/meter**3, dim.densityScale()) self.assertEqual(1.0*kelvin, dim.temperatureScale()) return
def test_constructor(self): dim = Nondimensional() dim._configure() self.assertEqual(1.0 * meter, dim.lengthScale()) self.assertEqual(1.0 * pascal, dim.pressureScale()) self.assertEqual(1.0 * second, dim.timeScale()) self.assertEqual(1.0 * kilogram / meter**3, dim.densityScale()) self.assertEqual(1.0 * kelvin, dim.temperatureScale()) return
def _initialize(self, mesh, integrator): """ Initialize integrator. """ dt = 2.3 from spatialdata.units.Nondimensional import Nondimensional normalizer = Nondimensional() normalizer._configure() from pyre.units.time import s integrator.initialize(totalTime=0.0 * s, numTimeSteps=1, normalizer=normalizer) integrator.timeStep(dt) # Setup fields from pylith.topology.SolutionFields import SolutionFields fields = SolutionFields(mesh) fields.add("residual", "residual") fields.add("disp(t+dt)", "displacement") fields.add("disp(t)", "displacement") fields.add("disp(t-dt)", "displacement") fields.add("velocity(t)", "velocity") fields.add("acceleration(t)", "acceleration") fields.solutionName("disp(t+dt)") residual = fields.get("residual") spaceDim = mesh.coordsys().spaceDim() lengthScale = normalizer.lengthScale() residual.subfieldAdd("displacement", spaceDim, residual.VECTOR, lengthScale.value) residual.subfieldAdd("lagrange_multiplier", spaceDim, residual.VECTOR) residual.subfieldsSetup() residual.setupSolnChart() residual.setupSolnDof(spaceDim) residual.allocate() residual.zeroAll() fields.copyLayout("residual") return fields
def _initialize(self, mesh, integrator): """ Initialize integrator. """ dt = 2.3 from spatialdata.units.Nondimensional import Nondimensional normalizer = Nondimensional() normalizer._configure() from pyre.units.time import s integrator.initialize(totalTime=0.0*s, numTimeSteps=1, normalizer=normalizer) integrator.timeStep(dt) # Setup fields from pylith.topology.SolutionFields import SolutionFields fields = SolutionFields(mesh) fields.add("residual", "residual") fields.add("disp(t+dt)", "displacement") fields.add("disp(t)", "displacement") fields.add("disp(t-dt)", "displacement") fields.add("velocity(t)", "velocity") fields.add("acceleration(t)", "acceleration") fields.solutionName("disp(t+dt)") residual = fields.get("residual") spaceDim = mesh.coordsys().spaceDim() lengthScale = normalizer.lengthScale() residual.subfieldAdd("displacement", spaceDim, residual.VECTOR, lengthScale.value); residual.subfieldAdd("lagrange_multiplier", spaceDim, residual.VECTOR); residual.subfieldsSetup(); residual.setupSolnChart(); residual.setupSolnDof(spaceDim); residual.allocate(); residual.zeroAll(); fields.copyLayout("residual") return fields