Skip to content

Commit

Permalink
Merge pull request #697 from evalf/finitecell
Browse files Browse the repository at this point in the history
Finitecell
  • Loading branch information
gertjanvanzwieten authored Nov 16, 2022
2 parents 02eb284 + 232cad3 commit e4a96e1
Show file tree
Hide file tree
Showing 7 changed files with 373 additions and 342 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@ The following overview lists user facing changes as well as newly added
features in inverse chronological order.


IMPROVED: more efficient trimming

The trim routine (which is used for the Finite Cell Method) is rewritten for
speed and to produce more efficient quadrature schemes. The changes relate to
the subdivision at the deepest refinement level. While this step used to
introduce auxiliary vertices at every dimension (lines, faces, volumes), the
new implementation limits the introduction of vertices to the line segments
only, resulting in a subdivision that consists of fewer simplices and
consequently fewer quadrature points.


REMOVED: Nutils configuration file

Support for the Nutils configuration file (which used to be located in either
Expand Down
22 changes: 11 additions & 11 deletions examples/platewithhole.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,32 +99,32 @@ def test_spline(self):
with self.subTest('l2-error'):
self.assertAlmostEqual(err[0], .00033, places=5)
with self.subTest('h1-error'):
self.assertAlmostEqual(err[1], .00672, places=5)
self.assertAlmostEqual(err[1], .00674, places=5)
with self.subTest('constraints'):
self.assertAlmostEqual64(cons, '''
eNpjaGBoYGBAxvrnGBow4X89g3NQFSjQwLAGq7i10Wus4k+NfM8fNWZgOGL89upc47WX0ozvXjAzPn1e
1TjnPACrACoJ''')
with self.subTest('left-hand side'):
self.assertAlmostEqual64(u, '''
eNpbZHbajIHhxzkGBhMgtgdi/XPypyRPvjFxO/PccPq5Vn2vcxr6luf+6xmcm2LMwLDQePf5c0bTzx8x
5D7vaTjnnIFhzbmlQPH5xhV39Y3vXlxtJHoh2EjvvLXR63MbgOIbjRdfrTXeecnUeO+Fn0Yrzj818j1/
FCh+xPjt1bnGay+lGd+9YGZ8+ryqcc55AK+AP/0=''')
eNpbb3bMjIHhxzkGBhMgtgdi/XMqp8RPvjLxOPPCcNq5Fn3Pcxr6luf+6xmcm2LMwLDQePf5c0bTzx8x
5DnvaTjnnIFhzbmlQPH5xgvu6hvfvbjaSPRCsJHeeWuj1+c2AMU3Gi++Wmu885Kp8d4LP41WnH9q5Hv+
KFD8iPHbq3ON115KM757wcz49HlV45zzAL8gQC8=''')

def test_mixed(self):
err, cons, u = main(nelems=4, etype='mixed', btype='std', degree=2, traction=.1, maxrefine=2, radius=.5, poisson=.3)
with self.subTest('l2-error'):
self.assertAlmostEqual(err[0], .00024, places=5)
with self.subTest('h1-error'):
self.assertAlmostEqual(err[1], .00739, places=5)
self.assertAlmostEqual(err[1], .00740, places=5)
with self.subTest('constraints'):
self.assertAlmostEqual64(cons, '''
eNpjaGDADhlwiOEU1z8HZusbgukkg5BzRJqKFRoa1oD1HzfceA5NH9FmgKC10SuwOdONpM7DxDYa77gM
MueoMQPDEePzV2Hic42XXmoynnQRxvc3dryQbnz3Aoj91Mj3vJnx6fOqxjnnAQzkV94=''')
with self.subTest('left-hand side'):
self.assertAlmostEqual64(u, '''
eNoNzE8og3EcBvC3uUo5rNUOnBSK9/19n0Ic0Eo5oJBmRxcaB04kUnPgoETmT2w7LVrtMBy4auMw+35/
7/vaykFSFEopKTnIe/jU01PPU6FNWcQIn+Or5CBfSqCGD1uDYhi7/KbW+dma5aK65gX6Y8Po8HSzZQ7y
vBniHyvFV9aq17V7TK42O9kwFS9YUzxhjXIcZxLCnIzjTsfxah/BMFJotjUlZYz6xYeoPqEPKaigbKhb
9lOj9NGa9KgtVmqJH9UT36gcp71dEr6HaVS5GS8f46AcQ9itx739SQXdBL8dRqeTo1odox35poh2yJVh
apEueucsRWWPgpJFoLKPNzeHC/fU+yl48pDyMi6dCFbsBNJODNu2iawOoE4PoVdP4kH/UkZeaEDaUJQG
zMg/DouRUg==''')
eNoNzEEoQ3EcB/AXVymHtdqBkyLx3v/3LTQHtHJQKKHZ0YXMQS6sSM2BcrKMqbHTotUOw4GrthzWfr//
e6+nHJYUyUopKSnlHT717Vvfr0cpSWCWr/FVs1GuZdHKmb6QGMYRN9Qev1irXFUVTtAfG8agb5gtc5LX
zQj/WDm+s3b8bsBncosZZsNUvGEt8YI1w2lcSQRrMg9Pp/FmZ2EYOfTYmnIyR+PShLi+oA8pq5DsqxoH
qEvGaFdG1AErtclP6pnvVYnz/u4MVj2OZrfg53OceElE3Q482p9U0d0I2FGEnRK16SQdyjfFtEOuTFOv
DFGDi7QsxxSSIoIPGby7Jdy4l/5PxVeGeFu4dWLYtk+Rd5JI2SaKOoh2PYVRvYi6/qWCvNKE9KMqnViR
fyhZkYI=''')
Loading

0 comments on commit e4a96e1

Please sign in to comment.