如何将地球分为六个立方体面?
- 构建立方体:
- 在球体内部放置一个立方体,使得立方体的八个角与球体表面相切。
- 球面投影:
- 使用几何投影方法(例如正轴投影或斜轴投影),将地球表面的点投影到立方体的六个面上。
- 投影后,六个面上的网格可以用二维平面网格表示。
- 网格划分:
- 每个立方体面可以进一步划分为等距的小网格(例如正方形或长方形)。
- 六个面组合后覆盖整个地球表面。
- 处理面之间的连接:
- 由于每个面是独立的平面,立方体的边缘和角点需要进行特殊的数值处理以确保连续性。
时间步长是什么
时间步长(Time Step, $\Delta$ t)是数值模拟中每次迭代所跨越的模拟时间长度,通常以秒(s)为单位。
1. 如果一个数值模型以 \Delta t = 1 , \text{s} 的时间步长运行,意味着模型每次迭代模拟地球系统中 1 秒的时间演化。
2. 时间步长越短,每次迭代所描述的物理时间范围越小,为了模拟相同的物理时间(比如 1 小时),需要执行更多的迭代。
FV3 是把立方体投影到球面上还是球面投影到立方体上?
FV3 是把球面投影到立方体上,具体来说是把球面点映射到立方体的六个面上:
- 投影方向:
- 球体表面上的每个点通过正射投影、等面积投影等方法,映射到立方体的六个面上。
- 目的:
- 将复杂的球面计算转化为立方体面上的二维计算,方便网格划分和数值处理。
- 投影结果:
- 立方体的六个面形成覆盖球体表面的规则区域。
- 每个区域上的网格单元近似均匀,减少了球面极点处网格收缩的问题
高阶插值算法解释
FV3 使用高阶插值算法解决立方体面间的连接问题,保证网格单元间的连续性和数值稳定性。以下是高阶插值算法的主要原理和作用:
什么是高阶插值?
- 插值算法 是在已知离散点的情况下,估算中间未知点值的方法。
- 高阶插值 是通过高阶多项式(如三次或更高阶多项式)或更复杂的数值方法来提高插值的精度,减少误差。
高阶插值在 FV3 中的作用
- 面间数据的连续性:
- 立方体的六个面彼此独立,但在边界处必须进行物理量(如速度、温度、湿度等)的交换。
- 高阶插值算法保证边界处的物理量在数值上连续,不会出现明显的跳跃或不稳定。
- 减少数值误差:
- 简单的低阶插值(如线性插值)可能导致边界值不够平滑,影响计算精度。
- 高阶插值方法(如三次样条插值或加权平均插值)能够更精确地拟合边界值,减小误差。
- 能量和守恒性:
- 高阶插值方法可以保证在边界处的能量、动量和质量守恒,满足物理一致性。
具体的高阶插值方法
FV3 中常用以下插值方法:
- 三次样条插值:
- 使用三次多项式来拟合每个网格边界上的数据点,确保插值后的曲线连续且光滑。
- 加权插值:
- 在插值过程中对不同点赋予权重,以优先考虑网格边缘的局部平滑性和守恒性。
- 模仿性插值(Mimetic Interpolation):
- 这种方法直接根据物理守恒方程设计插值公式,保证在插值的同时不破坏原有的动量或质量守恒。
插值的计算复杂性
高阶插值需要更多的计算资源,因为:
- 它需要在每个边界处构建高阶多项式。
- 计算过程中需要考虑网格的几何变形。
- 对于动态网格(如自适应网格),插值过程可能需要实时调整。
1. 网格上的方程离散化
目标:
利用投影生成的立方体网格,对大气的控制方程(偏微分方程组)进行离散化,以便在离散网格上进行数值求解。
主要控制方程:
FV3 求解的是可压缩的欧拉方程组,这些方程描述了大气的质量、动量和能量的守恒。主要包括:
- 动量方程:大气流体的速度变化。
- 质量守恒方程:气体的连续性。
- 能量方程:描述大气中的热力学过程。
离散化方法:
FV3 使用有限体积法对控制方程进行离散化:
- 每个网格单元作为一个控制体,物理量通过网格边界的通量交换。
- 空间离散:基于网格点计算物理量在每个单元内的平均值,使用高阶方法(如五次插值)计算网格边界的通量。
- 时间离散:采用显式或半隐式时间步进方法。
优势:
- 保证质量、动量和能量的守恒。
- 避免数值耗散和非物理性震荡。
2. 计算物理过程
在 FV3 的数值模型中,物理过程包括各种大气现象,如辐射、降水、云形成和湍流。这些过程通过物理参数化方案处理,并与动力学核心进行耦合。
物理过程的主要内容:
- 辐射传输:
- 模拟太阳辐射和地球长波辐射的吸收、反射和散射。
- 云和降水:
- 模拟云水、雨水和冰晶等的生成和沉降。
- 湍流和对流:
- 模拟边界层湍流、地表热通量以及深对流。
- 大气化学和气溶胶(可选):
- 模拟化学物质的传输和反应。
物理过程与动力学核心的耦合:
FV3 使用时间步进方法将物理过程与动力学求解器耦合:
- 动力学核心提供风场和温度场的更新。
- 物理过程利用这些更新的场进行计算(如辐射冷却、云生成)。
- 通过交互,更新后的物理量再次反馈给动力学核心。
3. 水平和垂直方向的求解
水平方向:
- FV3 在立方体网格的六个面上进行水平方向的计算,使用有限体积方法确保通量计算的守恒性。
- 高阶插值用于平滑网格边界和面间过渡,减少数值误差。
垂直方向:
- FV3 使用拉格朗日垂直坐标,将垂直方向的运动描述为随气块移动的参考系,避免了传统方法中需要频繁计算垂直速度的缺点。
- 垂直方向的动力学过程通过半隐式方法求解,以提高计算效率。
4. 非静力效应的处理
FV3 支持非静力动力学,可以在高分辨率模式下模拟精细的大气运动:
- 处理地形影响:非静力模式可以更准确地处理山区的重力波。
- 模拟深对流:适用于描述强对流天气,如雷暴和龙卷风。
5. 时间步进与并行计算
时间步进:
FV3 使用两种主要的时间步进方法:
- 显式时间步进:
- 适合高分辨率模式,计算精确,但需要满足 CFL 条件。
- 半隐式时间步进:
- 适合处理大尺度运动,不受 CFL 条件限制。
并行计算:
FV3 的立方体网格非常适合并行计算:
- 每个面可以分配到不同的处理器,独立计算。
- 网格单元的负载可以动态平衡,支持大规模并行。
- GPU 加速:FV3 也支持 GPU 并行,通过优化核心代码提升计算性能。
6. 数据输出与可视化
输出格式:
FV3 输出的模拟结果通常包括:
- 三维大气状态场(如温度、湿度、风速)。
- 地表变量(如降水量、地表辐射)。
- 时间序列结果用于评估和后处理。
可视化:
模拟结果可以通过地球科学数据可视化工具(如 GrADS、NCAR Command Language)进行后续分析,包括天气图、云层覆盖图等。
总结:立方体网格后的流程
- 方程离散化:在网格上将控制方程离散化,使用有限体积方法保证守恒性。
- 物理过程计算:模拟辐射、降水、湍流等物理现象,与动力学核心耦合。
- 动力学求解:在立方体网格上进行水平和垂直方向的数值求解。
- 时间步进与并行计算:动态模拟大气演化,充分利用并行计算资源。
- 数据输出与分析:输出模拟结果供进一步研究或应用。
FV3 将网格投影、高阶插值和上述过程有机结合,实现了从全球天气预报到区域气候模拟的多尺度高精度计算。
FV3 中有限体积法的应用
1. 网格体积
在 FV3 的立方体网格中:
- 水平网格:每个网格单元是立方体面上的二维网格。
- 垂直方向:每个单元通过多个垂直层划分,形成一系列柱状体积。
- 体积计算:完整网格的体积是水平面积乘以垂直高度。
2. 物理量的平均值
有限体积法的关键是将物理量存储为网格单元内的体积平均值:
$$Q_i = \frac{1}{V_i} \int_{V_i} q , dV$$
其中:
- $Q_i$ 是网格单元 ( i ) 的体积平均物理量。
- $q$ 是连续物理场(如密度、温度)。
- $V_i$ 是网格单元的体积。
3. 通量计算
物理量的变化取决于通过网格单元边界的通量:
$$\frac{d}{dt} Q_i = -\frac{1}{V_i} \sum_{j} F_{ij} A_{ij}$$
其中:
- $F_{ij}$ 是物理量通过网格单元边界 ( j ) 的通量。
- $A_{ij}$ 是边界的面积。
- $V_i$ 是网格单元的体积。
在 FV3 中,通量计算使用高阶插值方法(如五次插值)保证精度和守恒性。
垂直方向的处理
FV3 中的大气垂直方向处理是有限体积法的一个重要部分,但并不是它的全部。垂直方向上的特点包括:
-
拉格朗日坐标:
- 垂直方向使用随气块移动的坐标系统,保持气块的完整性,减少垂直速度的计算复杂性。
- 气块的物理量变化通过垂直边界的通量进行计算。
-
层结构:
- 垂直方向被划分为若干层(通常为几十至上百层),每层的厚度可以随气压、温度等条件动态调整。
-
垂直通量:
- 垂直方向的通量(如水汽、热量)通过层间交换来计算,并对总体积平均值产生贡献。