使用Matlab绘图

4.3版之前,使用了ClawpackMatlab公司(Mathworks,Inc.)用于绘图和可视化模拟结果。为此开发了工具。这些仍在中提供$CLAW/visclaw/src/matlab。这些例程的用户界面是基本上与以前的版本保持不变,尽管有几个新版本已添加功能。

这些图形工具扩展了标准Matlab绘图例程,允许轻松绘制2d和AMRClaw生成的三维自适应细化网格数据及其解决方案二维流形,由单网格Clawpack或AMRClaw生成。在每种情况下,用户都可以很容易地打开或关闭网格线的绘制(以每层为基础),等高线、等值面和AMR补丁边界、立方体和其他图形项目。在3d中,用户可以创建一组自定义切片,然后沿x、y或z方向循环切片。全部可视化假定有限体积数据和单个绘图“面片”使用细胞平均值直接给网格细胞上色。图形插值是在映射到颜色映射时完成的。

Matlab搜索路径

要将Matlab绘图工具与Clawpack一起使用,用户需要首先确保Matlab上有必要的Matlab例程搜索路径。这可以通过显式设置MATLABPATH来完成环境变量。在bash中,这是通过

$export MATLABPATH${CLAW}/vislag/src/matlab

或者,可以将此目录永久添加到Matlab搜索路径使用Matlab“pathtool”命令:

>> 路径工具

创建输出文件

要使用Matlab绘图例程可视化Clawpack输出,首先使用以下命令从示例中生成输出文件:

$make.输出

这将构建适当的Clawpack可执行文件,创建必要的输入文件对于可执行文件,以及最后运行可执行文件以创建输出文件。这些输出文件默认情况下存储在目录“_output”中。

plotcaw命令

一次输出文件,例如“fort.q0000”、“fort.q0001”等,以及已创建相应的fort.t0000或fort.t0001文件用户可以通过输入以下内容之一在Matlab中绘制它们以下命令(取决于输出是否为1,二维或三维)

>> 绘图法1

或:

>> 绘图法2

或:

>> 绘图法3

最初,系统会提示用户运行文件`设置图`_。对于例子:

>>绘图法2plotclaw2绘制clawpack或amrclaw的2d结果执行setplot2(默认值=yes)?

setplot文件在基本工作空间中设置所需的各种参数创建绘图(有关此文件的详细信息,请参阅下文)。在此提示下输入[enter]将运行文件。

连续点击[enter]步骤并绘制每个堡垒排列整齐。在一维和二维中提示是:

第2帧,时间t=0.2点击<return>进入下一个绘图,或键入k、r、rr、j、i、q或?

在三维中,可以通过输入命令提示符下的“x”、“y”或“z”:

第1帧,时间t=0.0625点击<return>进入下一个绘图,或键入k、r、rr、j、i、x、y、z、q或?

通过输入“?”可以描述绘图提示选项:

第2帧,时间t=0.2点击<return>进入下一个绘图,或键入k、r、rr、j、i、q或?k——键盘输入。键入任何命令,然后“return”r—重画当前帧,不重新读取数据rr—重新读取当前文件,并重新绘制帧j—跳转到特定帧i——有关参数和解决方案的信息x——在x方向上的切片上循环(仅限于3d)y—沿y方向在切片上循环(仅限3d)z—沿z方向循环切片(仅限3d)q—退出

图形例程创建绘图后,但在用户之前返回到绘图提示,即一个文件后车架被调用。这个文件包含用于设置各种打印属性的用户命令。见下文有关用户可能希望在此文件中包含哪些内容的更多详细信息。

setplot文件

Matlab绘图的属性通过两个主要的用户定义的文件通常位于当前工作中目录。第一个文件是“setplot”文件(例如setplot1.m、setplot2.m或setplot3.m)控制创建绘图之前必须知道的基本绘图属性。这些属性包括

  • 要绘制的q分量(例如rho=1、rhou=2、rhov=3等等)。

  • 要绘制的用户定义数量(例如压力或速度),

  • 要打印的最大帧数

  • 输出文件的位置

  • 一维图或散点图的线型或符号类型。可以为每个AMR级别指定不同的符号或线型。

  • 绘图类型,例如伪彩色图、纹影图或散点图。

  • 映射网格或流形计算的网格映射,

  • 用户定义的数据切片(3d数据)

  • 等值面特性(3d绘图)

典型的setplot文件可能包含以下参数设置:

% -----------------------------------------------
% 文件: 设置图2. ( 全部的 参数  显示)
% -----------------------------------------------
输出目录 = “输出(_O)”;
绘图类型 = 1;                % 创建  -颜色 情节
mq(百万立方米) = 1;                      % 哪一个 成分 属于 q个  情节
用户变量 = 0;            % 设置  1  指定  用户-定义 变量
用户变量文件 = “”;      % 名称 属于 -文件 映射 数据  q个
映射网格 = 0;              % 设置  1 如果 地图2p. 存在 对于 不均匀的 网格
最大帧数 = 1000;            % 最大值  属于 框架   结束
最大级别 = 6;               % 最大值  属于 AMR公司 水平
...

中描述的“键盘”选项的主要用途之一绘图法部分是到允许用户临时更改在setplot文件中设置的打印参数的值。

为了确保定义了所需的变量集,鼓励用户创建并修改中的setplot1.m、setplot2.m或setplot3.m的本地副本‘${CLAW}粘爪/src/matlab’。

要获得关于可以在setplot文件中指定哪些设置类型的更多帮助,输入以下命令:

>> 帮助 设置图

Clawpack中的每个示例都包含一个“setplot”文件,您可以可以浏览以了解可以将哪些内容放入文件中。

后帧文件

“afterframe.m”脚本是控制plot,并在创建plot后调用。以下是通常在后帧文件中设置:

  • 设置轴限制和缩放

  • 添加1d参考溶液(1d图和散点图)

  • 将当前帧打印为png、jpg或其他图形格式文件。

  • 在切片上添加、显示或隐藏轮廓线(2d/3d)

  • 显示或隐藏AMR面片和立方体边框(2d/3d)

  • 修改颜色贴图(2d/3d)

  • 设置颜色轴(2d/3d)

  • 显示或隐藏不同AMR级别上的网格线(2d/3d)

  • 向等值面添加照明(3d)

  • 隐藏或显示等值面(3d)

  • 显示或隐藏切片(3d)

典型的“后帧”文件可能包含以下命令:

% -----------------------------------------------
% 文件: 后车架.
% -----------------------------------------------
([-1 1 -1 1]);      % 设置 这个  限制
方向比([1 1 1]);       % 设置 这个 方面 比率

颜色表(喷气式飞机);

显示补丁边框;       % 显示 大纲 属于 AMR公司 补丁 边界
显示网格线(1:2);     % 显示 网格线  水平 1  2 栅格

简历 = 林斯空间(-1121); %  对于 轮廓 水平
简历(简历 == 0) = [];
绘制轮廓线(简历);   % 添加 轮廓 线   情节

caxis公司([-1 1]);          % 设置 这个 颜色 

shg公司;                    % 带来 图形 窗口  这个 前面

fstr公司 = 框架名称(框架'框架0000'“png”'窗口(_P)');
打印(“-dpng”fstr公司);       % 创建 .png公司 文件 属于 图形.

清楚的 后车架;

添加最后的“clear”语句,以便用户在单步打印时创建后帧文件帧将立即生效。

绘制AMR运行结果时,用户还可以创建'aftergrid.m'文件。此文件将在每个人之后调用绘制数据网格。

鼓励用户浏览可用的“afterframe.m”文件通过每个Clawpack示例,更好地了解可能的功能包含在此文件中。

获取帮助

要获得有关Matlab图形工具中可用主题的帮助,您可以始终发出命令:

>> 帮助 爪形图

在Matlab提示符下。这将显示一个主题列表,您可以获得更多帮助。

故障排除

下面是使用Matlab绘图例程可能会遇到的一些潜在问题。

未找到输出文件

以下错误消息表示未找到输出文件:

点击<return>进入下一个绘图,或键入k、r、rr、j、i、x、y、z、q或?帧2(./fort.t002)不存在***框架2(ascii)不存在***

确保在setplot文件中设置的变量“OutputDir”指向要打印的输出文件的正确位置。第二,仔细检查你真的有堡垒。[t/q]该目录中的XXXX个文件。

未设置MaxFrames

下面的错误消息很可能表示“setplot”脚本未运行包含MaxFrames定义的:

>>绘图爪2plotclaw2绘制clawpack或amrclaw的2d结果执行setplot2(默认值=yes)?未设置MaxFrames参数。。。您可能需要执行setplot2

要纠正此问题,用户应确保setplot文件在其工作目录中的本地副本定义所需的一组变量,并在之前至少运行一次plotclaw命令。

切换示例

图形在很大程度上使用以下变量进行控制设置在Matlab base工作区中。这可能导致不可预测的结果在Clawpack示例之间切换时。

为了说明可能出现的问题,假设一组:

映射网格 = 1;         % 假设 那个 地图2p 文件 存在

例如,在setplot文件中,然后切换到第二个示例,它不是映射网格上的模拟。如果变量未在的setplot文件中将“MappedGrid”显式设置为零第二个示例,Matlab例程将查找网格映射文件在第二个示例中可能找不到“mapc2p.m”。

为了避免这些潜在的变量冲突强烈建议用户输入以下命令:

>> 清楚的 全部的;

在切换示例之前。这将清除的基本工作区所有绘图参数,并避免基础变量设置中的潜在冲突。

还鼓励用户发出命令:

>> 关闭 全部的

在一个示例显式设置打印功能(例如颜色映射)的情况下,或不被后续绘图命令覆盖的轴缩放。