Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bladder coordinates #235

Merged
merged 40 commits into from
Aug 15, 2023
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
19bc323
Changed the wall thickness amounts.
zekh167 Jul 24, 2023
16946f1
Changed the material central path's coordinates and derivatives to re…
zekh167 Jul 25, 2023
a5c6efc
Making the nodes from outer surface to inner surface.
zekh167 Jul 25, 2023
5e3dde1
Put the markers on inner surface.
zekh167 Jul 25, 2023
daec000
Changed the wall thicknesses.
zekh167 Jul 26, 2023
7b954e2
changed the test for bladder.
zekh167 Jul 26, 2023
e0e6792
Changed the function to get the right coordinates and derivatives.
zekh167 Aug 8, 2023
d9ee349
Changed the function name and added the outward parameter.
zekh167 Aug 8, 2023
a35fd20
Changed the function name and added the outward parameter.
zekh167 Aug 8, 2023
888d585
Changed the function name and added the outward parameter.
zekh167 Aug 8, 2023
899d888
Changed the function name and added the outward parameter.
zekh167 Aug 8, 2023
d3feb2a
Changed the function name and added the outward parameter.
zekh167 Aug 8, 2023
d0ff653
Changed the function name and added the outward parameter.
zekh167 Aug 8, 2023
fca492f
Changed the function name and made the required changes to apex.
zekh167 Aug 8, 2023
7355186
Updated the bladder test.
zekh167 Aug 8, 2023
13e8ac2
Removed the 'Ureter position around' from the visible options.
zekh167 Aug 8, 2023
e2b7eac
Fixed the issues with Hermite through wall for material coordinates.
zekh167 Aug 8, 2023
690bbd6
Fixed the markers location.
zekh167 Aug 8, 2023
81f60f3
Updated the bladder test.
zekh167 Aug 8, 2023
0902725
Moved the apex to outside surface.
zekh167 Aug 15, 2023
0145808
Updated bladder test.
zekh167 Aug 15, 2023
9d2386d
Changed two parameters for Cat and Material.
zekh167 Aug 15, 2023
b6ba03c
Changed the material wall thickness.
zekh167 Aug 15, 2023
fedb407
Updated.
zekh167 Aug 15, 2023
2a703c5
Updated cecum test.
zekh167 Aug 15, 2023
3cef73e
Updated colon test.
zekh167 Aug 15, 2023
8d05ff8
Updated colon segment test.
zekh167 Aug 15, 2023
8aa67dc
Updated esophagus test.
zekh167 Aug 15, 2023
181202d
Updated small intestine test.
zekh167 Aug 15, 2023
56e932e
Updated the extrudeSurfaceCoordinates function.
zekh167 Aug 15, 2023
b6c49d0
Updated the colonsegment test.
zekh167 Aug 15, 2023
165064e
Fixed the d1.
zekh167 Aug 15, 2023
f89c5d9
Fixed d3.
zekh167 Aug 15, 2023
0bbbe97
Updated bladderurethra test with main branch.
zekh167 Aug 15, 2023
86b3538
Updated cecum test with main branch.
zekh167 Aug 15, 2023
ddc85dd
Updated colon test with main branch.
zekh167 Aug 15, 2023
ea67b23
Updated colonsegment test with main branch.
zekh167 Aug 15, 2023
ee141f1
Updated esophagus test with main branch.
zekh167 Aug 15, 2023
101c355
Updated small intestine test with main branch.
zekh167 Aug 15, 2023
ab7cd5c
Minor change.
zekh167 Aug 15, 2023
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
139 changes: 86 additions & 53 deletions src/scaffoldmaker/meshtypes/meshtype_3d_bladder1.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,41 +261,47 @@ class MeshType_3d_bladder1(Scaffold_base):
'D2 derivatives': True,
'D3 derivatives': True,
'Length': 1.0,
'Number of elements': 7
'Number of elements': 10
},
'meshEdits': exnode_string_from_nodeset_field_parameters(
[Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2,
Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3],
[
(1, [[2.00000, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.11429, 0.00000],
[0.00000, -0.20000, 0.00476], [0.00000, 0.00000, 0.14286], [0.00000, 0.00462, 0.16190]]),
(2, [[1.71429, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.26667, 0.00000],
[0.00000, -0.10476, -0.00476], [0.00000, 0.00000, 0.26667], [0.00000, -0.00462, 0.08572]]),
(3, [[1.42857, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.32381, -0.00952],
[0.00000, -0.03333, 0.00000], [0.00000, -0.00924, 0.31429], [0.00000, 0.00000, 0.03333]]),
(4, [[1.14286, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.33333, 0.00000],
[0.00000, 0.01905, 0.00476], [0.00000, 0.00000, 0.33333], [0.00000, 0.00462, -0.01429]]),
(5, [[0.85714, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.28571, 0.00000],
[0.00000, 0.07143, 0.00000], [0.00000, 0.00000, 0.28571], [0.00000, 0.00000, -0.09048]]),
(6, [[0.57143, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.19048, 0.00000],
[0.00000, 0.10476, 0.00000], [0.00000, 0.00000, 0.15238], [0.00000, 0.00000, -0.10000]]),
(7, [[0.28571, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.07619, 0.00000],
[0.00000, 0.07143, 0.00000], [0.00000, 0.00000, 0.08571], [0.00000, 0.00000, -0.05238]]),
(8, [[0.00000, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.04762, 0.00000],
[0.00000, -0.01429, 0.00000], [0.00000, 0.00000, 0.04762], [0.00000, 0.00000, -0.02381]])
(1, [[2.00000, 0.00000, 0.00000], [-0.04772, 0.00000, 0.00000], [0.00000, -0.21530, 0.00000],
[0.00000, 0.04601, 0.00000], [0.00000, 0.00000, 0.21530], [0.00000, 0.00000, -0.04601]]),
(2, [[1.90255, 0.00000, 0.00000], [-0.14718, 0.00000, 0.00000], [0.00000, -0.21530, 0.00000],
[0.00000, -0.04601, 0.00000], [0.00000, 0.00000, 0.21530], [0.00000, 0.00000, 0.04601]]),
(3, [[1.70564, 0.00000, 0.00000], [-0.21176, 0.00000, 0.00000], [0.00000, -0.35428, 0.00000],
[0.00000, -0.11371, 0.00000], [0.00000, 0.00000, 0.35428], [0.00000, 0.00000, 0.11371]]),
(4, [[1.47903, 0.00000, 0.00000], [-0.23206, 0.00000, 0.00000], [0.00000, -0.43890, 0.00000],
[0.00000, -0.06591, 0.00000], [0.00000, 0.00000, 0.43890], [0.00000, 0.00000, 0.06591]]),
(5, [[1.24152, 0.00000, 0.00000], [-0.23952, 0.00000, 0.00000], [0.00000, -0.48520, 0.00000],
[0.00000, -0.03068, 0.00000], [0.00000, 0.00000, 0.48520], [0.00000, 0.00000, 0.03068]]),
(6, [[1.00000, 0.00000, 0.00000], [-0.24157, 0.00000, 0.00000], [0.00000, -0.50000, 0.00000],
[0.00000, 0.00001, 0.00000], [0.00000, 0.00000, 0.50000], [0.00000, 0.00000, -0.00001]]),
(7, [[0.75837, 0.00000, 0.00000], [-0.23957, 0.00000, 0.00000], [0.00000, -0.48518, 0.00000],
[0.00000, 0.03070, 0.00000], [0.00000, 0.00000, 0.48518], [0.00000, 0.00000, -0.03070]]),
(8, [[0.52087, 0.00000, 0.00000], [-0.23198, 0.00000, 0.00000], [0.00000, -0.43887, 0.00000],
[0.00000, 0.06589, 0.00000], [0.00000, 0.00000, 0.43887], [0.00000, 0.00000, -0.06589]]),
(9, [[0.29442, 0.00000, 0.00000], [-0.21169, 0.00000, 0.00000], [0.00000, -0.35431, 0.00000],
[0.00000, 0.11366, 0.00000], [0.00000, 0.00000, 0.35431], [0.00000, 0.00000, -0.11366]]),
(10, [[0.09750, 0.00000, 0.00000], [-0.14721, 0.00000, 0.00000], [0.00000, -0.21534, 0.00000],
[0.00000, 0.11291, 0.00000], [0.00000, 0.00000, 0.21534], [0.00000, 0.00000, -0.11291]]),
(11, [[0.00000, 0.00000, 0.00000], [-0.04779, 0.00000, 0.00000], [0.00000, -0.11534, 0.00000],
[0.00000, 0.08709, 0.00000], [0.00000, 0.00000, 0.11534], [0.00000, 0.00000, -0.08709]])
]),
'userAnnotationGroups': [
{
'_AnnotationGroup': True,
'dimension': 1,
'identifierRanges': '1-4',
'identifierRanges': '1-6',
'name': get_bladder_term('dome of the bladder')[0],
'ontId': get_bladder_term('dome of the bladder')[1]
},
{
'_AnnotationGroup': True,
'dimension': 1,
'identifierRanges': '5-7',
'identifierRanges': '7-10',
'name': get_bladder_term('neck of urinary bladder')[0],
'ontId': get_bladder_term('neck of urinary bladder')[1]
}]
Expand Down Expand Up @@ -337,35 +343,29 @@ def getDefaultOptions(cls, parameterSetName='Default'):
'Number of elements along neck': 4,
'Number of elements around': 8,
'Number of elements through wall': 1,
'Wall thickness': 0.008,
'Ureter position around': 0.67,
'Wall thickness': 0.007,
'Ureter position around': 0.67, # should be on the dorsal part (> 0.5). It's a fixed material coordinate and thus not to be edited.
'Use linear through wall': True,
'Refine': False,
'Refine number of elements along': 4,
'Refine number of elements around': 4,
'Refine number of elements through wall': 1
}
if 'Cat 1' in parameterSetName:
options['Wall thickness'] = 0.008 # was 1.5 / 178.08271473110773
options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5)
options['Wall thickness'] = 0.007 # was 1.5 * 2.0 / 178.08271473110773
if 'Human 1' in parameterSetName:
options['Wall thickness'] = 0.009 # was 3.0 / 327.63
options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5)
options['Wall thickness'] = 0.043 # was 3.0 * 2.0 / 327.63
if 'Mouse 1' in parameterSetName:
options['Wall thickness'] = 0.007 # was 0.5 / 72.004931756029
options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5)
options['Wall thickness'] = 0.008 # was 0.5 * 2.0 / 72.004931756029
if 'Pig 1' in parameterSetName:
options['Wall thickness'] = 0.005 # was 2.5 / 505.2045520616655
options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5)
options['Wall thickness'] = 0.016 # was 2.5 * 2.0 / 505.2045520616655
if 'Rat 1' in parameterSetName:
options['Wall thickness'] = 0.003 # was 0.3 / 110.40996641878101
options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5)
options['Wall thickness'] = 0.006 # was 0.3 * 2.0 / 110.40996641878101
if 'Material' in parameterSetName:
options['Number of elements along dome'] = 8
options['Number of elements along neck'] = 4
options['Number of elements around'] = 8
options['Wall thickness'] = 0.01
options['Ureter position around'] = 0.67
options['Wall thickness'] = 0.02 # an average of the wall thicknesses for above species, rounded.
return options

@staticmethod
Expand All @@ -377,7 +377,7 @@ def getOrderedOptionNames():
'Number of elements around',
'Number of elements through wall',
'Wall thickness',
'Ureter position around',
# 'Ureter position around', # it's a fixed material coordinate and thus not to be edited.
'Use linear through wall',
'Refine',
'Refine number of elements around',
Expand Down Expand Up @@ -460,7 +460,7 @@ def generateBaseMesh(cls, region, options):
useCubicHermiteThroughWall = not (options['Use linear through wall'])

materialCentralPath = cls.centralPathDefaultScaffoldPackages_Bladder['Material']
materialWallThickness = 0.01
materialWallThickness = 0.02

elementsCountAlongBladder = elementsCountAlongDome + elementsCountAlongNeck

Expand Down Expand Up @@ -497,6 +497,38 @@ def generateBaseMesh(cls, region, options):
xOrgan, d1Organ, d2Organ, d3Organ = \
getBladderCoordinates(elementsCountAlongDome, elementsCountAlongNeck, elementsCountAround,
elementsCountThroughWall, materialWallThickness, materialCentralPath)

# # Obtain the central path coordinates and derivatives for an ellipsoid to put for the "Material" central path
# bladderLength = 2.0
# diameter = 1.0
# centre = [bladderLength / 2, 0.0, 0.0]
# height = bladderLength
# poleAxis = [bladderLength / 2, 0.0, 0.0]
# sideAxis = [0.0, diameter / 2, 0.0]
# xEllipsoid, d1Ellipsoid, d2Ellipsoid = createEllipsoidPoints(centre, poleAxis, sideAxis, elementsCountAround,
# elementsCountAlongBladder, height)
#
# pathNodesList = []
# for n1 in range(elementsCountAlongDome + elementsCountAlongNeck + 1):
# n = n1 * elementsCountAround
# pathNode = [xEllipsoid[n][0], 0.0, 0.0]
# pathNodesList.append(pathNode)
# print('pathNodesList', pathNodesList)
#
# d2path = []
# d3path = []
# for n1 in range(1, elementsCountAlongDome + elementsCountAlongNeck):
# n = n1 * elementsCountAround
# v1 = xEllipsoid[n]
# v2 = xEllipsoid[n + elementsCountAround // 2]
# v1v2 = [v2[c] - v1[c] for c in range(3)]
# mag = vector.magnitude(v1v2)
# halfMag = mag / 2
# d2path.append([0.0, -halfMag, 0.0])
# d3path.append([0.0, 0.0, halfMag])
# print('d2path', d2path)
# print('d3path', d3path)

del tmp_region

# Create annotation groups for bladder
Expand Down Expand Up @@ -575,8 +607,8 @@ def generateBaseMesh(cls, region, options):
rightUreterGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region,
get_bladder_term("right ureter junction with bladder"))

idx1 = 1
xi1 = [0.0, 0.0, 0.0]
idx1 = elementsCountAround * elementsCountThroughWall
xi1 = [0.0, 0.0, 1.0]
markerList = []
markerList.append({"group": apexGroup, "elementId": idx1, "xi": xi1})
idx2 = elementsCountAlongDome * elementsCountAround * elementsCountThroughWall + ureterElementPositionAround + 1
Expand Down Expand Up @@ -1296,40 +1328,41 @@ def getBladderCoordinates(elementsCountAlongDome, elementsCountAlongNeck, elemen
d2Inner.append(d2)
d3Inner.append(d3)

# Create outer layers from the inner nodes
# Create inner layers from the outer nodes
wallThicknessList = [wallThickness] * (elementsCountAlongBladder + 1)
relativeThicknessList = []
transitElementList = [0] * elementsCountAround
xList, d1List, d2List, d3List, curvatureList = \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can't just negate the wall thickness and pass to this function. What you're getting is elements with negative volume, with xi0 on the outside and xi1 on the inside. This also means your lumen/serosa annotations appear wrong.
Note the surface annotation code is correct: you need to fix this function to be able to create coordinates from outer properly.
I suggest you rename Mabelle's tubemesh function to extrudeSurfaceCoordinates() and have an additional option outward=True (you will supply False, which will internally use -wall thickness, but importantly must keep layer ordering from inside to out and d3 direction from inside to out. This should be a small change to this function; I don't want to see a whole copy of the code for the outward=False case, should just be a different sequence of inserting in the lists, e.g. list.insert(0, layer) for that case, where list.append(layer) is used for outward=True.
Please be careful to rename all variables so they say e.g. xSurf rather than xInner and ensure the function arguments are correctly documented.
Update comment to say 'create inner layers from outer' in bladder.
Please make sure all the tests pass and the annotations look correct. Check Colon etc. look correct and its annotations are correct. Be careful that all previous uses of getCoordinateFromInner call the new function.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I renamed Mabelle's tubemesh function and added the outward parameter to this function in all previous uses. Nothing else has been changed for the other scaffolds' code.
  • I also changed all variables in that function in tubemesh and documented the function arguments.
  • Changed the tubemesh function in order to create the nodes order from inner to outer, d3 pointing from inside to out while the bladder scaffold is created inward (outward=False). It also works properly for the outward=True in other scaffolds like colonsegment and esophagus.
  • Adjusted the markers location.
  • Checked the annotation to be true.
  • Bladder test has been updated. All tests pass.

tubemesh.getCoordinatesFromInner(xInner, d1Inner, d2Inner, d3Inner, wallThicknessList, relativeThicknessList,
tubemesh.extrudeSurfaceCoordinates(xInner, d1Inner, d2Inner, d3Inner, wallThicknessList, relativeThicknessList,
elementsCountAround, elementsCountAlongBladder, elementsCountThroughWall,
transitElementList)
transitElementList, outward=False)

# Deal with multiple nodes at the start point for closed proximal end
xApexInner = xList[0]
n = elementsCountAround * (elementsCountThroughWall + 1)
xApexOuter = xList[n - 1]
# Arclength between apex point and corresponding point on next face
mag = interp.getCubicHermiteArcLength(xList[0], d2List[0], xList[2 * elementsCountAround],
d2List[2 * elementsCountAround])
d2ApexInner = vector.setMagnitude(sx_dome_group[2][0], mag)
mag = interp.getCubicHermiteArcLength(xList[n - 1], d2List[n - 1], xList[2 * n - 1],
d2List[2 * n - 1])
d2ApexOuter = vector.setMagnitude(sx_dome_group[2][0], mag)

d1ApexInner = vector.crossproduct3(sx_dome_group[1][0], d2ApexInner)
d1ApexInner = vector.setMagnitude(d1ApexInner, mag)
d1ApexOuter = vector.crossproduct3(sx_dome_group[1][0], d2ApexOuter)
d1ApexOuter = vector.setMagnitude(d1ApexOuter, mag)
d3ApexUnit = vector.normalise(
vector.crossproduct3(vector.normalise(d1ApexInner), vector.normalise(d2ApexInner)))
d3ApexInner = [d3ApexUnit[c] * wallThickness / elementsCountThroughWall for c in range(3)]
vector.crossproduct3(vector.normalise(d1ApexOuter), vector.normalise(d2ApexOuter)))
d3ApexOuter = [d3ApexUnit[c] * wallThickness / elementsCountThroughWall for c in range(3)]

# Final nodes on the bladder
xFinal = []
d1Final = []
d2Final = []
d3Final = []
for n3 in range(elementsCountThroughWall + 1):
xApex = [xApexInner[c] +
d3ApexUnit[c] * wallThickness / elementsCountThroughWall * n3 for c in range(3)]
xApex = [xApexOuter[c] -
d3ApexUnit[c] * wallThickness / elementsCountThroughWall * (elementsCountThroughWall - n3) for c in range(3)]
xFinal.append(xApex)
d1Final.append(d1ApexInner)
d2Final.append(d2ApexInner)
d3Final.append(d3ApexInner)
d1Final.append(d1ApexOuter)
d2Final.append(d2ApexOuter)
d3Final.append(d3ApexOuter)

xFinal += xList[(elementsCountThroughWall + 1) * elementsCountAround:]
d1Final += d1List[(elementsCountThroughWall + 1) * elementsCountAround:]
Expand Down
4 changes: 2 additions & 2 deletions src/scaffoldmaker/meshtypes/meshtype_3d_bladderurethra1.py
Original file line number Diff line number Diff line change
Expand Up @@ -884,14 +884,14 @@ def generateBaseMesh(cls, region, options):
transitElementList = [0] * elementsCountAround

relativeThicknessList = []
xList, d1List, d2List, d3List, curvatureList = tubemesh.getCoordinatesFromInner(xWarpedList, d1WarpedList,
xList, d1List, d2List, d3List, curvatureList = tubemesh.extrudeSurfaceCoordinates(xWarpedList, d1WarpedList,
d2WarpedList, d3WarpedUnitList,
wallThicknessList,
relativeThicknessList,
elementsCountAround,
elementsCountAlong,
elementsCountThroughWall,
transitElementList)
transitElementList, outward=True)
# Call the derivatives from the transition list to be replaced in the d2List
idx = elementsCountAlongBladder * elementsCountAround
for n2 in range(elementsCountThroughWall + 1):
Expand Down
4 changes: 2 additions & 2 deletions src/scaffoldmaker/meshtypes/meshtype_3d_cecum1.py
Original file line number Diff line number Diff line change
Expand Up @@ -434,9 +434,9 @@ def generateBaseMesh(cls, region, options):
wallThicknessList = [wallThickness] * (elementsCountAlong + 1)

relativeThicknessList = []
xList, d1List, d2List, d3List, curvatureList = tubemesh.getCoordinatesFromInner(xWarpedList, d1WarpedList,
xList, d1List, d2List, d3List, curvatureList = tubemesh.extrudeSurfaceCoordinates(xWarpedList, d1WarpedList,
d2WarpedList, d3WarpedUnitList, wallThicknessList, relativeThicknessList,
elementsCountAround, elementsCountAlong, elementsCountThroughWall, transitElementList)
elementsCountAround, elementsCountAlong, elementsCountThroughWall, transitElementList, outward=True)

# Deal with multiple nodes at end point for closed proximal end
xApexInner = xList[0]
Expand Down
5 changes: 3 additions & 2 deletions src/scaffoldmaker/meshtypes/meshtype_3d_colon1.py
Original file line number Diff line number Diff line change
Expand Up @@ -862,9 +862,10 @@ def generateBaseMesh(cls, region, options):
contractedWallThicknessList = colonSegmentTubeMeshInnerPoints.getContractedWallThicknessList()

# Create coordinates and derivatives
xList, d1List, d2List, d3List, curvatureList = tubemesh.getCoordinatesFromInner(xExtrude, d1Extrude,
xList, d1List, d2List, d3List, curvatureList = tubemesh.extrudeSurfaceCoordinates(xExtrude, d1Extrude,
d2Extrude, d3UnitExtrude, contractedWallThicknessList, relativeThicknessList,
elementsCountAround, elementsCountAlong, elementsCountThroughWall, transitElementList)
elementsCountAround, elementsCountAlong, elementsCountThroughWall, transitElementList,
outward=True)

relaxedLengthList, xiList = colonSegmentTubeMeshInnerPoints.getRelaxedLengthAndXiList()

Expand Down
5 changes: 3 additions & 2 deletions src/scaffoldmaker/meshtypes/meshtype_3d_colonsegment1.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,9 +347,10 @@ def generateBaseMesh(cls, region, options):

# Create coordinates and derivatives
xList, d1List, d2List, d3List, curvatureList = \
tubemesh.getCoordinatesFromInner(xWarpedList, d1WarpedList, d2WarpedList, d3WarpedUnitList,
tubemesh.extrudeSurfaceCoordinates(xWarpedList, d1WarpedList, d2WarpedList, d3WarpedUnitList,
contractedWallThicknessList, relativeThicknessList, elementsCountAround,
elementsCountAlongSegment, elementsCountThroughWall, transitElementList)
elementsCountAlongSegment, elementsCountThroughWall, transitElementList,
outward=True)

xColonSegment = d1ColonSegment = d2ColonSegment = []

Expand Down
4 changes: 2 additions & 2 deletions src/scaffoldmaker/meshtypes/meshtype_3d_esophagus1.py
Original file line number Diff line number Diff line change
Expand Up @@ -420,10 +420,10 @@ def generateBaseMesh(cls, region, options):
# Create coordinates and derivatives
transitElementList = [0]*elementsCountAround
xList, d1List, d2List, d3List, curvatureList = \
tubemesh.getCoordinatesFromInner(xWarpedList, d1WarpedList, d2WarpedList, d3WarpedUnitList,
tubemesh.extrudeSurfaceCoordinates(xWarpedList, d1WarpedList, d2WarpedList, d3WarpedUnitList,
[wallThickness]*(elementsCountAlong+1), relativeThicknessList,
elementsCountAround, elementsCountAlong, elementsCountThroughWall,
transitElementList)
transitElementList, outward=True)

# Create flat coordinates
xFlat, d1Flat, d2Flat = tubemesh.createFlatCoordinates(xiList, flatWidthList, length, wallThickness,
Expand Down
Loading