def createBasis(interpolationType, basisUserNumber): basis = CMISS.Basis() basis.CreateStart(basisUserNumber) basis.type = CMISS.BasisTypes.LAGRANGE_HERMITE_TP basis.numberOfXi = numberOfXi basis.interpolationXi = [interpolationType] * numberOfXi basis.quadratureNumberOfGaussXi = [numGauss] * numberOfXi basis.CreateFinish() return basis
# Create a 3D rectangular cartesian coordinate system coordinateSystem = CMISS.CoordinateSystem() coordinateSystem.CreateStart(coordinateSystemUserNumber) coordinateSystem.DimensionSet(3) coordinateSystem.CreateFinish() # Create a region and assign the coordinate system to the region region = CMISS.Region() region.CreateStart(regionUserNumber, CMISS.WorldRegion) region.LabelSet("Region") region.coordinateSystem = coordinateSystem region.CreateFinish() # Define basis basis = CMISS.Basis() basis.CreateStart(basisUserNumber) if InterpolationType in (1, 2, 3, 4): basis.type = CMISS.BasisTypes.LAGRANGE_HERMITE_TP elif InterpolationType in (7, 8, 9): basis.type = CMISS.BasisTypes.SIMPLEX basis.numberOfXi = numberOfXi basis.interpolationXi = [ CMISS.BasisInterpolationSpecifications.LINEAR_LAGRANGE ] * numberOfXi if (NumberOfGaussXi > 0): basis.quadratureNumberOfGaussXi = [NumberOfGaussXi] * numberOfXi basis.CreateFinish() if (UsePressureBasis): # Define pressure basis
# Creation a rectangular cartesian coordinate system coordinateSystem = CMISS.CoordinateSystem() coordinateSystem.CreateStart(coordinateSystemUserNumber) coordinateSystem.dimension = 3 coordinateSystem.CreateFinish() # Create a region in the world region region = CMISS.Region() region.CreateStart(regionUserNumber, CMISS.WorldRegion) region.label = "LaplaceRegion" region.coordinateSystem = coordinateSystem region.CreateFinish() # Create a tri-quadratic lagrange basis basis = CMISS.Basis() basis.CreateStart(basisUserNumber) basis.type = CMISS.BasisTypes.LAGRANGE_HERMITE_TP basis.numberOfXi = numberOfXi basis.interpolationXi = [interpolationType] * numberOfXi basis.quadratureNumberOfGaussXi = [numGauss] * numberOfXi basis.CreateFinish() # Create a generated regular mesh generatedMesh = CMISS.GeneratedMesh() generatedMesh.CreateStart(generatedMeshUserNumber, region) generatedMesh.type = CMISS.GeneratedMeshTypes.REGULAR generatedMesh.basis = [basis] generatedMesh.extent = [width, length, height] generatedMesh.numberOfElements = [ne for ne in numberGlobalElements if ne > 0]