Topology
The topology module defines the topology objects, notably the
StructuredTopology and UnstructuredTopology. Maintaining
strict separation of topological and geometrical information, the topology
represents a set of elements and their interconnectivity, boundaries,
refinements, subtopologies etc, but not their positioning in physical space. The
dimension of the topology represents the dimension of its elements, not that of
the the space they are embedded in.
The primary role of topologies is to form a domain for nutils.function
objects, like the geometry function and function bases for analysis, as well as
provide tools for their construction. It also offers methods for integration and
sampling, thus providing a high level interface to operations otherwise written
out in element loops. For lower level operations topologies can be used as
nutils.element iterators.
-
class nutils.topology.Topology(ndims)[source]
topology base class
-
refined_by(refine)[source]
create refined space by refining dofs in existing one
-
elem_eval(funcs, ischeme, separate=False, title='evaluating')[source]
element-wise evaluation
-
elem_mean(funcs, geometry, ischeme, title='computing mean values')[source]
element-wise integration
-
grid_eval(funcs, geometry, C, title='grid-evaluating')[source]
evaluate grid points
-
build_graph(func)[source]
get matrix sparsity
-
integrate(funcs, ischeme, geometry=None, iweights=None, force_dense=False, title='integrating')[source]
-
integrate_symm(funcs, ischeme, geometry=None, iweights=None, force_dense=False, title='integrating')[source]
integrate a symmetric integrand on a product domain
-
projection(fun, onto, geometry, **kwargs)[source]
project and return as function
-
project(fun, onto, geometry, tol=0, ischeme=None, title='projecting', droptol=1e-08, exact_boundaries=False, constrain=None, verify=None, maxiter=0, ptype='lsqr')[source]
L2 projection of function onto function space
-
refinedfunc(dofaxis, refine, degree, title='refining')[source]
create refined space by refining dofs in existing one
-
refine(n)[source]
refine entire topology n times
-
get_simplices(maxrefine, title='getting simplices')[source]
Getting simplices
-
get_trimmededges(maxrefine, title='getting trimmededges')[source]
Getting trimmed edges
-
class nutils.topology.StructuredTopology(structure, periodic=())[source]
structured topology
-
make_periodic(periodic)[source]
add periodicity
-
linearfunc()[source]
linears
-
rectilinearfunc(gridvertices)[source]
rectilinear func
-
refined[source]
refine entire topology
-
trim(levelset, maxrefine, lscheme='bezier3', finestscheme='uniform2', evalrefine=0, title='trimming', log=<module 'nutils.log' from '/var/build/user_builds/nutils/checkouts/v1.0/nutils/log.py'>)[source]
trim element along levelset
-
neighbor(elem0, elem1)[source]
Neighbor detection, returns codimension of interface, -1 for non-neighboring elements.
-
class nutils.topology.IndexedTopology(topo, elements)[source]
trimmed topology
-
splinefunc(degree)[source]
create spline function space
-
class nutils.topology.UnstructuredTopology(elements, ndims, namedfuncs={})[source]
externally defined topology
-
splinefunc(degree)[source]
spline func
-
linearfunc()[source]
linear func
-
bubblefunc()[source]
linear func + bubble
-
class nutils.topology.HierarchicalTopology(basetopo, elements)[source]
collection of nested topology elments
-
class nutils.topology.ElemMap(mapping, ndims)[source]
dictionary-like element mapping
-
nutils.topology.glue(master, slave, geometry, tol=1e-10, verbose=False)[source]
Glue topologies along boundary group __glue__.