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)", "displacement") fields.add("dispIncr(t->t+dt)", "displacement_increment") fields.solutionName("dispIncr(t->t+dt)") residual = fields.get("residual") residual.newSection(residual.VERTICES_FIELD, mesh.coordsys().spaceDim()) residual.allocate() fields.copyLayout("residual") residual.zero() 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)", "displacement") fields.add("dispIncr(t->t+dt)", "displacement_increment") fields.solutionName("dispIncr(t->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