Skip to content

Non-axisymmetric cylindrical mesh #704

Discussion options

You must be logged in to vote

Since bases are generated on a topology, and the topology doesn't know about your coordinate transformation, you have to modify a basis by hand. I'll explain the procedure for a circle using tensorial topologies.

Assume we have a 1D topology $R$ and a 1D topology $Θ$. Using the removedofs parameter of Topology.basis we can create basis for $R Θ$ with basis functions that are nonzero at $r = 0$ removed:

basis0 = (R * Θ).basis(btype, degree, removedofs=[[0], []])

Then we select the single basis function for $R$ that is nonzero at $r = 0$ and concatenate these two:

basis1 = R.basis(btype, degree)[:1]
basis = numpy.concatenate([basis0, basis1])

Below you can find a full example of a Laplace p…

Replies: 1 comment 2 replies

Comment options

You must be logged in to vote
2 replies
@MartinEssink
Comment options

@joostvanzwieten
Comment options

Answer selected by MartinEssink
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants