def ReadModelParts(self, max_node_Id=0, max_elem_Id=0, max_cond_Id=0): properties = KratosMultiphysics.Properties(0) properties_walls = KratosMultiphysics.Properties(0) self.SetHardcodedProperties(properties, properties_walls) self.spheres_model_part.AddProperties(properties) self.rigid_face_model_part.AddProperties(properties_walls) translational_scheme = DEM.ForwardEulerScheme() translational_scheme.SetTranslationalIntegrationSchemeInProperties(properties, True) rotational_scheme = DEM.ForwardEulerScheme() rotational_scheme.SetRotationalIntegrationSchemeInProperties(properties, True) element_name = "CylinderParticle2D" DEM.PropertiesProxiesManager().CreatePropertiesProxies(self.spheres_model_part) coordinates = KratosMultiphysics.Array3() coordinates[0] = 0.0 coordinates[1] = 0.0025002 coordinates[2] = 0.0 radius = 0.0025 self.creator_destructor.CreateSphericParticle(self.spheres_model_part, coordinates, properties, radius, element_name) for node in self.spheres_model_part.Nodes: node.SetSolutionStepValue(KratosMultiphysics.VELOCITY_Y, -3.9) self.rigid_face_model_part.CreateNewNode(3, -0.01, 0.0, 0.0) self.rigid_face_model_part.CreateNewNode(4, 0.01, 0.0, 0.0) condition_name = "RigidEdge2D2N" self.rigid_face_model_part.CreateNewCondition(condition_name, 7, [3, 4], self.rigid_face_model_part.GetProperties()[0])
def ReadModelParts(self, max_node_Id=0, max_elem_Id=0, max_cond_Id=0): properties = KratosMultiphysics.Properties(0) properties_walls = KratosMultiphysics.Properties(0) SetHardcodedProperties(properties, properties_walls) self.spheres_model_part.AddProperties(properties) self.rigid_face_model_part.AddProperties(properties_walls) translational_scheme = DEM.ForwardEulerScheme() translational_scheme.SetTranslationalIntegrationSchemeInProperties( properties, True) rotational_scheme = DEM.ForwardEulerScheme() rotational_scheme.SetRotationalIntegrationSchemeInProperties( properties, True) element_name = "SphericContinuumParticle3D" DEM.PropertiesProxiesManager().CreatePropertiesProxies( self.spheres_model_part) coordinates = KratosMultiphysics.Array3() coordinates[0] = -1 coordinates[1] = 0.0 coordinates[2] = 0.0 radius = 1 self.creator_destructor.CreateSphericParticle(self.spheres_model_part, coordinates, properties, radius, element_name) coordinates = KratosMultiphysics.Array3() coordinates[0] = 0.95 coordinates[1] = 0.0 coordinates[2] = 0.0 radius = 1 self.creator_destructor.CreateSphericParticle(self.spheres_model_part, coordinates, properties, radius, element_name) for node in self.spheres_model_part.Nodes: node.SetSolutionStepValue(DEM.COHESIVE_GROUP, 1) for node in self.spheres_model_part.Nodes: if node.Id == 2: node.SetSolutionStepValue(KratosMultiphysics.VELOCITY_X, 0.0) if node.Id == 1: node.SetSolutionStepValue(KratosMultiphysics.VELOCITY_X, 0.1) self.rigid_face_model_part.CreateNewNode(3, -5, 5, -1.008) self.rigid_face_model_part.CreateNewNode(4, 5, 5, -1.008) self.rigid_face_model_part.CreateNewNode(5, -5, -5, -1.008) self.rigid_face_model_part.CreateNewNode(6, 5, -5, -1.008) condition_name = "RigidFace3D3N" self.rigid_face_model_part.CreateNewCondition( condition_name, 7, [5, 6, 3], self.rigid_face_model_part.GetProperties()[0]) self.rigid_face_model_part.CreateNewCondition( condition_name, 8, [3, 6, 4], self.rigid_face_model_part.GetProperties()[0])
def ReadModelParts(self, max_node_Id=0, max_elem_Id=0, max_cond_Id=0): properties = KratosMultiphysics.Properties(0) properties_walls = KratosMultiphysics.Properties(0) self.spheres_model_part.AddProperties(properties) self.rigid_face_model_part.AddProperties(properties_walls) translational_scheme = DEM.ForwardEulerScheme() translational_scheme.SetTranslationalIntegrationSchemeInProperties( properties, True) rotational_scheme = DEM.ForwardEulerScheme() rotational_scheme.SetRotationalIntegrationSchemeInProperties( properties, True) element_name = "SphericParticle3D" DEM.PropertiesProxiesManager().CreatePropertiesProxies( self.spheres_model_part) coordinates = KratosMultiphysics.Array3() coordinates[0] = 0.0 coordinates[1] = 0.0 coordinates[2] = 0.0025002 radius = 0.0025 self.creator_destructor.CreateSphericParticle(self.spheres_model_part, coordinates, properties, radius, element_name) # Second particle to check search flag against particles coordinates[2] = -0.0026 self.creator_destructor.CreateSphericParticle(self.spheres_model_part, coordinates, properties, radius, element_name) for node in self.spheres_model_part.Nodes: node.SetSolutionStepValue(KratosMultiphysics.VELOCITY_Z, -3.9) if node.Id == 2: node.SetSolutionStepValue(KratosMultiphysics.VELOCITY_Z, 1) self.rigid_face_model_part.CreateNewNode(3, -0.01, 0.01, 0.0) self.rigid_face_model_part.CreateNewNode(4, 0.01, 0.01, 0.0) self.rigid_face_model_part.CreateNewNode(5, -0.01, -0.01, 0.0) self.rigid_face_model_part.CreateNewNode(6, 0.01, -0.01, 0.0) condition_name = "RigidFace3D3N" self.rigid_face_model_part.CreateNewCondition( condition_name, 7, [5, 6, 3], self.rigid_face_model_part.GetProperties()[0]) self.rigid_face_model_part.CreateNewCondition( condition_name, 8, [3, 6, 4], self.rigid_face_model_part.GetProperties()[0])
def ReadModelParts(self, max_node_Id=0, max_elem_Id=0, max_cond_Id=0): properties = KratosMultiphysics.Properties(0) properties_walls = KratosMultiphysics.Properties(0) self.SetHardcodedProperties(properties, properties_walls) self.spheres_model_part.AddProperties(properties) self.rigid_face_model_part.AddProperties(properties_walls) DiscontinuumConstitutiveLaw = getattr( DEM, properties[DEM.DEM_DISCONTINUUM_CONSTITUTIVE_LAW_NAME])() DiscontinuumConstitutiveLaw.SetConstitutiveLawInProperties( properties, False) translational_scheme = DEM.ForwardEulerScheme() translational_scheme.SetTranslationalIntegrationSchemeInProperties( properties, True) rotational_scheme = DEM.ForwardEulerScheme() rotational_scheme.SetRotationalIntegrationSchemeInProperties( properties, True) element_name = "SphericParticle3D" DEM.PropertiesProxiesManager().CreatePropertiesProxies( self.spheres_model_part) coordinates = KratosMultiphysics.Array3() coordinates[0] = 0.0 coordinates[1] = 0.0 coordinates[2] = 0.00255 radius = 0.0025 self.creator_destructor.CreateSphericParticle(self.spheres_model_part, coordinates, properties, radius, element_name) for node in self.spheres_model_part.Nodes: node.SetSolutionStepValue(KratosMultiphysics.VELOCITY_Z, -3.9) self.rigid_face_model_part.CreateNewNode(3, -0.01, 0.01, 0.0) self.rigid_face_model_part.CreateNewNode(4, 0.01, 0.01, 0.0) self.rigid_face_model_part.CreateNewNode(5, -0.01, -0.01, 0.0) self.rigid_face_model_part.CreateNewNode(6, 0.01, -0.01, 0.0) condition_name = "RigidFace3D3N" self.rigid_face_model_part.CreateNewCondition( condition_name, 7, [5, 6, 3], self.rigid_face_model_part.GetProperties()[0]) self.rigid_face_model_part.CreateNewCondition( condition_name, 8, [3, 6, 4], self.rigid_face_model_part.GetProperties()[0])