Surface representation¶
Recall that the surface \(\Gamma\) be defined via a collection of patches \(\Gamma_{j} = 1,2,\ldots N_{\textrm{patches}}\), where each patch \(\Gamma_{j}\) is parametrized by a non-degenerate chart \(\boldsymbol{x}^{j}: B \to \Gamma_{j}\), where \(B\) is standard base element. Each patch \(\Gamma_{j}\) is sampled at a collection of discretization nodes \((u_{i},v_{i}) \in B\), \(i=1,2,\ldots m_{j}\). Let \(N\) denote the total number of discretization points, then we store the following quantities to represent the surfaces
N: number of discretization points
\(N_{\textrm{patches}}\): number of patches
norders(\(N_{\textrm{patches}}\)): order of discretization of each patch
srcvals (12,N): surface samples of \(\boldsymbol{x}^{j}, \partial_{u} \boldsymbol{x}^{j}, \partial_{v} \boldsymbol{x}^{j},\) and \(\boldsymbol{n}^{j}\), where
\[\boldsymbol{n}^{j} = \frac{\partial_{u} \boldsymbol{x}^{j} \times \partial_{v} \boldsymbol{x}^{j}}{|\partial_{u} \boldsymbol{x}^{j} \times \partial_{v} \boldsymbol{x}^{j}|}\]
srccoefs (9,N): Orthogonal polynomial expansions of \(\boldsymbol{x}^{j}, \partial_{u} \boldsymbol{x}^{j}\), and \(\partial_{v} \boldsymbol{x}_{j}\)
iptype (\(N_{\textrm{patches}}\)): patch type
ixyzs (\(N_{\textrm{patches}} + 1\)): location in srcvals, and srccoefs where information for patches begin. Also implicitly stores \(m_{j}\) = ixyzs(j+1)-ixyzs(j)
Supported base elements and discretization nodes¶
iptype = 1:
\[T_{0} = \{ (u,v): u>0,v>0, u+v<1 \},\]discretized using Vioreanu Rokhlin nodes (up to order 20), and the basis functions are Koornwinder polynomial expansions. For \(norder=p\), there are \((p+1) \cdot (p+2)/2\) discretization nodes.
iptype = 11:
\[Q_{0} = \{ (u,v) \in (-1,1)^2 \},\]discretized with tensor product Gauss-Legendre nodes, and the basis functions are tensor product Legendre polynomials. For \(norder=p\), there are \((p+1)^2\) discretization nodes.
iptype = 12:
\[Q_{0} = \{ (u,v) \in (-1,1)^2 \},\]discretized with tensor product Chebyshev nodes, and the basis functions are tensor product Chebyshev polynomials. For \(norder=p\), there are \((p+1)^2\) discretization nodes.
Supported input formats¶
Here are the list of input formats that are currently supported
.go3¶
The .go3 file format is a storage format where each patch is iptype=1, and discretized using the same order Vioreanu-Rokhlin nodes.:
norder-1
N_{patches}
srcvals(1,1)
srcvals(1,2)
.
.
.
srcvals(1,N)
srcvals(2,1)
.
.
.
srcvals(12,N)
See geometries/sphere_192_o03.go3 for an example.