Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3,975 changes: 3,975 additions & 0 deletions src/python/expected_results/Fluid/Fluid0.part0.exelem

Large diffs are not rendered by default.

36,771 changes: 36,771 additions & 0 deletions src/python/expected_results/Fluid/Fluid0.part0.exnode

Large diffs are not rendered by default.

390 changes: 390 additions & 0 deletions src/python/expected_results/Interface/Interface0.part0.exelem

Large diffs are not rendered by default.

1,214 changes: 1,214 additions & 0 deletions src/python/expected_results/Interface/Interface0.part0.exnode

Large diffs are not rendered by default.

1,057 changes: 1,057 additions & 0 deletions src/python/expected_results/Solid/Solid0.part0.exelem

Large diffs are not rendered by default.

4,351 changes: 4,351 additions & 0 deletions src/python/expected_results/Solid/Solid0.part0.exnode

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion src/python/expected_results/results.txt

This file was deleted.

43 changes: 29 additions & 14 deletions src/python/fsi_tube_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,21 @@
import math,numpy,csv,time,sys,os,pdb
from opencmiss.iron import iron

# Ensure output directories exist
if not os.path.exists('./output'):
os.makedirs('./output')
if not os.path.exists('./output/Fluid'):
os.makedirs('./output/Fluid')
if not os.path.exists('./output/Solid'):
os.makedirs('./output/Solid')
if not os.path.exists('./output/Interface'):
os.makedirs('./output/Interface')

LINEAR = 1
QUADRATIC = 2

numberOfSquareElements = 3
numberOfArmElements = 3
numberOfSquareElements = 2
numberOfArmElements = 2
numberOfWallElements = 1
numberOfLengthElements = 2

Expand Down Expand Up @@ -201,9 +211,14 @@
# Initialise OpenCMISS
#================================================================================================================================

worldRegion = iron.Region()
iron.Context.WorldRegionGet(worldRegion)

# Get the computational nodes info
numberOfComputationalNodes = iron.ComputationalNumberOfNodesGet()
computationalNodeNumber = iron.ComputationalNodeNumberGet()
computationEnvironment = iron.ComputationEnvironment()
iron.Context.ComputationEnvironmentGet(computationEnvironment)
numberOfComputationalNodes = computationEnvironment.NumberOfWorldNodesGet()
computationalNodeNumber = computationEnvironment.WorldNodeNumberGet()

#iron.OutputSetOn("Testing")

Expand All @@ -217,17 +232,17 @@

# Create a RC coordinate system for the fluid region
fluidCoordinateSystem = iron.CoordinateSystem()
fluidCoordinateSystem.CreateStart(fluidCoordinateSystemUserNumber)
fluidCoordinateSystem.CreateStart(fluidCoordinateSystemUserNumber,iron.Context)
fluidCoordinateSystem.DimensionSet(3)
fluidCoordinateSystem.CreateFinish()
# Create a RC coordinate system for the solid region
solidCoordinateSystem = iron.CoordinateSystem()
solidCoordinateSystem.CreateStart(solidCoordinateSystemUserNumber)
solidCoordinateSystem.CreateStart(solidCoordinateSystemUserNumber,iron.Context)
solidCoordinateSystem.DimensionSet(3)
solidCoordinateSystem.CreateFinish()
# Create a RC coordinate system for the interface region
interfaceCoordinateSystem = iron.CoordinateSystem()
interfaceCoordinateSystem.CreateStart(interfaceCoordinateSystemUserNumber)
interfaceCoordinateSystem.CreateStart(interfaceCoordinateSystemUserNumber,iron.Context)
interfaceCoordinateSystem.DimensionSet(3)
interfaceCoordinateSystem.CreateFinish()

Expand All @@ -243,13 +258,13 @@

# Create a fluid region
fluidRegion = iron.Region()
fluidRegion.CreateStart(fluidRegionUserNumber,iron.WorldRegion)
fluidRegion.CreateStart(fluidRegionUserNumber,worldRegion)
fluidRegion.label = 'FluidRegion'
fluidRegion.coordinateSystem = fluidCoordinateSystem
fluidRegion.CreateFinish()
# Create a solid region
solidRegion = iron.Region()
solidRegion.CreateStart(solidRegionUserNumber,iron.WorldRegion)
solidRegion.CreateStart(solidRegionUserNumber,worldRegion)
solidRegion.label = 'SolidRegion'
solidRegion.coordinateSystem = solidCoordinateSystem
solidRegion.CreateFinish()
Expand All @@ -268,7 +283,7 @@
numberOfGaussXi = uInterpolation+1

uBasis = iron.Basis()
uBasis.CreateStart(uBasisUserNumber)
uBasis.CreateStart(uBasisUserNumber,iron.Context)
uBasis.type = iron.BasisTypes.LAGRANGE_HERMITE_TP
uBasis.numberOfXi = 3
if (uInterpolation == LINEAR):
Expand All @@ -282,15 +297,15 @@
uBasis.CreateFinish()

pBasis = iron.Basis()
pBasis.CreateStart(pBasisUserNumber)
pBasis.CreateStart(pBasisUserNumber,iron.Context)
pBasis.type = iron.BasisTypes.LAGRANGE_HERMITE_TP
pBasis.numberOfXi = 3
pBasis.interpolationXi = [iron.BasisInterpolationSpecifications.LINEAR_LAGRANGE]*3
pBasis.quadratureNumberOfGaussXi = [numberOfGaussXi]*3
pBasis.CreateFinish()

interfaceBasis = iron.Basis()
interfaceBasis.CreateStart(interfaceBasisUserNumber)
interfaceBasis.CreateStart(interfaceBasisUserNumber,iron.Context)
interfaceBasis.type = iron.BasisTypes.LAGRANGE_HERMITE_TP
interfaceBasis.numberOfXi = 2
if (uInterpolation == LINEAR):
Expand Down Expand Up @@ -789,7 +804,7 @@

# Create an interface between the two meshes
interface = iron.Interface()
interface.CreateStart(interfaceUserNumber,iron.WorldRegion)
interface.CreateStart(interfaceUserNumber,worldRegion)
interface.LabelSet('Interface')
# Add in the two meshes
solidMeshIndex = interface.MeshAdd(solidMesh)
Expand Down Expand Up @@ -1656,7 +1671,7 @@
fsiProblemSpecification = [iron.ProblemClasses.MULTI_PHYSICS,
iron.ProblemTypes.FINITE_ELASTICITY_NAVIER_STOKES,
iron.ProblemSubtypes.FINITE_ELASTICITY_NAVIER_STOKES_ALE]
fsiProblem.CreateStart(fsiProblemUserNumber,fsiProblemSpecification)
fsiProblem.CreateStart(fsiProblemUserNumber,iron.Context,fsiProblemSpecification)
fsiProblem.CreateFinish()

if (progressDiagnostics):
Expand Down