The SHARPy Case files
《SHARPy 案例文件》

SHARPy takes as input a series of .h5 files that contain the numerical data and a .sharpy file that contains the settings for each of the solvers. How these files are generated is at the user’s discretion, though templates are provided, and all methods are valid as long as the required variables are provided with the appropriate format.
SHARPy 以一系列包含数值数据的 .h5 文件和一个包含每个求解器设置的 .sharpy 文件作为输入。这些文件的生成方式由用户自行决定,尽管提供了模板,只要提供了所需变量并以适当的格式提供,所有方法都是有效的。

Modular Framework 模块化框架

SHARPy is built with a modular framework in mind. The following diagram shows the strutuctre of a nonlinear, time marching aeroelastic simulation
SHARPy 采用模块化框架构建。以下图表显示了非线性、时间推进气动弹性模拟的结构

SHARPy's modular structure

Each of the blocks correspond to individual solvers with specific settings. How we choose which solvers to run, in which order and with what settings is done through the solver configuration file, explained in the next section.
每个模块对应一个具有特定设置的独立求解器。我们如何选择要运行的求解器、运行顺序以及设置,是通过求解器配置文件来完成的,这将在下一节中解释。

Solver configuration file
求解器配置文件

The solver configuration file is the main input to SHARPy. It is a ConfigObj formatted file with the .sharpy extension. It contains the settings for each of the solvers and the order in which to run them.
求解器配置文件是 SHARPy 的主要输入。它是一个带有 .sharpy 扩展名的 ConfigObj 格式文件。它包含每个求解器的设置以及它们的运行顺序。

A typical way to assemble the solver configuration file is to place all your desired settings in a dictionary and then convert to and write your ConfigObj. If a setting is not provided the default value will be used. The settings that each solver takes, its type and default value are explained in their relevant documentation pages.
一种典型的构建求解器配置文件的方法是将所有所需的设置放在字典中,然后将其转换为并写入 ConfigObj 。如果未提供设置,将使用默认值。每个求解器所采用的设置、其类型和默认值在相关文档页面上有解释。

import configobj
filename = '<case_route>/<case_name>.sharpy'
config = configobj.ConfigObj()
config.filename = filename
config['SHARPy'] = {'case': '<your SHARPy case name>',  # an example setting
                    # Rest of your settings for the PreSHARPy class
                    }
config['BeamLoader'] = {'orientation': [1., 0., 0.],  # an example setting
                        # Rest of settings for the BeamLoader solver
                        }
# Continue as above for the remainder of solvers that you would like to include

# finally, write the config file
config.write()

The resulting .sharpy file is a plain text file with your specified settings for each of the solvers.
生成的 .sharpy 文件是一个包含您为每个求解器指定的设置的纯文本文件。

Note that, therefore, if one of your settings is a np.array, it will get transformed into a string of plain text before being read by SHARPy. However, any setting with list(float) specified as its setting type will get converted into a np.array once it is read by SHARPy.
请注意,因此,如果您的设置之一是 np.array ,它将在被 SHARPy 读取之前被转换为纯文本字符串。然而,任何指定 list(float) 为其设置类型的设置,在 SHARPy 读取后将被转换为 np.array

FEM file 有限元模型文件

The case.fem.h5 file has several components. We go one by one:
The case.fem.h5 文件包含多个组件。我们逐一介绍:

  • num_node_elem [int] : number of nodes per element.
    num_node_elem [int] :每个单元的节点数。

    Always 3 in our case (3 nodes per structural elements - quadratic beam elements).
    始终是 3(每个结构元素 3 个节点 - 二次梁元素)。

  • num_elem [int] : number of structural elements.
    num_elem [int] :结构元素数量。

  • num_node [int] : number of nodes.
    num_node [int] :节点数量。

    For simple structures, it is num_elem*(num_node_elem - 1) - 1. For more complicated ones, you need to calculate it properly.
    对于简单结构,它是 num_elem*(num_node_elem - 1) - 1 。对于更复杂的结构,你需要正确地计算它。

  • coordinates [num_node, 3]: coordinates of the nodes in body-attached FoR (A).
    coordinates [num_node, 3] :体附 FoR(A)中节点的坐标

  • connectivites [num_elem, num_node_elem] : Beam element’s connectivities.
    connectivites [num_elem, num_node_elem] :梁单元的连接性。

    Every row refers to an element, and the three integers in that row are the indices of the three nodes belonging to that elem. Now, the catch: the ordering is not as you’d think. Order them as [0, 2, 1]. That means, first one, last one, central one. The following image shows the node indices inside the circles representing the nodes, the element indices in blue and the resulting connectivities matrix next to it. Connectivities are tricky when considering complex configurations. Pay attention at the beginning and you’ll save yourself a lot of trouble.
    每一行都对应一个单元,该行中的三个整数是该单元所属的三个节点的索引。现在,注意了:顺序可能和你想象的不一样。按照 [0, 2, 1] 的顺序排列。这意味着,第一个、最后一个、中间的一个。以下图像显示了代表节点的圆圈内的节点索引,蓝色的单元索引,以及旁边的连接矩阵。在考虑复杂配置时,连接性可能很复杂。一开始就注意,你会省去很多麻烦。

    SHARPy Beam Element Connectivities
  • stiffness_db [:, 6, 6]: database of stiffness matrices.
    stiffness_db [:, 6, 6] : 刚度矩阵数据库。

    The first dimension has as many elements as different stiffness matrices are in the model.
    第一维的元素数量与模型中不同的刚度矩阵数量相同。

  • elem_stiffness [num_elem] : array of indices (starting at 0).
    elem_stiffness [num_elem] : 索引数组(从 0 开始)。

    It links every element (index) to the stiffness matrix index in stiffness_db. For example elem_stiffness[0] = 0 ; elem_stiffness[2] = 1 means that the element 0 has a stiffness matrix equal to stiffness_db[0, :, :] , and the second element has a stiffness matrix equal to stiffness_db[1, :, :].
    它将每个元素(索引)链接到刚度矩阵索引 stiffness_db 。例如, elem_stiffness[0] = 0 ; elem_stiffness[2] = 1 表示元素 0 的刚度矩阵等于 stiffness_db[0, :, :] ,第二个元素的刚度矩阵等于 stiffness_db[1, :, :]

    The shape of a stiffness matrix, S is:
    刚度矩阵的形状, S 是:

    S=[EAGAyGAzGJEIyEIz]

    with the cross terms added if needed.
    如有需要,添加交叉项。

    mass_db and elem_mass follow the same scheme than the stiffness, but the mass matrix is given by:
    mass_dbelem_mass 采用了与刚度相同的方案,但质量矩阵由以下给出:

    M=[mIξ~cgmξ~cgmJ]

    where m is the distributed mass per unit length kg/m , (~) is the skew-symmetric matrix of a vector and ξcg is the location of the centre of gravity with respect to the elastic axis in MATERIAL (local) FoR. And what is the Material FoR? This is an important point, because all the inputs that move WITH the beam are in material FoR. For example: follower forces, stiffness, mass, lumped masses…
    m 是单位长度的分布质量 kg/m(~) 是一个向量的反对称矩阵, ξcg 是相对于弹性轴在材料(局部)坐标系中重心的位置。那么什么是材料坐标系?这是一个重要的点,因为所有与梁一起移动的输入都在材料坐标系中。例如:跟随力、刚度、质量、集中质量……

    SHARPy Frames of Reference

    The material frame of reference is noted as B. Essentially, the x component is tangent to the beam in the increasing node ordering, z looks up generally and y is oriented such that the FoR is right handed.
    材料参考系记为 B 。本质上, x 分量在增加的节点排序中与梁相切, z 向上查看, y 的方向使得参考系为右手系。

    In the practice (vertical surfaces, structural twist effects…) it is more complicated than this. The only sure thing about B is that its x direction is tangent to the beam in the increasing node number direction. However, with just this, we have an infinite number of potential reference frames, with y and z being normal to x but rotating around it. The solution is to indicate a for_delta, or frame of reference delta vector (Δ).
    在实践(垂直表面、结构扭转效应等)中,这比这更复杂。关于 B 唯一确定的是其 x 方向与梁在节点编号增加的方向上相切。然而,仅仅这样,我们就有了无限多的潜在参考系,其中 yz 垂直于 x 但围绕它旋转。解决方案是指出一个 for_delta ,或参考系 delta 向量( Δ )。

    Frame of Reference Delta Vector

    Now we can define unequivocally the material frame of reference. With xB and Δ defining a plane, yb is chosen such that the z component is oriented upwards with respect to the lifting surface.
    现在我们可以明确地定义材料参考坐标系。通过 xBΔ 定义一个平面,选择 yb 使得 z 分量相对于升力面向上。

    From this definition comes the only constraint to Δ: it cannot be parallel to xB.
    从该定义中得出对 Δ 的唯一约束:它不能与 xB 平行。

  • frame_of_reference_delta [num_elem, num_node_elem, 3]: rotation vector to FoR B.
    frame_of_reference_delta [num_elem, num_node_elem, 3] : 旋转向量到 FoR B .

    contains the Δ vector in body-attached (A) frame of reference.
    包含在体固连( A )参考系中的 Δ 向量。

    As a rule of thumb:
    一般来说:

    Δ={[1,0,0],if right wing[1,0,0],if left wing[0,1,0],if fuselage[1,0,0],if vertical fin

    These rules of thumb only work if the nodes increase towards the tip of the surfaces (and the tail in the case of the fuselage).
    这些经验法则仅在节点向表面尖端(以及机身的情况下的尾部)增加时才有效。

  • structural_twist [num_elem, num_node_elem]: Element twist.  structural_twist [num_elem, num_node_elem] : 元素扭结。

    Technically not necessary, as the same effect can be achieved with FoR_delta.
    技术上不是必需的,因为可以使用 FoR_delta 达到相同的效果。

  • boundary_conditions [num_node]: boundary conditions.
    boundary_conditions [num_node] :边界条件。

    An array of integers (np.zeros((num_node, ), dtype=int)) and contains all 0 except for
    一个整数数组 (np.zeros((num_node, ), dtype=int)) 包含了除 0 之外的所有

    • One node NEEDS to have a 1 , this is the reference node. Usually, the first node has 1 and is located in [0, 0, 0]. This makes things much easier.
      一个节点需要有一个 1 ,这是参考节点。通常,第一个节点是 1,位于 [0, 0, 0] 。这使得事情变得容易得多。

    • If the node is a tip of a beam (is not attached to 2 elements, but just 1), it needs to have a -1.
      如果节点是梁的端点(不是连接到 2 个元素,而是仅连接到 1 个),则需要有一个 -1

  • beam_number [num_elem]: beam index.  beam_number [num_elem] :梁索引。

    Is another array of integers. Usually you don’t need to modify its value. Leave it at 0.
    这是一个整数数组。通常您不需要修改它的值。保持为 0 即可。

  • app_forces [num_elem, 6]: applied forces and moments.
    app_forces [num_elem, 6] :作用力和力矩。

    Contains the applied forces app_forces[:, 0:3] and moments app_forces[:, 3:6] in a given node.
    包含给定节点上的作用力 app_forces[:, 0:3] 和力矩 app_forces[:, 3:6]

    Important points: the forces are given in Material FoR (check above). That means that in a symmetrical model, a thrust force oriented upstream would have the shape [0, T, 0, 0, 0, 0] in the right wing, while the left would be [0, -T, 0, 0, 0, 0]. Likewise, a torsional moment for twisting the wing leading edge up would be [0, 0, 0, M, 0, 0] for the right, and [0, 0, 0, -M, 0, 0] for the left. But careful, because an out-of-plane bending moment (wing tip up) has the same sign (think about it).
    重要点:力以材料力(Material FoR)给出(请参阅上方)。这意味着在对称模型中,上游方向的推力力在右翼的形状为 [0, T, 0, 0, 0, 0] ,而左翼则为 [0, -T, 0, 0, 0, 0] 。同样,扭转力矩用于将机翼前缘向上扭转,右侧为 [0, 0, 0, M, 0, 0] ,左侧为 [0, 0, 0, -M, 0, 0] 。但请注意,出平面弯矩(翼尖向上)具有相同的符号(想想看)。

  • lumped_mass [:]: lumped masses.  lumped_mass [:] :集中质量。

    Is an array with as many masses as needed (in kg this time). Their order is important, as more information is required to implement them in a model.
    是一个包含所需质量(这次以千克为单位)的数组。它们的顺序很重要,因为需要更多信息才能在模型中实现它们。

  • lumped_mass_nodes [:]: Lumped mass nodes.
    lumped_mass_nodes [:] :集中质量节点。

    Is an array of integers. It contains the index of the nodes related to the masses given in lumped_mass in order.
    是一个整数数组。它包含与 lumped_mass 中给出的质量相关的节点索引,按顺序排列。

  • lumped_mass_inertia [:, 3, 3]: Lumped mass inertia.
    lumped_mass_inertia [:, 3, 3] : 集中质量惯性。

    Is an array of 3x3 inertial tensors. The relationship is set by the ordering as well.
    是一个惯性张量的数组。关系由排序设置。

  • lumped_mass_position [:, 3]: Lumped mass position.
    lumped_mass_position [:, 3] :集中质量位置。

    Is the relative position of the lumped mass with respect to the node (given in lumped_masss_nodes ) coordinates. ATTENTION: the lumped mass is solidly attached to the node, and thus, its position is given in Material FoR.
    集中质量相对于节点的相对位置(以 lumped_masss_nodes 坐标给出)。注意:集中质量牢固地连接到节点,因此其位置以材料坐标系给出。

Aerodynamics file 空气动力学文件

All the aerodynamic data is contained in case.aero.h5.
所有气动数据都包含在 case.aero.h5 中。

It is important to know that the input for aero is usually based on elements (and inside the elements, their nodes). This causes sometimes an overlap in information, as some nodes are shared by two adjacent elements (like in the connectivities graph in the previous section). The easier way of dealing with this is to make sure the data is consistent, so that the properties of the last node of the first element are the same than the first node of the second element.
了解这一点很重要,即气动力学的输入通常基于元素(以及元素内部的节点)。这有时会导致信息重叠,因为一些节点被两个相邻的元素共享(如前一小节中的连通性图中所示)。处理这种情况的简单方法是确保数据的一致性,以便第一个元素的最后节点的属性与第二个元素的第一个节点的属性相同。

Item by item: 逐项分析:

  • airfoils: Airfoil group.  airfoils :翼型组。

    In the aero.h5 file, there is a Group called airfoils. The airfoils are stored in this group (which acts as a folder) as a two-column matrix with x/c and y/c in each column. They are named '0', '1' , and so on.
    aero.h5 文件中,有一个名为 airfoils 的组。空气 foil 存储在这个组(作为文件夹)中,每个列包含 x/cy/c ,它们被命名为 '0', '1' ,以此类推。

  • chords [num_elem, num_node_elem]: Chord  chords [num_elem, num_node_elem] : 弦

    Is an array with the chords of every airfoil given in an element/node basis.
    是一个包含每个翼型弦长的数组,这些弦长以元素/节点为基础给出。

  • twist [num_elem, num_node_elem]: Twist.  twist [num_elem, num_node_elem] : 扭转。

    Has the twist angle in radians. It is implemented as a rotation around the local x axis.
    具有扭转角度(以弧度为单位)。它被实现为绕局部 x 轴的旋转。

  • sweep [num_elem, num_node_elem]: Sweep.  sweep [num_elem, num_node_elem] : 扫描。

    Same here, just a rotation around z.
    同样,只是在 z 周围旋转。

  • airfoil_distribution [num_elem, num_node_elem]: Airfoil distribution.
    airfoil_distribution [num_elem, num_node_elem] :翼型分布。

    Contains the indices of the airfoils that you put previously in airfoils.
    包含您之前在 airfoils 中放入的翼型的索引。

  • surface_distribution [num_elem]: Surface integer array.
    surface_distribution [num_elem] :表面整数数组。

    It contains the index of the surface the element belongs to. Surfaces need to be continuous, so please note that if your beam numbering is not continuous, you need to make a surface per continuous section.
    它包含元素所属表面的索引。表面需要连续,请注意,如果您的梁编号不连续,您需要为每个连续部分创建一个表面。

  • surface_m [num_surfaces]: Chordwise panelling.
    surface_m [num_surfaces] :弦向面板

    Is an integer array with the number of chordwise panels for every surface.
    是一个整数数组,表示每个表面的弦向面板数量。

  • m_distribution [string]: Discretisation method.
    m_distribution [string] : 离散化方法。

    Is a string with the chordwise panel distribution. In almost all cases, leave it at uniform.
    是一个弦向面板分布的字符串。在几乎所有情况下,请将其保留为 uniform

  • aero_node [num_node]: Aerodynamic node definition.
    aero_node [num_node] :空气动力学节点定义。

    Is a boolean (True or False) array that indicates if that node has a lifting surface attached to it.
    是一个布尔( TrueFalse )数组,表示该节点是否连接有升力面。

  • elastic_axis [num_elem, num_node_elem]: elastic axis.  elastic_axis [num_elem, num_node_elem] : 弹性轴。

    Indicates the elastic axis location with respect to the leading edge as a fraction of the chord of that rib. Note that the elastic axis is already determined, as the beam is fixed now, so this settings controls the location of the lifting surface wrt the beam.
    指示弹性轴相对于翼尖的位置,以该肋弦长的分数表示。请注意,弹性轴已经确定,因为梁现在是固定的,所以此设置控制升力面相对于梁的位置。

  • control_surface [num_elem, num_node_elem]: Control surface.  control_surface [num_elem, num_node_elem] :控制面。

    Is an integer array containing -1 if that section has no control surface associated to it, and 0, 1, 2 ... if the section belongs to the control surface 0, 1, 2 ... respectively.
    包含整数数组,如果该部分没有与之关联的控制面,则为 -1 ,如果该部分分别属于控制面 0, 1, 2 ... ,则为 0, 1, 2 ...

  • control_surface_type [num_control_surface]: Control Surface type.
    control_surface_type [num_control_surface] :控制面类型。

    Contains 0 if the control surface deflection is static, and 1 is it is dynamic.
    包含 0 如果控制面偏转是静态的, 1 则是动态的。

  • control_surface_chord [num_control_surface]: Control surface chord.
    control_surface_chord [num_control_surface] :控制面弦长。

    Is an INTEGER array with the number of panels belonging to the control surface. For example, if M = 4 and you want your control surface to be 0.25c, you need to put 1.
    是一个整数数组,表示属于控制面的面板数量。例如,如果 M = 4 并且您希望您的控制面为 0.25c ,则需要输入 1

  • control_surface_hinge_coord [num_control_surface]: Control surface hinge coordinate.
    control_surface_hinge_coord [num_control_surface] :控制面铰链坐标。

    Only necessary for lifting surfaces that are deflected as a whole, like some horizontal tails in some aircraft. Leave it at 0 if you are not modelling this.
    仅适用于整体偏转的升力面,如某些飞机的一些水平尾翼。如果您不进行建模,请将其留为 0

  • airfoil_efficiency [num_elem, num_node_elem, 2, 3]: Airfoil efficiency.
    airfoil_efficiency [num_elem, num_node_elem, 2, 3] :翼型效率。

    This is an optional setting that introduces a user-defined efficiency and constant terms to the mapping between the aerodynamic forces calculated at the lattice grid and the structural nodes. The formatting of the 4-dimensional array is simple. The first two dimensions correspond to the element index and the local node index. The third index is whether the term is the multiplier to the force 0 or a constant term 1. The final term refers to, in the local, body-attached B frame, the factors and constant terms for: fy, fz, mx. For more information on how these factors are included in the mapping terms see sharpy.aero.utils.mapping.aero2struct_force_mapping().
    这是一个可选设置,它将用户定义的效率和常数项引入到在晶格网格上计算出的气动力和结构节点之间的映射中。4 维数组的格式简单。前两个维度对应于元素索引和局部节点索引。第三个索引表示该项是力的乘数 0 还是常数项 1 。最后一个项指的是在局部、与物体连接的 B 坐标系中,对于 fy, fz, mx 的因素和常数项。有关这些因素如何包含在映射项中的更多信息,请参阅 sharpy.aero.utils.mapping.aero2struct_force_mapping()

  • polars Group (optional): Use airfoil polars to correct aerodynamic forces.
    polars 组(可选):使用翼型极坐标来校正空气动力学力。

    This is an optional group to add if correcting the aerodynamic forces using airfoil polars is desired. A polar should be included for each airfoil defined. Each entry consists of a 4-column table. The first column corresponds to the angle of attack (in radians) and then the C_L, C_D and C_M.
    这是一个可选的组,如果您希望使用翼型极坐标来校正气动力量。对于每个定义的翼型,应包含一个极坐标。每个条目由一个 4 列表格组成。第一列对应于攻角(以弧度为单位),然后是 C_LC_DC_M

Nonlifting Body file 非升力体文件

All the nonlifting body data is contained in case.nonlifting_body.h5.
所有非升力体数据包含在 case.nonlifting_body.h5 中。

The idea behind the structure of the model definition of nonlifting bodies in SHARPy is similiar to the aerodynamic one for lifting surfaces. Again for each node or element we define several parameters.
SHARPy 中非升力体模型定义的结构理念与升力面的空气动力学结构相似。再次,对于每个节点或元素,我们定义了多个参数。

Item by item: 逐项分析:

  • shape: Type of geometrical form of 3D nonlifting body.
    shape : 3D 非升力体的几何形状类型。

    In the nonlifting_body.h5 file, there is a Group called shape. The shape indicates the geometrical form of the nonlifting body. Common options for this parameter are 'cylindrical' and 'specific'. For the former, SHARPy expects rotational symmetric cross-section for which only a radius is required for each node. For the 'specific' option, SHARPy can create a more unique nonlifting body geometry by creating an ellipse at each fuselage defined by y2a2+z2b2=1 with the given ellipse axis lengths a and b. Further, SHARPy lets define the user to create a vertical offset from the node with z0.
    nonlifting_body.h5 文件中,有一个名为 shape 的组。形状表示非升力体的几何形状。此参数的常见选项为 'cylindrical''specific' 。对于前者,SHARPy 期望旋转对称的横截面,对于每个节点只需要一个半径。对于 'specific' 选项,SHARPy 可以通过在每个由 y2a2+z2b2=1 定义的机身处创建椭圆来创建更独特的非升力体几何形状,椭圆轴长度为 ab 。此外,SHARPy 允许用户通过 z0 定义从节点处的垂直偏移。

  • radius [num_node]: Cross-sectional radius.
    radius [num_node] : 横截面半径。

    Is an array with the radius of specified for each fuselage node.
    是一个数组,用于指定每个机身节点的半径。

  • a_ellipse [num_node]: Elliptical axis lengths along the local y-axis.
    a_ellipse [num_node] :沿局部 y 轴的椭圆轴长度。

    Is an array with the length of the elliptical axis along the y-axis.
    是一个沿 y 轴的椭圆轴长度的数组。

  • b_ellipse [num_node]: Elliptical axis lengths along the local z-axis.
    b_ellipse [num_node] :沿局部 z 轴的椭圆轴长度。

    Is an array with the length of the elliptical axis along the z-axis.
    是一个沿 z 轴的椭圆轴长度的数组。

  • z_0_ellipse [num_node]: Vertical offset of the ellipse center from the beam node.
    z_0_ellipse [num_node] :椭圆中心相对于梁节点的垂直偏移。

    Is an array with the vertical offset of the center of the elliptical cross-sectoin from the fuselage node.
    是一个数组,表示椭圆截面中心垂直偏移量与机身节点的距离。

  • surface_m [num_surfaces]: Radial panelling.  surface_m [num_surfaces] :径向面板。

    Is an integer array with the number of radial panels for every surface.
    是一个整数数组,表示每个表面的径向面板数量。

  • nonlifting_body_node [num_node]: Nonlifting body node definition.
    nonlifting_body_node [num_node] :非升力体节点定义。

    Is a boolean (True or False) array that indicates if that node has a nonlifting body attached to it.
    是一个布尔( TrueFalse )数组,表示该节点是否连接了一个非升力体。

  • surface_distribution [num_elem]: Nonlifting Surface integer array.
    surface_distribution [num_elem] :非升力表面整数数组。

    It contains the index of the surface the element belongs to. Surfaces need to be continuous, so please note that if your beam numbering is not continuous, you need to make a surface per continuous section.
    它包含元素所属表面的索引。表面需要连续,请注意,如果您的梁编号不连续,您需要为每个连续部分创建一个表面。

Time-varying force input file (.dyn.h5)
时变力输入文件( .dyn.h5

The .dyn.h5 file is an optional input file that may contain force and acceleration inputs that vary with time. This is intended for use in dynamic problems. For SHARPy to look for and use this file the setting unsteady in the BeamLoader must be turned to on.
The .dyn.h5 文件是一个可选的输入文件,可能包含随时间变化的力和加速度输入。这旨在用于动态问题。为了使 SHARPy 查找并使用此文件,必须在 BeamLoader 中的 unsteady 设置中将其设置为 on

Appropriate data entries in the .dyn.h5 include:
适当的数据条目在 .dyn.h5 包含:

  • dynamic_forces [num_t_steps, num_node, 6]: Dynamic forces in body attached B frame.
    dynamic_forces [num_t_steps, num_node, 6] :与 B 坐标系相连的物体上的动态力。

    Forces given at each time step, for each node and then for the 6 degrees of freedom (fx, fy, fz, mx, my, mz) in a body-attached (local) frame of reference B.
    每个时间步长给出的力,针对每个节点,然后在物体附加(局部)参考系 B 中针对 6 个自由度( fx, fy, fz, mx, my, mz )。

  • for_pos [num_t_steps, 6]: Body frame of reference (A FoR) position.
    for_pos [num_t_steps, 6] :参考坐标系(A FoR)的位置。

    Position of the reference frame A in time.
    参考坐标系 A 在时间中的位置。

  • for_vel [num_t_steps, 6]: Body frame of reference (A FoR) velocity.
    for_vel [num_t_steps, 6] :参考系(A FoR)的速度体框。

    Velocity of the reference frame A in time.
    参考坐标系 A 的时间速度。

  • for_acc [num_t_steps, 6]: Body frame of reference (A FoR) acceleration.
    for_acc [num_t_steps, 6] :参考(A FoR)的机体加速度。

    Acceleration of the reference frame A in time.
    参考坐标系 A 随时间加速。

    If a case is restarted from a pickle file, the .dyn.h5 file should include the dynamic information for the previous simulation (that will be discarded) and the information for the new simulation.
    如果从 pickle 文件重新启动案例,.dyn.h5 文件应包含之前模拟的动态信息(将被丢弃)以及新模拟的信息。