From 8ed50bc9a32c5d30f237bafff643ed6fd39e4762 Mon Sep 17 00:00:00 2001 From: L-Nafaryus Date: Mon, 4 Oct 2021 12:16:01 +0500 Subject: [PATCH] New: calc tests for comparison b/n mesh w(/o) prismatic layer --- playground/wPrismaticLayer/anisotropy.db | Bin 0 -> 233472 bytes playground/wPrismaticLayer/anisotropy.toml | 281 ++++++++++++++++++++ playground/woPrismaticLayer/anisotropy.db | Bin 0 -> 233472 bytes playground/woPrismaticLayer/anisotropy.toml | 281 ++++++++++++++++++++ 4 files changed, 562 insertions(+) create mode 100644 playground/wPrismaticLayer/anisotropy.db create mode 100644 playground/wPrismaticLayer/anisotropy.toml create mode 100644 playground/woPrismaticLayer/anisotropy.db create mode 100644 playground/woPrismaticLayer/anisotropy.toml diff --git a/playground/wPrismaticLayer/anisotropy.db b/playground/wPrismaticLayer/anisotropy.db new file mode 100644 index 0000000000000000000000000000000000000000..80960bd27b4cdb235779e7c6f367fcff25632170 GIT binary patch literal 233472 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 literal 0 HcmV?d00001 diff --git a/playground/wPrismaticLayer/anisotropy.toml b/playground/wPrismaticLayer/anisotropy.toml new file mode 100644 index 0000000..f72c3b4 --- /dev/null +++ b/playground/wPrismaticLayer/anisotropy.toml @@ -0,0 +1,281 @@ +# -*- coding: utf-8 -*- +# This file is part of anisotropy. +# License: GNU GPL version 3, see the file "LICENSE" for details. + +[logger] +name = "anisotropy" +format = "[ %(levelname)s ] %(message)s" + +[base] +simple = true +bodyCentered = true +faceCentered = true + +[[structures]] + [structures.structure] + type = "simple" + # auto # from theta: list # theta: float + theta = [0.01, 0.28, 0.01] # [min, max, step] + # auto # from directions:list # direction: list + directions = [ + [1, 0, 0], + [0, 0, 1], + [1, 1, 1] + ] + + # r0 = + # L = + # radius = + + filletsEnabled = true + # auto # fillets: float + + [structures.mesh] + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.5 + nbSegPerEdge = 2 + nbSegPerRadius = 1 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + viscousLayers = true + thickness = [0.01, 0.005] # [min, max] # step is controlled by theta count + numberOfLayers = 1 + stretchFactor = 1 + isFacesToIgnore = true + facesToIgnore = ["inlet", "outlet"] + # auto # faces: list + extrusionMethod = "SURF_OFFSET_SMOOTH" + + [[structures.submesh]] + name = "strips" + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.2 + nbSegPerEdge = 2 + nbSegPerRadius = 3 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + [structures.flowapproximation] + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + # multiplication velocity value with flow direction vector + velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + [structures.flow] + scale = [ 1e-5, 1e-5, 1e-5 ] + + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + +[[structures]] + [structures.structure] + type = "bodyCentered" + # auto # from theta: list # theta: float + theta = [0.01, 0.17, 0.01] # [min, max, step] + # auto # from directions:list # direction: list + directions = [ + [1, 0, 0], + [0, 0, 1], + [1, 1, 1] + ] + + # r0 = + # L = + # radius = + + filletsEnabled = true + # auto # fillets: float + + [structures.mesh] + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.5 + nbSegPerEdge = 2 + nbSegPerRadius = 1 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + viscousLayers = true + thickness = [0.005, 0.0005] # [min, max] # step is controlled by theta count + numberOfLayers = 1 + stretchFactor = 1 + isFacesToIgnore = true + facesToIgnore = ["inlet", "outlet"] + # auto # faces: list + extrusionMethod = "SURF_OFFSET_SMOOTH" + + [[structures.submesh]] + name = "strips" + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.2 + nbSegPerEdge = 2 + nbSegPerRadius = 3 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + [structures.flowapproximation] + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + # multiplication velocity value with direction vector + velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + [structures.flow] + scale = [ 1e-5, 1e-5, 1e-5 ] + + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + +[[structures]] + [structures.structure] + type = "faceCentered" + # auto # from theta: list # theta: float + theta = [0.01, 0.12, 0.01] # [min, max, step] + # auto # from directions:list # direction: list + directions = [ + [1, 0, 0], + [0, 0, 1], + [1, 1, 1] + ] + + # r0 = + # L = + # radius = + + filletsEnabled = true + # auto # fillets: float + + [structures.mesh] + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.5 + nbSegPerEdge = 2 + nbSegPerRadius = 1 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + viscousLayers = true + thickness = [0.001, 0.0005] # [min, max] # step is controlled by theta count + numberOfLayers = 1 + stretchFactor = 1 + isFacesToIgnore = true + facesToIgnore = ["inlet", "outlet"] + # auto # faces: list + extrusionMethod = "SURF_OFFSET_SMOOTH" + + [[structures.submesh]] + name = "strips" + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.2 + nbSegPerEdge = 2 + nbSegPerRadius = 3 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + [structures.flowapproximation] + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + # multiplication velocity value with direction vector + velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + [structures.flow] + scale = [ 1e-5, 1e-5, 1e-5 ] + + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + + diff --git a/playground/woPrismaticLayer/anisotropy.db b/playground/woPrismaticLayer/anisotropy.db new file mode 100644 index 0000000000000000000000000000000000000000..b161e338d08b32dafb7416eba93d11474ccecf7b GIT binary patch literal 233472 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 WZ@tadwZxa53ggKptEPdm*#7~gbHz~r literal 0 HcmV?d00001 diff --git a/playground/woPrismaticLayer/anisotropy.toml b/playground/woPrismaticLayer/anisotropy.toml new file mode 100644 index 0000000..223514c --- /dev/null +++ b/playground/woPrismaticLayer/anisotropy.toml @@ -0,0 +1,281 @@ +# -*- coding: utf-8 -*- +# This file is part of anisotropy. +# License: GNU GPL version 3, see the file "LICENSE" for details. + +[logger] +name = "anisotropy" +format = "[ %(levelname)s ] %(message)s" + +[base] +simple = true +bodyCentered = true +faceCentered = true + +[[structures]] + [structures.structure] + type = "simple" + # auto # from theta: list # theta: float + theta = [0.01, 0.28, 0.01] # [min, max, step] + # auto # from directions:list # direction: list + directions = [ + [1, 0, 0], + [0, 0, 1], + [1, 1, 1] + ] + + # r0 = + # L = + # radius = + + filletsEnabled = true + # auto # fillets: float + + [structures.mesh] + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.5 + nbSegPerEdge = 2 + nbSegPerRadius = 1 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + viscousLayers = false + thickness = [0.01, 0.005] # [min, max] # step is controlled by theta count + numberOfLayers = 1 + stretchFactor = 1 + isFacesToIgnore = true + facesToIgnore = ["inlet", "outlet"] + # auto # faces: list + extrusionMethod = "SURF_OFFSET_SMOOTH" + + [[structures.submesh]] + name = "strips" + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.2 + nbSegPerEdge = 2 + nbSegPerRadius = 3 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + [structures.flowapproximation] + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + # multiplication velocity value with flow direction vector + velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + [structures.flow] + scale = [ 1e-5, 1e-5, 1e-5 ] + + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + +[[structures]] + [structures.structure] + type = "bodyCentered" + # auto # from theta: list # theta: float + theta = [0.01, 0.17, 0.01] # [min, max, step] + # auto # from directions:list # direction: list + directions = [ + [1, 0, 0], + [0, 0, 1], + [1, 1, 1] + ] + + # r0 = + # L = + # radius = + + filletsEnabled = true + # auto # fillets: float + + [structures.mesh] + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.5 + nbSegPerEdge = 2 + nbSegPerRadius = 1 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + viscousLayers = false + thickness = [0.005, 0.0005] # [min, max] # step is controlled by theta count + numberOfLayers = 1 + stretchFactor = 1 + isFacesToIgnore = true + facesToIgnore = ["inlet", "outlet"] + # auto # faces: list + extrusionMethod = "SURF_OFFSET_SMOOTH" + + [[structures.submesh]] + name = "strips" + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.2 + nbSegPerEdge = 2 + nbSegPerRadius = 3 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + [structures.flowapproximation] + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + # multiplication velocity value with direction vector + velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + [structures.flow] + scale = [ 1e-5, 1e-5, 1e-5 ] + + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + +[[structures]] + [structures.structure] + type = "faceCentered" + # auto # from theta: list # theta: float + theta = [0.01, 0.12, 0.01] # [min, max, step] + # auto # from directions:list # direction: list + directions = [ + [1, 0, 0], + [0, 0, 1], + [1, 1, 1] + ] + + # r0 = + # L = + # radius = + + filletsEnabled = true + # auto # fillets: float + + [structures.mesh] + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.5 + nbSegPerEdge = 2 + nbSegPerRadius = 1 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + viscousLayers = false + thickness = [0.001, 0.0005] # [min, max] # step is controlled by theta count + numberOfLayers = 1 + stretchFactor = 1 + isFacesToIgnore = true + facesToIgnore = ["inlet", "outlet"] + # auto # faces: list + extrusionMethod = "SURF_OFFSET_SMOOTH" + + [[structures.submesh]] + name = "strips" + maxSize = 0.5 + minSize = 0.05 + + fineness = 5 + growthRate = 0.2 + nbSegPerEdge = 2 + nbSegPerRadius = 3 + + chordalErrorEnabled = true + chordalError = 0.25 + + secondOrder = false + optimize = true + quadAllowed = false + useSurfaceCurvature = true + fuseEdges = true + checkChartBoundary = false + + [structures.flowapproximation] + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + # multiplication velocity value with direction vector + velocity.boundaryField.inlet = { type = "fixedValue", value = 6e-5 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + [structures.flow] + scale = [ 1e-5, 1e-5, 1e-5 ] + + transportProperties.nu = 1e-6 + + pressure.boundaryField.inlet = { type = "fixedValue", value = 1e-3 } + pressure.boundaryField.outlet = { type = "fixedValue", value = 0.0 } + + velocity.boundaryField.inlet = { type = "pressureInletVelocity", value = 0.0 } + velocity.boundaryField.outlet = { type = "zeroGradient", value = "None" } + + +