Shapefunctions¶
The shapefunctions module contains generic shapefunctions that can be used to approximate distributed systems without giving any information about the systems themselves. This is achieved by projecting them on generic, piecewise smooth functions.
-
class
ShapeFunction
(*args, **kwargs)¶ Base class for approximation functions with compact support.
When a continuous variable of e.g. space and time is decomposed in a series the denote the shape functions.
-
classmethod
cure_interval
(cls, interval, **kwargs)¶ Create a network or set of functions from this class and return an approximation base (
Base
) on the given interval.The
kwargs
may hold the order of approximation or the amount of functions to use. Use them in your child class as needed.If you don’t need to now from which class this method is called, overwrite the
@classmethod
decorator in the child class with the@staticmethod
decorator.Short reference: Inside a
@staticmethod
you know nothing about the class from which it is called and you can just play with the given parameters. Inside a@classmethod
you can additionally operate on the class, since the first parameter is always the class itself.
-
classmethod
Shapefunction Types¶
-
class
LagrangeFirstOrder
(start, top, end, **kwargs)¶ Bases:
pyinduct.shapefunctions.ShapeFunction
Lagrangian shape functions of order 1.
- Parameters
start – Start node
top – Top node, where
end – End node
- Keyword Arguments
half –
right_border –
left_border –
Example plot of the functions
funcs
generated with>>> nodes, funcs = cure_interval(LagrangeFirstOrder, (0, 1), node_count=7)
-
class
LagrangeSecondOrder
(start, mid, end, **kwargs)¶ Bases:
pyinduct.shapefunctions.ShapeFunction
Lagrangian shape functions of order 2.
- Parameters
start – start node
mid – middle node, where
end – end node
- Keyword Arguments
curvature (str) – “concave” or “convex”
half (str) – Generate only “left” or “right” half.
domain (tuple) – Domain on which the function is defined.
Example plot of the functions
funcs
generated with>>> nodes, funcs = cure_interval(LagrangeSecondOrder, (0, 1), node_count=7)
-
static
cure_interval
(domain, **kwargs)¶ Hint function that will cure the given interval with
LagrangeSecondOrder
.- Parameters
domain (
Domain
) – domain to be cured- Returns
(domain, funcs), where funcs is set of
LagrangeSecondOrder
shapefunctions.- Return type
tuple
-
class
LagrangeNthOrder
(order, nodes, left=False, right=False, mid_num=None, boundary=None, domain=- np.inf, np.inf)¶ Bases:
pyinduct.shapefunctions.ShapeFunction
Lagrangian shape functions of order .
Note
The polynomials between the boundary-polynomials and the peak-polynomials, respectively between peak-polynomials and peak-polynomials, are called mid-polynomials.
- Parameters
order (int) – Order of the lagrangian polynomials.
nodes (numpy.array) – Nodes on which the piecewise defined functions have to be one/zero. Length of nodes must be either (for peak-polynomials, see notes) or ‘order +1’ (for boundary- and mid-polynomials).
left (bool) – State the first node (nodes[0]) to be the left boundary of the considered domain.
right (bool) – State the last node (nodes[-1]) to be the right boundary of the considered domain.
mid_num (int) – Local number of mid-polynomials (see notes) to use (only used for order >= 2).
boundary (str) – provide “left” or “right” to instantiate the according boundary-polynomial.
domain (tuple) – Domain of the function.
Example plot of the functions
funcs
generated with>>> nodes, funcs = pi.cure_interval(sh.LagrangeNthOrder, (0, 1), node_count=9, order=4)
-
static
cure_interval
(domain, **kwargs)¶ Hint function that will cure the given interval with
LagrangeNthOrder
. Length of the domain argument must satisfy the conditionE.g. n - order = 1 -> - order = 2 -> - order = 3 -> - and so on.