CN117813632A - 基于变形的曲线网格生成 - Google Patents
基于变形的曲线网格生成 Download PDFInfo
- Publication number
- CN117813632A CN117813632A CN202180101579.9A CN202180101579A CN117813632A CN 117813632 A CN117813632 A CN 117813632A CN 202180101579 A CN202180101579 A CN 202180101579A CN 117813632 A CN117813632 A CN 117813632A
- Authority
- CN
- China
- Prior art keywords
- grid
- cost function
- mesh
- linear
- cells
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Image Generation (AREA)
Abstract
计算系统(100)可以包括线性网格访问引擎(108),其被配置为访问线性网格(120、210)和目标几何形状(130),以及包括曲线网格生成引擎(110),其被配置为构造曲线网格(140)。曲线网格(140)的构造可以包括:将线性网格(120、210)投影到目标几何形状(130)上以形成投影网格(220);确定包括在投影网格(220)中的变形块(408);从可用成本函数(320)的集合中选择(410)要应用于变形块的成本函数(340);基于所选择的成本函数(340),迭代地适应(412)变形块,以获得调整后的网格单元(350);以及将曲线网格(140)形成为调整后的网格单元(350)与投影网格(220)中未被确定为变形块的一部分的部分的组合。
Description
背景技术
计算机系统可以用于创建、使用和管理用于产品、物品和其他对象的数据。计算机系统的示例包括计算机辅助设计(Computer-Aided Design,CAD)系统(其可以包括计算机辅助工程(Computer-Aided Engineering,CAE)系统)、可视化和制造系统、产品数据管理(Product Data Management,PDM)系统、以及产品生命周期管理(Product LifecycleManagement,PLM)系统等。这些系统可以包括有助于产品结构和产品制造的设计、可视化和仿真测试的部件。
附图说明
参考附图在以下详细描述中描述了某些示例。
图1示出了支持基于变形的曲线网格生成的计算系统的示例。
图2示出了根据本公开的投影网格的示例生成和变形网格单元的示例确定。
图3示出了从针对投影网格而识别的变形块生成调整后的网格单元的示例。
图4示出了系统可以实施以支持基于变形的曲线网格生成的逻辑的示例。
图5示出了支持基于变形的曲线网格生成的计算系统的示例。
具体实施方式
随着CAD计算系统中的技术进步,基于CAD的CAD模型的设计、仿真和处理的能力也在提高。可以执行复杂仿真以测试数字地建模物理产品的CAD对象的近乎任何方面、特征或行为。例如,CAE系统可以提供基于有限元分析(Finite Element Analysis,FEA)的仿真套件,该仿真套件能够针对几乎任何类型的产品的广大种类的测试实施复杂和稳健的仿真特性。现代CAE系统支持的示例仿真场景包括:燃气轮机部件的热仿真、复合物层叠过程的压力测量、复杂流体动力学仿真、车辆碰撞中汽车部件的详细撞击仿真。
仿真套件通常依赖于底层网格来驱动仿真能力。网格可以由网格单元组成,这些网格单元一起覆盖CAD模型的表面(或体积),形成网格。网格单元可以具有各种特征、形状和参数,其中,具体的网格单元属性取决于用于生成网格的网格过程。例如,仅作为几个示例地,网格单元的形状可以是三角形的、四边形的或六面体的。网格也可以有各种类型,线性网格可以指其中网格单元由通过线性边(也称为线段或边线段)连接的节点组成的网格。如本文所使用的,线性网格可以指网格的网格单元具有线性边的网格(例如,连接形成线性网格的网格单元的节点的线性线段)。
在现代仿真技术中,线性网格具有明显的局限性。在复杂仿真中,线性网格的行为可能较差,并且可能展示出视觉和数值伪影,诸如弯曲锁定、体积锁定和伪应力振荡。通常,除非线性网格被充足地细化,否则线性网格可能无法足够准确地仿真。然而,将线性网格细化到阈值粒度以为FEA仿真提供必要的精度可能导致计算资源的过度使用,并且在某些情况下,网格细化和仿真时间太长。此外,由具有平滑NURBS描述的底层CAD模型生成的线性网格不能通过分段的线性线段来充分地或完全地表示弯曲的几何形状。在其他问题中,在线性网格中这样缺乏精确的几何表示可能导致结构FEA分析中凹入区域(诸如孔和圆形内含物)周围的非物理应力集中。
另一方面,曲线网格能够解决在FEA仿真中影响线性网格的许多问题,并且能够通过更低的网格单元计数(例如,使用更粗略的网格单元)和更少的计算资源需求来潜在地实现这一点,同时在表示平滑几何形状时提供提高的准确性。如本文所使用的,曲线网格可以指其中曲线网格的网格单元由至少部分地通过曲线边连接的节点组成的网格。曲线网格(例如,具有抛物线边的网格单元)可能能够对于线性网格的计算成本的一小部分提供更准确的结果,这是因为与线性网格相比,其具有更丰富的底层表示和在更粗略(例如,更大)的网格单元尺寸下准确地捕捉几何形状的能力。
在复杂几何形状上生成粗略曲线网格可能是一个具有挑战性的技术问题。传统的曲线网格生成技术包括临时方法,其使用简单的网格生成启发法,该启发法只能支持有限类型的网格单元,并且不能保证曲线网格生成过程实际上能够完成。其他技术包括将线性网格后验处理为曲线网格,但这种技术可能导致带有无序节点的无效网格单元,其是由于曲线网格生成过程倒置或引起曲线网格单元中的折叠而产生的。用于解决后验过程所产生的无效曲线网格单元的一些技术依赖于构建从曲线网格单元的等参域到对应的CAD描述的映射,以及使用优化和/或最小化技术来“解缠”无效曲线网格单元。基于优化的技术可能是计算昂贵的,并且可能需要大量次数的优化迭代来处理整个网格。因此,传统的优化技术可能需要处理曲线网格的所有网格单元,以便达到适当的方案以充分地修复、寻址或处理无效曲线网格单元。如此冗长的计算和延迟需求(尤其是对于日益普遍的复杂网格)可能会使这种优化技术在许多CAD环境中变得不可靠和不实用。
本文的公开可以提供用于基于变形的曲线网格生成的系统、方法、设备和逻辑。如更详细地描述的,本文公开的基于变形的曲线网格生成技术可以直接解决(例如,解缠)任何种类的无效曲线网格单元,从而解决传统的临时技术对限于有限类型网格单元(例如,划分为线性/平面网格单元并应用仅限于线性网格的优化技术)的单元特定限制。作为另一特征,本公开的基于变形的曲线网格生成技术不需要在生成曲线网格时对所有的曲线网格单元进行处理,而是替代地可以将处理集中于确定的变形块以处理和解缠相关节点以便修复无效曲线网格单元。与在整个曲线网格上迭代的传统优化技术相比,这样对确定的变形块的选择性处理可以改善CAD系统的计算性能,这可以提高CAD系统的处理能力并降低执行延迟。
作为本公开的又一技术特征,本文提出的基于变形的曲线网格生成技术可以在将线性网格映射到弯曲目标几何形状时利用曲面位移,并在处理和修复无效曲面网格单元时利用确定的曲线位移作为约束。通过利用确定的曲线位移的基于变形的技术,本公开的基于变形的曲线网格生成技术能够减少解决无效曲线网格单元所需的适应迭代的次数,在某些情况下,这是显著的。这种减少可以通过改善处理速度、性能和缩短执行时间来改善CAD计算系统的技术能力。作为又一特征,基于变形的曲线网格生成技术可以选择性地和/或动态地确定应用于适应迭代的成本函数,其可以通过过滤会导致执行繁重次数的迭代或以其他方式拖累性能的成本函数来提供提高的灵活性并改善性能。在任何这种方式中,本文提出的基于变形的曲线网格生成技术可以为任意一族网格单元的曲线网格生成提供稳健、灵活和有效的框架。
本文将更详细地描述基于变形的曲线网格生成技术的这些和其他特征以及本公开的技术优势。
图1示出了支持基于变形的曲线网格生成的计算系统100的示例。计算系统100可以采用单个或多个计算设备的形式,例如应用服务器、计算节点、台式或膝上型计算机、智能手机或其他移动设备、平板设备、嵌入式控制器等。在一些实施方式中,计算系统100主管、支持、执行或实施用以提供网格生成和处理能力的任何组合的CAD应用。
作为用以支持本文描述的基于变形的曲线网格生成特征的任何组合的示例性实施方式,图1中所示的计算系统100包括线性网格访问引擎108和曲线网格生成引擎110。计算系统100可以以各种方式(例如以硬件和编程的方式)来实施引擎108和110(包括其部件)。用于引擎108和引擎110的编程可以采用存储在非瞬时性机器可读存储介质上的处理器可执行指令的形式,并且用于引擎108和引擎110的硬件可以包括用于执行这些指令的处理器。处理器可以采用单处理器或多处理器系统的形式,并且在一些示例中,计算系统100使用相同的计算系统特征或硬件部件(例如,公共处理器或公共存储介质)来实现多个引擎。
在操作中,线性网格访问引擎108可以访问线性网格120和目标几何形状130。线性网格120可以由各种维度的网格单元组成,无论是1D、2D或3D的,以及任何单元类型的,诸如束、三角形、四边形、四面体、金字塔、棱镜/楔形、六面体等。线性网格120的网格单元可以是该网格单元的每个边是一条线(例如,直边)的线性网格单元。目标几何形状130可以是物体的任意几何表示,并且可以采用CAD表示或CAD模型(例如,NURBS或其他B样条表示)的形式。线性网格访问引擎108可以以各种方式访问线性网格120和目标几何形状130,例如通过用户输入或来自CAD应用的选择操作。在一些实施方式中,线性网格120是从目标几何形状130生成的,在这种情况下,线性网格访问引擎108可以自身从目标几何形状130生成线性网格120,并且可以根据任何已知的线性网格化过程来做到如此。
在操作中,曲线网格生成引擎110可以从线性网格120构造针对目标几何形状130的曲线网格140。曲线网格生成引擎110可以通过如下来做到如此:将线性网格120投影到目标几何形状130上以形成投影网格,确定包括在投影网格中的由投影网格中不满足变形准则的变形网格单元组成的变形块,以及从可用成本函数的集合中选择要应用于变形块的成本函数。曲线网格生成引擎110还可以通过如下来构造曲线网格140:基于所选择的成本函数迭代地适应变形块以获得调整后的网格单元,并将曲线网格140形成为调整后的网格单元与投影网格中未被确定为变形块的一部分的部分的组合。
下面将更详细地描述这些和其他基于变形的曲线网格生成特征和技术优点。
图2示出了根据本公开的投影网格的示例生成和变形网格单元的示例确定。使用曲线网格生成引擎110作为所描述的基于变形的曲线网格生成特征的示例实施方式来描述图2的特征,尽管本文也考虑了各种可替代的实施方式。在图2的示例中,曲线网格生成引擎110将线性网格210投影到目标几何形状上以形成投影网格220。投影网格220可以包括无效网格单元或变形的网格单元,并且曲线网格生成引擎110可以通过修复投影网格220中的无效网格单元来生成针对线性网格210(和目标几何形状)的曲线网格。
曲线网格生成引擎110可以以各种方式并通过任何可行的网格投影技术来生成投影网格220,以便将线性网格210投影到目标几何形状上。在一些情况下,线性网格210可以是高阶线性网格,在该高阶线性网格中,线性网格210的网格单元包括线性边中间点处的节点,而不仅仅是端点处的节点。线性网格访问引擎108所访问的线性网格210可以是具有在网格单元边上(例如,在线性网格210中的网格单元的线性边线段的中点处或其他选择的非端点位置处)插入的节点的高阶网格。在一些实施方式中,线性网格访问引擎108或曲线网格生成引擎110可以自身生成高阶线性网格,并且可以通过在线性网格单元的线性边、面或体积上插入节点(例如,高阶拉格朗日(Lagrange)节点)以便形成高阶线性网格来做到如此。在这样的高阶线性网格中,线性网格单元的直边包括沿边自身的一个或多个中间/高阶节点,其然后可以被映射到目标几何形状的弯曲部分。
对于高阶线性网格,曲线网格生成引擎110可以通过将角节点(例如,线性边端点节点)固定并将高阶节点(例如,边中点节点)投影到对应的目标几何形状的CAD曲线、形状或几何结构上,来投影线性网格210以形成投影网格220。如此,投影网格220的每个给定投影网格单元可以分别对应于线性网格210的给定线性网格单元,并且投影网格单元可以具有一个或多个曲线边,其中该曲线边的高阶节点投影到目标几何形状的曲线上。作为这种网格单元投影的示例,图2示出了线性网格210的线性网格单元230,曲线网格生成引擎110可以投影到目标几何形状上以形成对应的投影网格单元,在图2中示出为投影网格单元240。
注意,在图2中所示的此示例中,线性网格210的线性网格单元230是高阶线性网格单元,该高阶线性网格单元包括沿线性边线段的非端点部分的节点。在图2中所示的具体示例中,线性网格单元230包括标记为NC1、NC2、NC3和NC4的四(4)个角节点,标记为NE1、NE2、NE3和NE4的四(4)个高阶边节点,以及标记为NF的一(1)个面节点。边节点NE1、NE2、NE3和NE4可以是高阶节点,这些高阶节点例如插入在线性网格单元230的四(4)条相应的线性边上的中点或任何其他非端点位置处。
在将线性网格单元230投影到目标几何形状上以形成投影网格单元240的过程中,边节点NE1、NE2、NE3和NE4可以由曲线网格生成引擎110投影到目标几何形状的弯曲几何形状上。对于如图2中作为示例所示的投影网格单元240,角节点NC1、NC2、NC3和NC4保持在与线性网格单元230的角节点NC1、NC2、NC3和NC4的位置对应的固定位置中。然而,投影网格单元220的边节点NE2、NE3和NE4已经被投影到目标几何形状的曲线上,并从它们在线性网格单元230中的原始位置发生了位移。特别地,高阶边节点NE2、NE3和NE的位移在图2中通过曲线位移d1、d2和d3示出(其可以在本文更详细描述的网格单元修复中被确定和使用)。因此,曲线网格生成引擎110可以生成投影网格220以映射到由目标几何形状指定的几何曲线。相应地,投影网格220的投影网格单元可以是通过将对应的高阶线性网格单元的高阶节点映射到目标几何形状的曲线上而生成的曲线网格单元。
注意,线性网格210的线性网格单元到目标几何形状上的投影,可以以使得至少一些投影网格单元无效的方式形成投影网格单元。在图2中所示的示例中,投影网格单元240可能是无效的,因为投影网格单元240的至少一个节点不再处于投影网格单元240的边界内。特别地,面节点NF处于投影网格单元240的周边之外。线性网格单元到弯曲几何形状上的投影可能导致这样的无效网格单元,这些无效网格单元在节点顺序和位置方面是倒置的、折叠的或纠缠的。这样的无效网格单元可能影响FEA分析的完整性,导致仿真误差,并降低曲线网格的有用性(有时导致整个曲线网格无效)。因此,为了正确使用曲线网格,可能需要识别和校正曲线网格的无效网格单元。
网格单元的有效性或无效性可以通过各种方式(包括通过变形准则)来指定。如本文所使用的,变形准则可以是曲线网格生成引擎110用于评估网格单元(无论是线性网格单元还是曲线网格单元)的任何准则。因此,无效(也称为变形)网格单元的识别可以由变形准则来控制,变形准则可以被调节或配置为灵活地指定在曲线网格生成过程中要处理和修复的网格单元变形的程度。例如,由曲线网格生成引擎110应用的变形准则可以将每个纠缠或折叠的网格单元(例如,节点位置处于无效顺序或无效位置)识别为变形,但也可以将与对应的线性网格单元的差异超出一定程度的投影(或曲线)网格单元也识别为变形网格单元。
在一些实施方式中,曲线网格生成引擎110可以基于针对网格单元计算的雅可比行列式(Jacobian)应用变形准则。在一些情况下,曲线网格生成引擎110可以计算雅可比行列式作为给定网格单元与不同(例如,理想)网格单元之间的变换矩阵的行列式。曲线网格生成引擎110可以计算雅可比行列式,以用于从线性网格单元到理想单元(例如,理想三角形、四边形、六面体等)的变换,从投影网格单元到理想单元的变换,从曲线网格单元到理想单元的变换,从线性网格单元到投影或曲线网格单元的变换,或者各种其他组合的变换。
为了确定网格(例如,投影网格220)中的变形网格单元,曲线网格生成引擎110可以构建从具有网格单元位置的初始线性网格到具有网格单元位置的曲线网格的映射,其中,d表示空间维度(例如,d=1、2或3)。曲线网格生成引擎110可以构造将给定的网格单元边从初始线性网格dX映射到曲线网格dx的变换矩阵,其也可以称为变形梯度张量F,其中:
从该变形梯度张量F,可以理解FdX=dx。曲线网格生成引擎110可以将该变换F的行列式计算为雅可比行列式(例如,在线性网格单元与曲线网格单元之间)。换句话说,曲线网格生成引擎110可以将雅可比行列式J计算为J=detF。雅可比行列式J也可以理解为曲线网格单元dv的面积(或体积)与对应的线性网格单元dV的面积(或体积)之间的比值。相应地,曲线网格生成引擎110可以替代地或附加地如下计算雅可比行列式J:
通过雅可比行列式J计算,曲线网格生成引擎110可以评估负的雅可比行列式值指示曲线网格单元是折叠的、纠缠的或无效的。如此,曲线网格生成引擎110可以应用将具有负的雅可比行列式J的任何网格单元识别为变形网格单元的变形准则。
通过变形准则(例如,负的雅可比行列式值),曲线网格生成引擎110可以识别投影网格220中表征为变形网格单元的任何曲线网格单元。在这方面,包括变形网格单元的投影网格220可以称为无效网格。曲线网格生成引擎110可以通过修复无效网格(诸如投影网格220)来生成输出曲线网格。由曲线网格生成引擎110执行的网格单元修复可以包括曲线网格生成引擎110对无效网格的变形网格单元进行寻址、修改或调整所要进行的任何计算或步骤。
例如,曲线网格生成引擎110可以处理投影网格220,直到没有曲线网格单元不符合变形准则(例如,使得对于投影网格220的每个网格单元,雅可比行列式J都是正的)为止,或者直到达到任何其他停止准则或收敛状态为止。为了修复变形网格单元,曲线网格生成引擎110可以调整曲线网格单元(例如,投影网格单元240)的节点位置,使得这种曲线网格单元的雅可比行列式不再是负的或不再不满足变形准则。例如,由曲线网格生成引擎110执行的对投影网格单元240的这种处理可以涉及移动面节点NF以及可能的边节点NE1的位置,使得针对投影网格单元240计算的雅可比行列式不再是负的。虽然对于单个曲线网格单元(例如,投影网格单元240)的这种处理和修复似乎比较简单,但是曲线网格生成引擎110可以并行地执行多个曲线网格单元(例如,所有变形网格单元)的节点位置的修复和处理以综合地处理投影网格的划界部分,以形成没有任何变形网格单元的曲线网格。
注意,雅可比行列式J可以有效地表示网格单元变换(例如,从线性网格单元到投影网格单元或其他曲线网格单元)的数值测量。如本文所指出的,负的雅可比行列式值可以指示由于节点位移、折叠、纠缠等导致的无效曲线网格单元。作为另一示例,由曲线网格生成引擎110应用的变形准则可以识别具有超过变形阈值的正的雅可比行列式值的变形网格单元。超过变形阈值可以是与理想雅可比行列式值间的任何指定方差(例如,比值为1的雅可比行列式值)。在一些实施方式中,曲线网格单元的雅可比行列式值与理想值间变化的程度越大,从线性网格单元形成曲线网格单元所需的变换程度越大(反之亦然)。在这种情况下,超过变形阈值的正的雅可比行列式值可以对于指示曲线网格生成过程不能容忍的水平变换、畸变或翘曲。
通过应用包括正的雅可比行列式值的变形阈值的变形准则,曲线网格生成引擎110可以提高生成的曲线网格的质量并减小投影畸变。变形阈值可以根据与理想值间的方差的方向来指定不同的方差,其可以覆盖针对雅可比行列式J的不同比值的实施方式。例如,对于处于0至1(理想值)范围内的正的雅可比行列式值,变形阈值可以指定小于理想值的正的雅可比行列式值的可容忍方差,例如,任何具有等于比理想值低0.5或低更多的值的雅可比行列式被识别为是变形的,在这种情况下,雅可比行列式从[0至0.5)。对于处于1(理想值)至∞范围内的正的雅可比行列式值,变形阈值可以指定大于理想值的正的雅可比行列式值的可容忍方差,例如,任何具有比理想值大24或大更多的值的雅可比行列式被识别为是变形的,在这种情况下,雅可比行列式从25至∞。具有在变形阈值内的正的雅可比行列式的网格单元可以被识别为是有效的。虽然这里给出了一些变形阈值的示例形式,但本文将与理想值间的任何可配置或指定方差视为合适的变形阈值。
通过这种变形准则,曲线网格生成引擎110可以识别和调整具有超过变形阈值的正的雅可比行列式值的这种变形网格单元,以减小投影畸变并提高曲线网格质量。在处理这样的变形网格单元的过程中,曲线网格生成引擎110可以调整曲线网格单元的节点位置以调整其雅可比行列式值,例如,直到曲线网格单元的雅可比行列式值低于或满足变形阈值并且不再由变形准则识别为变形网格单元。
作为本文描述的基于变形的曲线网格生成技术的又一特征,在某些场景中,曲线网格生成引擎110可以使用正则化的雅可比行列式。工业上的有限元网格可以是特别复杂的,并且可以是输入线性网格本身包括缺陷,导致线性网格单元的负的雅可比行列式值的情况。在这种情况下,基于负的雅可比行列式J的变形准则可能不正确地通过或未能识别出与本身包括缺陷的线性网格单元对应的纠缠的(或以其他方式无效的)曲线网格单元。由于无效曲线网格单元和缺陷线性网格单元都可能具有负的雅可比行列式值(例如,当变换成理想单元时),则针对将缺陷线性网格单元变换为无效曲线网格单元而计算的雅可比行列式J可能是正的,并且当曲线网格单元由于缠结、折叠或其他误差而应当被表征为是变形的时,可能不适当地将其识别为是有效的。
曲线网格生成引擎110可以通过识别和寻址输入线性网格包括无效线性网格单元的情况来解决这样的情况。为此,曲线网格生成引擎110可以计算形成线性网格的线性网格单元的雅可比行列式值(例如,计算线性网格120或210的线性网格单元的雅可比行列式)。曲线网格生成引擎110可以通过计算将给定线性网格单元变换为理想单元的变换矩阵的行列式,来确定线性网格210的给定线性网格单元的雅可比行列式。对于具有负的雅可比行列式值的任何线性网格单元,曲线网格生成引擎110可以将负雅可比行列式J替换为正则化雅可比行列式Jr,该正则化雅可比行列式值Jr可以采用应用于具有计算出的负的雅可比行列式值的线性网格单元的正的雅可比行列式值的形式。对于具有正的雅可比行列式值的线性网格单元,正则化雅可比行列式Jr可以被简单理解为(正的)雅可比行列式J,并且在这种情况下,对于有效线性网格单元,Jr=J。如此,对于无效曲线网格单元的雅可比行列式计算,将正则化雅可比行列式Jr使用于无效线性网格单元可能导致确定出无效曲线网格单元的负的雅可比行列式值(并且将该曲线网格单元正确地识别为是变形的)。
曲线网格生成引擎110可以以各种方式确定线性网格单元的正则化雅可比行列式Jr。例如,曲线网格生成引擎110可以为具有雅可比行列式J(确定为负值)的线性网格单元设置如下正则化雅可比行列式Jr:
在此示例中,曲线网格生成引擎110可以设置β为少量的,例如在10-3至10-4之间,使得正则化雅可比行列式在输入线性网格可能包括缺陷和无效线性网格单元的极端条件下是正的。虽然上述示例包括仅一个示例形式的正则化雅可比行列式Jr,但是曲线网格生成引擎110可以针对具有负的雅可比行列式值的任何线性网格单元,用以任何方式确定的任何正则化雅可比行列式Jr(正的)来替换雅可比行列式J(负的)。
如本文所述,曲线网格生成引擎110可以从线性网格和目标几何形状生成投影网格,并且还可以基于任意数量的变形准则来识别投影网格中的变形网格单元。在进一步支持生成曲线网格中,曲线网格生成引擎110可以处理变形网格单元,例如,这样做直到没有根据变形准则被表征为变形的曲线网格单元为止。对无效网格的变形网格单元的处理和调整,可以允许曲线网格生成引擎110针对输入线性网格,修复无效网格,并生成输出曲线网格。
下面参考图3描述根据本公开的处理变形网格单元的示例特征。
图3示出了从针对投影网格而识别的变形块生成调整后的网格单元的示例。在图3的示例中,曲线网格生成引擎110可以处理经由变形准则识别出的变形网格单元,并且通过这样做来支持针对输入线性网格生成有效的曲线网格。特别地,曲线网格生成引擎110可以通过修复投影网格220来做到如此,投影网格220可以是包括通过将线性网格210投影到目标几何形状而导致的变形网格单元的无效网格。在无效网格(例如,投影网格220)中,曲线网格生成引擎110可以执行多次适应迭代以便处理变形网格单元的高阶节点,并且针对本文所提出的基于变形的曲线网格生成技术描述了这种适应迭代的各个方面。
在修复针对无效网格(例如,投影网格220)识别的变形网格单元的过程中,曲线网格生成引擎110不需要处理无效网格的每个曲线网格单元。与处理整个网格(例如,网格的所有网格单元)的传统优化技术相比,本文提出的基于变形的曲线网格生成技术可以支持处理无效网格的网格单元的选定子集以修复变形网格单元。这样做,因为处理较少数量的网格单元需要较少数量的计算(和可能的迭代),本公开的基于变形的曲线网格生成特征可以以提高的性能和速度生成具有有效曲线网格单元的曲线网格。如此,本公开的基于变形的曲线网格生成技术可以改善计算系统执行曲线网格生成的处理速度、内存利用率和效率。
曲线网格生成引擎110可以对其进行处理以修复变形网格单元的网格的选定子集在本文可称为变形块。如此,曲线网格生成引擎110可以确定要对其进行处理以修复变形网格单元的无效网格的变形块。曲线网格生成引擎110所确定的变形块可以包括投影网格中不符合变形准则的变形网格单元,例如,具有负的雅可比行列式值的曲线网格单元和/或具有超过变形阈值(例如,与理想雅可比行列式值的变化超过一定程度)的正的雅可比行列式值的曲线网格单元。
在一些实施方式中,曲线网格生成引擎110还可以包括作为变形块的一部分的非变形曲线网格单元(例如,没有不满足变形准则)。例如,曲线网格生成引擎110所确定的变形块可以包括在距离变形网格单元的阈值距离内的非变形网格单元。作为一个具体示例,曲线网格生成引擎110可以确定无效网格的变形块包括:不满足变形准则的变形网格单元,以及无效网格中为变形网格单元的直接邻单元的周围网格单元(例如,投影网格中与变形网格单元直接相邻、碰触或直接接触的任何网格单元)。本文设想了用于确定变形块的任何其他合适或可配置的距离阈值。
在图3中所示的示例中,曲线网格生成引擎110确定投影网格220的变形块310,例如,为包括针对投影网格220识别的变形网格单元以及投影网格单元中为变形网格单元的直接邻单元的周围网格单元。在确定变形块310的过程中,曲线网格生成引擎110还可以计算包括在变形块310中的网格单元的曲线位移值312。曲线位移值可以由曲线网格生成引擎110计算或确定为数值或向量值(包括方向),该数值或向量值指定曲线网格单元的给定节点与输入线性网格(例如,用于生成投影网格220的线性网格)的线性网格单元的对应节点之间的距离。曲线位移的示例在图2中经由投影网格单元240的位移d1、d2和d3示出,且曲线网格生成引擎110可以确定表示曲线位移d1、d2和d3的曲线位移值。
在图3的示例中,曲线网格生成引擎110可以确定由于从线性网格(例如,线性网格210)投影到目标几何形状上而导致的变形网格单元的边(及其高阶节点)的曲线位移值312。如本文所述,确定变形块310的网格单元的曲线位移值312可以支持变形块310的基于变形的适应。替代盲目地处理变形块310的网格单元,曲线网格生成引擎110可以通过曲线位移值312作为修复变形网格单元过程中的迭代输入,并且这种曲线位移值312可以用作约束(例如,边界条件)或以其他方式指导变形网格单元的处理以便生成满足变形准则的调整后的网格单元。
在处理变形块310的过程中,曲线网格生成引擎110可以应用成本函数(有时称为目标函数或能量函数)。成本函数可以用于对各个网格单元进行数值评估,从而也可以用于对变形块310或整体进行评估,例如,作为各个网格单元的成本函数值的函数。由于成本函数可以数值评估变形块310的网格单元,用于修复投影网格220(尤其是变形块310)的特定成本函数可能极大地影响生成的输出曲线网格的质量和生成输出曲线网格的效率。
本发明的基于变形的曲线网格生成技术可以支持针对变形块的处理的适应成本函数选择,以修复变形网格单元。替代局限于单个固定的成本函数地,曲线网格生成引擎110可以从多个可用成本函数中选择性地识别特定成本函数,以使用其来处理特定无效网格。这种灵活性可以允许曲线网格生成引擎110改变应用的成本函数,以考虑输入线性网格或对应的投影网格的网格特性。在图3的示例中,曲线网格生成引擎110从可用成本函数320集合中选择要应用于处理变形块310中的成本函数。可用成本函数320可以包括任意数量的不同的成本函数,曲线网格生成引擎110可以经由用户输入、作为预定义的默认值、或者以各种其他方式存储、访问、或者配置这些成本函数。
由曲线网格生成引擎110使用的可用成本函数320的成本函数可以彼此唯一。可用成本函数320中的不同成本函数可以优先考虑网格修复过程的各具体方面。可用成本函数320可以权重的示例方面包括最小化边、面积或体积的畸变(在处理后的曲线网格与输入线性网格之间)、对处理后的网格单元的有效性保证(例如,保证每个网格单元的雅可比行列式J是正的)、强制双射映射使得直线化曲线网格将返回有效的线性网格等。作为示例,曲线网格生成引擎110可以配置可用成本函数320中的特定成本函数,其测量(例如,可用于减小或最小化)长度、面积和体积的畸变的多凸组合、正则化雅可比行列式Jr上的对数障碍约束、以及双射畸变(例如,相对于将曲线网格逆映射到线性网格的畸变减小)。
曲线网格生成引擎110可以配置为可用成本函数320中的一个成本函数的变换矩阵/变形梯度张量F的这样的成本函数的示例实施方式如下:
在本示例中,μ1、μ2和μ3可以是经由调节或用户规范可配置或调整的加权参数。术语可以用作形状的畸变最小值,术语可以用作双射畸变最小值,而术语μ3((Jr-1)2+logJr)2可以用作对数障碍来保证正的雅可比行列式值。在不能保证单射映射的情况下,该示例成本函数失败,但是它仍可以(例如,通过使用正则化雅可比行列式Jr)将无效线性网格作为起点。虽然以上示例成本函数仅是本公开的基于变形的曲线网格生成技术所支持的成本函数的一个具体示例,但在本文设想了各种其他成本函数,包括具有不同权重值或函数参数值的其他成本函数,或者考虑到无效曲线网格单元的处理的任何数量的附加的或可替代的方面的其他成本函数。
作为另一示例,可用成本函数320可以包括允许(至少几个)变形网格单元保留在处理后的曲线网格中的一个或多个成本函数。当将无效网格修复到不可能所有网格单元都具有正的雅可比行列式值的结束状态时,这样的选项可能是优选的,而不是完全失败的成本函数。与上述示例成本函数相比,这样的成本函数可以更加宽松(例如,更不严格),并且曲线网格生成引擎110可以在运行期间动态地选择这样的成本函数。曲线网格生成引擎110可以在可用成本函数320中包括的较不严格的成本函数的一个示例如下:
在没有对数障碍的情况下,即使当至少一些网格单元仍然具有负的雅可比行列式值时,这样的成本函数也可以收敛到输出曲线网格解。有效性保证、性能和网格质量之间的这种权衡可以仅是本公开的选择性成本函数特征可能考虑的各种因素中的一些因素,在曲线网格生成过程中提供了提高的灵活性。曲线网格生成引擎110可以包括可用成本函数320中的任意数量或类型的成本函数,从这些成本函数中选择性地确定要用于处理变形网格单元和变形块的特定成本函数。
曲线网格生成引擎110可以从可用成本函数320中选择成本函数,以将其用于处理变形块310并修复无效曲线网格单元。为了处理变形块310,曲线网格生成引擎110可以迭代地处理变形块310,使得成本函数在整个网格Ω或变形块上被最小化,例如,如下所示:
成本函数的选择可以由成本函数严格度准则330来决定,这可以由曲线网格生成引擎110以各种方式设置。成本函数严格度准则330可以为曲线网格生成引擎110用来评估成本函数的任何评估指标设置阈值,因此可以是基于雅可比行列式值、迭代步长或可以指示优化过程基于给定成本函数收敛到处理后的曲线网格将需要多少迭代、计算或资源的任何其他度量的阈值。
在一些实施方式中,曲线网格生成引擎110可以通过对可用成本函数320的顺序评估,从可用成本函数320的集合中选择成本函数。例如,可以基于严格度、用户排序或根据任何其他度量来对成本函数进行排序,并且曲线网格生成引擎110可以确定基于函数排序来顺序地评估可用成本函数320,直到识别出满足成本函数严格度准则330的特定成本函数为止。因此,在操作中,曲线网格生成引擎110可以识别可用成本函数320的排序,并根据排序来顺序地评估可用成本函数320,直到可用成本函数的给定成本函数满足成本函数严格度准则330为止。然后,曲线网格生成引擎110可以将满足成本函数严格度准则330的给定成本函数确定为所选择的要应用于变形块310的成本函数340。
曲线网格生成引擎110可以逐个地顺序地评估可用成本函数320。对于逐个顺序评估中的特定成本函数,曲线网格生成可以基于特定成本函数来执行适应变形块310的迭代,并基于迭代来确定特定成本函数是否满足成本函数严格度准则330。例如,当来自迭代的该一个或多个雅可比行列式值不超过阈值雅可比行列式值时,当迭代的步长值不小于阈值步长值时,或两者的组合时,可以满足成本函数严格度准则330。如此,曲线网格生成引擎110可以根据针对从迭代生成的适应后的网格单元计算的一个或多个雅可比行列式值、针对迭代计算的步长值、或两者的组合,确定特定成本函数是否满足成本函数严格度准则330。
相应地,曲线网格生成引擎110可以从可用成本函数320中选择成本函数。在运行期间,可以动态执行成本函数选择,允许曲线网格生成引擎110基于投影网格、输入线性网格、优化过程收敛预测、雅可比行列式值等来灵活地适应成本函数的使用。如图3中所见,曲线网格生成引擎110确定要应用于变形块310的选择的成本函数340。然后,曲线网格生成引擎110可以基于选择的成本函数340来迭代地适应变形块310,以获得调整后的网格单元350。
曲线网格生成引擎110可以应用任何类型的优化或处理技术以将针对变形块310或曲线网格选择的成本函数340最小化。在一些情况下,曲线网格生成引擎110可以利用基于导数或切线的优化过程来在修复过程中调整曲线网格单元的节点。在使用有限元对选择的成本函数340进行离散化的变分框架中,曲线网格生成引擎110可以利用关于满足边界条件或其他约束的虚拟位移和定向位移的方向导数。在一些实施方式中,曲线网格生成引擎110利用第一皮奥拉-基尔霍夫(Piola-Kirchoff)应力张量和四阶海塞(Hessian)张量(成本函数导数)。通过伽辽金(Galerkin)技术,线性网格的初始域和曲线网格的弯曲域可以表示为等参有限元函数,该等参有限元函数包括高阶网格中的多个节点以及用于网格单元的相关联基函数。然后,曲线网格生成引擎110可以表示选择的成本函数340的第一导数和第二导数的离散系统,曲线网格生成引擎110可以通过其获得残差向量和切线刚度矩阵。然后,这些量可以由曲线网格生成引擎110使用任意正交方案在单元级别进行积分,然后(例如,并行地)组装成全局稀疏线性系统和残差向量。
由于曲线网格生成引擎110因此能够支持计算所选择的成本函数340的第一导数和第二导数,因此曲线网格生成引擎110可以利用任意数量的优化器来支持变形块的处理。作为一个示例,曲线网格生成引擎110可以采用二次线搜索技术来实施牛顿优化器。通过使用正则化雅可比行列式Jr,曲线网格生成引擎110可以保证在适应迭代期间切线刚度矩阵永远不会变为不定矩阵。在一些实施方式中,曲线网格生成引擎110可以应用丘拉斯基(Cholesky)分解来求解稀疏线性系统,尽管可以遵循Hessian滤波技术来这样做以数值地保证正的确定性。
在本文描述的任一种方式中,曲线网格生成引擎110可以通过选择的成本函数340来处理变形块310。优化过程(例如,经由牛顿优化器)可能需要根据选择的成本函数340进行迭代处理和评估,并且由于曲线网格生成引擎110可以执行多次适应迭代以生成调整后的网格单元350。作为一个示例,曲线网格生成引擎110可以实施以下例程以支持和执行包括无效网格单元的曲线网格(例如,投影网格220)的适应迭代:
算法1基于变形的全局优化例程
在此示例中,输入网格M可以是由3D网格单元组成的曲线网格,诸如包括被识别为变形的网格单元的投影网格220。
上述示例优化例程可以包括对高阶的变形网格单元(例如,3D体积网格单元)的变形块的提取。然后,可以对网格的1D曲线网格和周围的2D表面网格执行分层提取。可以对1D曲线网格(例如,网格单元边)执行曲线位移值的计算,并且这样的位移可以由将输入线性网格投影到目标几何形状上来产生。然后,将计算出的曲线位移值作为输入(例如,约束输入)提供给2D表面网格的局部优化例程。在处理2D表面网格单元(例如,修复输入网格的表面上的任何变形的2D网格单元)时,优化例程可以利用修复后的2D表面网格单元作为约束(例如,不能改变的固定边界条件)来处理3D网格单元。
如此,曲线网格生成引擎110可以实施或提供一种框架,在该框架中,可以处理、修复和调整输入网格的多个维度,以修复变形网格单元。2D表面网格修复可以形成用于处理3D体积单元的修复的约束。在生成调整后的网格单元350的过程中,曲线网格生成引擎110可以因此例如经由本文所述的任何优化和处理技术,基于成本函数,确定调整后的网格单元350的调整后的表面网格单元。然后,曲线网格生成引擎110可以使用调整后的表面网格单元作为用于确定调整后的体积网格单元的固定几何单元,确定调整后的网格单元350中的调整后的体积网格单元。
曲线网格生成引擎110可以实施的优化例程示例如下:
算法2使用线搜索的局部牛顿优化例程
在此示例中,用于计算迭代步长的线搜索(Linesearch)算法可以是任何可用的线搜索例程,曲线网格生成引擎110在经由成本函数严格度准则330来评估成本函数时,也可以利用该算法来确定迭代步长。
在本文描述的任一种方式中,曲线网格生成引擎110可以迭代地适应曲线网格的变形块310以生成调整后的网格单元350。调整后的网格单元可以包括,通过调整变形网格单元的高阶节点的节点位置使得调整后的网格单元350不再不满足变形准则(至少部分取决于所选择的成本函数340)而生成的修复后的网格单元。因此,调整后的网格单元350可以是投影网格220的变形网格单元的修复版本,并且调整后的网格单元350可以根据变形准则而被解缠或调整为现在是有效的网格单元(例如,具有在距离理想雅可比行列式值的变形阈值内的正的雅可比行列式值)。然后,曲线网格生成引擎110可以将输出曲线网格形成为调整后的网格单元350与投影网格220中未被确定为变形块的一部分的部分的组合。由曲线网格生成引擎110生成的该输出曲线网格可被理解为投影网格220的修复版本或线性网格210的高阶曲线网格,而没有(或具有减少数量的)变形网格单元。
虽然本文已经通过各种图所呈现的说明性示例描述了许多基于变形的曲线网格生成特征,但线性网格访问引擎108或曲线网格生成引擎110可以实施本文描述的基于变形的曲线网格生成技术的任意组合。
图4示出了系统可以实施以支持基于变形的曲线网格生成的逻辑400的示例。例如,计算系统100可以将逻辑400实施为硬件、存储在机器可读介质上的可执行指令或两者的组合。计算系统100可以经由线性网格访问引擎108和曲线网格生成引擎110来实施逻辑400,计算系统100可以通过线性网格访问引擎108和曲线网格生成引擎110将逻辑400执行或实行为提供本文呈现的基于变形的曲线网格生成特征的任意组合的方法。下面以使用线性网格访问引擎108和曲线网格生成引擎110为示例对逻辑400进行描述。然而,由计算系统执行的各种其他实施方式选项是可能的。
在实施逻辑400时,线性网格访问引擎108可以访问线性网格和目标几何形状(402),以本文描述的任意方式做到如此。在实施逻辑400时,曲线网格生成引擎110可以从线性网格构造针对目标几何形状的曲线网格(404)。曲线网格生成引擎110可以通过如下来做到如此:将线性网格投影到目标几何形状上以形成投影网格(406),确定包括在投影网格中的由投影网格中不满足变形准则的变形网格单元组成的变形块(408),以及从可用成本函数的集合中选择要应用于变形块的成本函数(410)。曲线网格生成引擎110还可以通过如下来做到如此:基于所选择的成本函数迭代地适应变形块以获得调整后的网格单元(412),并将曲线网格形成为调整后的网格单元与投影网格中未被确定为变形块的一部分的部分的组合(414)。
图4中所示的逻辑400提供了一个说明性示例,通过该说明性示例计算系统100可以支持根据本公开的基于变形的曲线网格生成。在本文设想了逻辑400中的附加的或可替代的步骤,包括根据在本文描述的用于线性网格访问引擎108、曲线网格生成引擎110或它们的任何组合的各种特征中的任何特征的步骤。
图5示出了支持基于变形的曲线网格生成的计算系统500的示例。计算系统500可以包括处理器510,处理器510可以采用单个或多个处理器的形式。(一个或多个)处理器510可以包括中央处理单元(Central Processing Unit,CPU)、微处理器或适用于执行存储在机器可读介质上的指令的任何硬件设备。计算系统500可以包括机器可读介质520。机器可读介质520可以采取存储可执行指令(诸如图5中所示的线性网格访问指令522和曲线网格生成指令524)的任何非瞬时性电子、磁性、光学或其他物理存储设备的形式。如此,机器可读介质520可以是例如随机存取存储器(Random Access Memory,RAM)(例如动态RAM(Dynamic RAM,DRAM))、闪存、自旋转移转矩存储器、电可擦可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、存储驱动器、以及光盘等。
计算系统500可以通过处理器510执行存储在机器可读介质520上的指令。执行指令(例如,线性网格访问指令522和/或曲线网格生成指令524)可以使得计算系统500执行本文描述的基于变形的曲线网格生成技术的任何方面,包括根据线性网格访问引擎108、曲线网格生成引擎110或两者的组合的特征中的任何特征。
例如,由处理器510执行线性网格访问指令522可以导致计算系统500访问线性网格和目标几何形状。由处理器510执行曲线网格生成指令524可以导致计算系统500从线性网格构造针对目标几何形状的曲线网格。针对目标几何形状的曲线网格的构造可以包括:将线性网格投影到目标几何形状上以形成投影网格;确定投影网格中包括的变形块,该变形块由投影网格中不满足变形准则的变形网格单元组成;从可用成本函数的集合中选择要应用于变形块的成本函数;基于所选择的成本函数,迭代地适应变形块,以获得调整后的网格单元;以及将曲线网格形成为调整后的网格单元与投影网格中未被确定为变形块的一部分的部分的组合。
可以经由线性网格访问指令522、曲线网格生成指令524或两者的组合来实施本文描述的任何附加的或可替代的基于变形的曲线网格生成特征。
以上描述的系统、方法、设备和逻辑,包括线性网格访问引擎108和曲线网格生成引擎110,可以在存储在机器可读介质上的硬件、逻辑、电路和可执行指令的许多不同组合中以许多不同的方式实施。例如,线性网格访问引擎108、曲线网格生成引擎110或它们的组合,可以包括控制器、微处理器或专用集成电路(Application Specific IntegratedCircuit,ASIC)中的电路,或者可以用组合在单个集成电路上或分布在多个集成电路中的离散逻辑或部件或其他类型的模拟或数字电路的组合来实施。产品,例如计算机程序产品,可以包括存储介质和存储在该介质上的机器可读指令,该机器可读指令在终端、计算机系统或其他设备中执行时,使得设备执行根据以上描述中的任何描述的操作,包括根据线性网格访问引擎108、曲线网格生成引擎110或它们的组合的任何特征的操作。
本文描述的系统、设备和引擎(包括线性网格访问引擎108和曲线网格生成引擎110)的处理能力可以分布在多个系统部件当中,例如分布在多个处理器和存储器(可选地包括多个分布式处理系统或云/网络元件)当中。参数、数据库和其他数据结构可以被分开存储和管理,可以被合并到单个存储器或数据库中,可以以许多不同的方式在逻辑上和物理上被组织,并且可以以许多方式被实施,包括例如链接列表、哈希表或隐式存储机制等的数据结构。程序可以是单个程序的部分(例如,子例程)、单独的程序,跨若干存储器和处理器分布、或者以许多不同的方式实施,例如实施为库(例如,共享库)。
虽然上面已经描述了各种示例,但是更多的实施方式是可能的。
Claims (15)
1.一种方法,包括:
由计算系统(100、500):
访问(402)线性网格(120、210)和目标几何形状(130),其中,所述线性网格(120、
210)由具有线性边的网格单元组成;
从所述线性网格(120、210)构造(404)针对所述目标几何形状(130)的曲线网格(140),包括通过:
将所述线性网格(120、210)投影(406)到所述目标几何形状(130)上,以形成投影网格(220);
确定(408)包括在所述投影网格(220)中的变形块,所述变形块由所述投影网格中不满足变形准则的变形网格单元组成;
从可用成本函数(320)的集合中选择(410)要应用于所述变形块的成本函数(340);
基于所选择的所述成本函数(340),迭代地适应(412)所述变形块,以获得调整后的网格单元(350);以及
将所述曲线网格(140)形成(414)为所述调整后的网格单元(350)与所述投影网格(220)中未被确定为所述变形块的一部分的部分的组合。
2.根据权利要求1所述的方法,其中,确定所述变形块包括:确定由于将所述线性网格(120、210)投影到所述目标几何形状(130)上而导致的所述变形网格单元的边的曲线位移值(312);并且
其中,迭代地适应所述变形块包括:应用所述曲线位移值(312)作为所执行的迭代的约束,以获得所述调整后的网格单元(350)。
3.根据权利要求1或2所述的方法,包括:确定所述变形块包括:
所述变形网格单元;以及
所述投影网格中为所述变形网格单元的直接邻单元的周围网格单元。
4.根据权利要求1至3中任一项所述的方法,其中,从所述可用成本函数(320)的集合中选择所述成本函数(340)包括:
识别所述可用成本函数(320)的排序;
根据所述排序,顺序地评估所述可用成本函数(320),直到所述可用成本函数中的给定成本函数满足成本函数严格度准则(330);以及
将满足所述成本函数严格度准则(330)的所述给定成本函数确定为所选择的要应用于所述变形块的所述成本函数(340)。
5.根据权利要求4所述的方法,其中,所述顺序地评估所述可用成本函数(320)包括,针对所述排序中的特定成本函数:
基于所述特定成本函数,执行适应所述变形块的迭代;以及
基于针对从所述迭代生成的适应后的网格单元计算的一个或多个雅可比行列式值、针对所述迭代计算的步长值、或两者的组合,确定所述特定成本函数是否满足所述成本函数严格度准则(330)。
6.根据权利要求5所述的方法,其中,当来自所述迭代的所述一个或多个雅可比行列式值不超过阈值雅可比行列式值时,当所述迭代的所述步长值不小于阈值步长值时,或当两者的组合时,满足所述成本函数严格度准则(330)。
7.根据权利要求1至6中任一项所述的方法,其中,迭代地适应所述变形块以获得调整后的网格单元(350),包括:
基于所述成本函数,确定所述调整后的网格单元(350)中的调整后的表面网格单元;以及
使用所述调整后的表面网格单元作为用于确定调整后的体积网格单元的固定几何单元,确定所述调整后的网格单元(350)中的所述调整后的体积网格单元。
8.一种系统(100),包括:
线性网格访问引擎(108),其被配置为访问线性网格(120、210)和目标几何形状(130),其中,所述线性网格(120、210)由具有线性边的网格单元组成;以及
曲线网格生成引擎(110),其被配置为从所述线性网格(120、210)构造针对所述目标几何形状(130)的曲线网格(140),包括通过:
将所述线性网格(120、210)投影到所述目标几何形状(130)上,以形成投影网格(220);
确定包括在所述投影网格(220)中的变形块,所述变形块由所述投影网格中不满足变形准则的变形网格单元组成;
从可用成本函数(320)的集合中选择要应用于所述变形块的成本函数(340);
基于所选择的所述成本函数(340),迭代地适应所述变形块,以获得调整后的网格单元(350);以及
将所述曲线网格(140)形成为调整后的网格单元(350)与所述投影网格(220)中未被确定为所述变形块的一部分的部分的组合。
9.根据权利要求8所述的系统(100),其中,所述曲线网格生成引擎(110)被配置为通过如下来确定所述变形块:确定由于将所述线性网格(120、210)投影到所述目标几何形状(130)上而导致的所述变形网格单元的边的曲线位移值(312);并且
其中,所述曲线网格生成引擎(110)被配置为通过如下来迭代地适应所述变形块:应用所述曲线位移值(312)作为所执行的迭代的约束,以获得所述调整后的网格单元(350)。
10.根据权利要求8或9所述的系统(100),其中,所述曲线网格生成引擎(110)被配置为确定所述变形块包括:
所述变形网格单元;以及
所述投影网格中为所述变形网格单元的直接邻单元的周围网格单元。
11.根据权利要求8至10中任一项所述的系统(100),其中,所述曲线网格生成引擎(110)被配置为通过如下来从所述可用成本函数(320)的集合中选择所述成本函数(340):
识别所述可用成本函数(320)的排序;
根据所述排序,顺序地评估所述可用成本函数(320),直到所述可用成本函数中的给定成本函数满足成本函数严格度准则(330);以及
将满足所述成本函数严格度准则(330)的所述给定成本函数确定为所选择的要应用于所述变形块的所述成本函数(340)。
12.根据权利要求11所述的系统,其中,所述曲线网格生成引擎(110)被配置为通过针对所述排序中的特定成本函数如下来顺序地评估所述可用成本函数(320):
基于所述特定成本函数,执行适应所述变形块的迭代;以及
基于针对从所述迭代生成的适应后的网格单元计算的一个或多个雅可比行列式值、针对所述迭代计算的步长值、或两者的组合,确定所述特定成本函数是否满足所述成本函数严格度准则(330)。
13.根据权利要求11所述的系统,其中,当来自所述迭代的所述一个或多个雅可比行列式值不超过阈值雅可比行列式值时,当所述迭代的所述步长值不小于阈值步长值时,或当两者的组合时,满足所述成本函数严格度准则(330)。
14.根据权利要求8至13中任一项所述的系统,其中,所述曲线网格生成引擎(110)被配置为通过如下来迭代地适应所述变形块以获得调整后的网格单元(350):
基于所述成本函数,确定所述调整后的网格单元(350)中的调整后的表面网格单元;以及
使用所述调整后的表面网格单元作为用于确定调整后的体积网格单元的固定几何单元,确定所述调整后的网格单元(350)中的所述调整后的体积网格单元。
15.一种包括指令(522、524)的非瞬时性机器可读介质(520),当所述指令(522、524)被处理器(510)执行时,使得计算系统(500)执行根据权利要求1至7中任一项所述的方法。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2021/037619 WO2022265628A1 (en) | 2021-06-16 | 2021-06-16 | Deformation-based generation of curved meshes |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN117813632A true CN117813632A (zh) | 2024-04-02 |
Family
ID=76845342
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202180101579.9A Pending CN117813632A (zh) | 2021-06-16 | 2021-06-16 | 基于变形的曲线网格生成 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240273849A1 (zh) |
| EP (1) | EP4338133A1 (zh) |
| CN (1) | CN117813632A (zh) |
| WO (1) | WO2022265628A1 (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11775709B2 (en) * | 2018-05-08 | 2023-10-03 | Autodesk, Inc. | Techniques for generating comprehensive information models for automobile designs |
| EP3866107A1 (en) * | 2020-02-14 | 2021-08-18 | Koninklijke Philips N.V. | Model-based image segmentation |
| CN117010093B (zh) * | 2023-10-07 | 2023-12-05 | 中国人民解放军国防科技大学 | 一种汽车造型设计方法及设备 |
| CN118965912B (zh) * | 2024-10-10 | 2025-03-28 | 浙江远算科技有限公司 | 基于几何特征识别的网格节点位置调整方法和设备 |
-
2021
- 2021-06-16 US US18/565,272 patent/US20240273849A1/en active Pending
- 2021-06-16 CN CN202180101579.9A patent/CN117813632A/zh active Pending
- 2021-06-16 WO PCT/US2021/037619 patent/WO2022265628A1/en not_active Ceased
- 2021-06-16 EP EP21739863.5A patent/EP4338133A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP4338133A1 (en) | 2024-03-20 |
| US20240273849A1 (en) | 2024-08-15 |
| WO2022265628A1 (en) | 2022-12-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN117813632A (zh) | 基于变形的曲线网格生成 | |
| US9323869B1 (en) | Mesh-based shape optimization systems and methods | |
| Staten et al. | A comparison of mesh morphing methods for 3 D shape optimization | |
| US11501029B2 (en) | Designing objects using lattice structure optimization | |
| US20070291031A1 (en) | Three dimensional geometric data correction | |
| Schreck et al. | Nonsmooth developable geometry for interactively animating paper crumpling | |
| EP2791841A1 (en) | Relaxed constraint delaunay method for discretizing fractured media | |
| CA2868755A1 (en) | Updating a cad model to reflect global or local shape changes | |
| US11126766B2 (en) | System and method for element quality improvement in 3D quadrilateral-dominant surface meshes | |
| US20210141869A1 (en) | Automated Analysis of Mechanical Designs | |
| CN112347589B (zh) | 空间几何展开方法、装置及电子设备 | |
| CN115115801B (zh) | 简化三角网格模型的方法、装置、设备及可读存储介质 | |
| Shephard et al. | Revisiting the Elimination of the Adverse Effects of Small Model Features in Automatically Generated Meshes. | |
| CN107567641B (zh) | 用于识别复制品的系统和方法 | |
| CN110009742A (zh) | 用于有限元素网格修复的系统和方法 | |
| JP4914004B2 (ja) | 変形した素材に関連する機構をモデリングするためのコンピュータ化された方法、ソフトウェアプログラムおよびシステム | |
| Luo | A finite volume method based on weno reconstruction for compressible flows on hybrid grids | |
| US10984592B2 (en) | Spatial decomposition-based repair of defects in boundary representations | |
| CN110765513B (zh) | 墙龙骨模型和l型顶导梁模型的连接节点放置方法和产品 | |
| CN118525306A (zh) | 用于计算机辅助设计(cad)对象的约束驱动的基于压印的网格生成 | |
| Jüttler et al. | On isogeometric subdivision methods for PDEs on surfaces | |
| WO2024226033A1 (en) | Point-based mesh generation for computer-aided design (cad) objects | |
| CN119623208B (zh) | 用于芯片多物理场仿真的高阶多尺度有限元方法及系统 | |
| CN118862487B (zh) | 基于自适应高斯积分的三维cad模型物性计算方法及系统 | |
| Huang et al. | Mesh Deformation and Adaptive Refinement for Multi-Physics Field |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |