Exemplo n.º 1
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)

        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])
Exemplo n.º 2
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])
Exemplo n.º 3
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])