openglider.lines¶
- class openglider.lines.Line(lower_node, upper_node, v_inf, line_type=<openglider.lines.line_types.linetype.LineType object>, target_length=None, number=None, name=None, color='')[source]¶
Bases:
CachedObject- property color¶
- property diff_vector¶
Line Direction vector (normalized) :return:
- property diff_vector_projected¶
- drag_total¶
Get total drag of line :return: 1/2 * cw * A * v^2
- force_projected¶
- get_correction_influence(residual_force)[source]¶
returns an influence factor [force / length] which is a proposal for the correction of a residual force if the line is moved in the direction of the residual force
- get_stretched_length(pre_load=50, sag=True)[source]¶
Get the total line-length for production using a given stretch length = len_0 * (1 + stretch*force)
- property has_geo¶
true if upper and lower nodes of the line were already computed
- property length_no_sag¶
- length_projected¶
- length_with_sag¶
- property ortho_pressure¶
drag per meter (projected) :return: 1/2 * cw * d * v^2
- rho_air = 1.2¶
- rib_line_norm(glider)[source]¶
returns the squared norm of the cross-product of the line direction and the normal-direction of the connected rib(s)
- property v_inf¶
- property v_inf_0¶
- class openglider.lines.LineSet(lines, v_inf=None)[source]¶
Bases:
objectSet of different lines
- property attachment_points¶
- calculate_sag = True¶
- create_tree(start_node=None)[source]¶
Create a tree of lines :return: [(line, [(upper_line1, []),…]),(…)]
- get_lines_by_floor(target_floor: int = 0, node: Node = None, en_style=True)[source]¶
starting from node: walk up “target_floor” floors and return all the lines.
when en_style is True the uppermost lines are added in case there is no such floor (see EN 926.1 for details)
- get_residual_force(node)[source]¶
compute the residual force in a node to due simplified computation of lines
- get_upper_influence_nodes(line=None, node=None)[source]¶
get the points that have influence on the line and are connected to the wing
- knots_table = [['liros.ltc65', 'liros.ltc65', 2, 2.0, 2.0]]¶
- property lower_attachment_points¶
- property lowest_lines¶
- node_group_rex = re.compile('[^A-Za-z]*([A-Za-z]*)[^A-Za-z]*')¶
- property nodes¶
- recalc(calculate_sag=True, iterations=1)[source]¶
Recalculate Lineset Geometry. if LineSet.calculate_sag = True, drag induced sag will be calculated :return: self
- property total_length¶
- property uppermost_lines¶