首页
统计
关于
Search
1
Win10安装mingw64配置最新版gcc与gfortran环境
610 阅读
2
李芒果空岛-1.20.1-发展记录-05
587 阅读
3
108第一届中国象棋比赛
547 阅读
4
Savitzky-Golay滤波器原理-01
540 阅读
5
史瓦西黑洞最内稳定圆轨道计算
505 阅读
默认分类
技术经验
工作学习
娱乐爱好
闲言碎语
登录
Search
标签搜索
天文
Minecraft
李芒果空岛
空间物理学
macOS
数值计算
非线性最小二乘
typecho
Python
GSL
gcc
迭代法
Fortran
Halo
朗谬尔波
Langmiur
环法自行车赛
短波通信
PTCG
Win10
Washy
累计撰写
76
篇文章
累计收到
1
条评论
首页
栏目
默认分类
技术经验
工作学习
娱乐爱好
闲言碎语
页面
统计
关于
搜索到
76
篇与
的结果
2023-07-17
使用标势推导朗谬尔波
0 准备工作 引入标势$\varphi$和矢势$\mathbf{A}$,有 $$ \mathbf{E} = -\nabla \varphi, \qquad \mathbf{B} = \nabla \times \mathbf{A} $$ 则麦克斯韦方程组可以写为 $$ \nabla^2 \varphi = - \rho / \varepsilon_0, \qquad \nabla^2 \mathbf{A} - \nabla(\nabla \cdot \mathbf{A}) = - \mu_0 \mathbf{J} + \mu_0 \varepsilon_0 \nabla\frac{\partial \varphi}{\partial t} $$ ## 1 求解色散关系 1.1 双流程方程组 对于非磁化等离子体,双流体方程组的电子部分可以写为 $$ \left\{ \begin{split} &\nabla^2 \varphi = - \rho / \varepsilon_0 \\ &\frac{\partial n_e}{\partial t} + \nabla \cdot (n_e \mathbf{u_e}) = 0 \\ &n_e m_e \frac{\partial \mathbf{u_e}}{\partial t} = n_e e \nabla \varphi - \nabla p_e \end{split} \right. \tag{1} $$ 1.2 微扰法和平面波化 微扰法:离子作为正电荷背景,即$n_i = n_0$;设电子数密度由背景量和扰动量组成,即$n_e = n_0 + n_{e1}$。则电荷密度$\rho =-e n_{e1}$。 平面波化:设所有的扰动具有指数项$e^{i(\mathbf{k} \cdot \mathbf{r} - \omega t)}$,即具有平面波的形式,则有$\partial/\partial t = -i\omega$和$\nabla = i\mathbf{k}$。 因此双流体方程中电子部分可以改写为 $$ \left\{ \begin{split} &-k^2 \varphi = \frac{e}{\varepsilon_0} n_{e1} \\ &-i\omega n_{e1} + i n_0 \mathbf{k} \cdot \mathbf{u_e} = 0 \\ &-i\omega n_0 m_e \mathbf{u_e} = i \mathbf{k} n_0 e \varphi - i\mathbf{k} \gamma_e k_B T_e n_{e1} \end{split} \right. \tag{2} $$ 运动速度$\mathbf{u_e}$只考虑波矢$\mathbf{k}$方向的分量。则上述方程组进一步简化为 $$ \left\{ \begin{split} &-k^2 \varphi = \frac{e}{\varepsilon_0} n_{e1} \\ &-\omega n_{e1} + k n_0 u_{e\parallel} = 0 \\ &-\omega n_0 m_e u_{e \parallel} = k n_0 e \varphi - k \gamma_e k_B T_e n_{e1} \end{split} \right. \tag{3} $$ 联立上述方程组第二、第三两个方程,消去$u_{e\parallel}$可得 $$ n_{e1} = \frac{k^2 n_0 e}{k^2 \gamma_e k_B T_e - \omega^2 m_e} \varphi \tag{4} $$ 将上式代入方程组的第一个方程,消去$n_{e1}$和$\varphi$可得朗谬尔波的色散关系为 $$ \omega^2 = \frac{n_0 e^2}{\varepsilon_0 m_e} + \frac{\gamma_e k^2 k_B T_e}{m_e} = \omega_{pe}^2 + \frac{\gamma_e}{2} k^2 v_{the}^2 \tag{5} $$ 2 总结 从上述推导过程可以看出,使用标势推导色散关系相对而言更为简洁,且结论一致。标势的引入,也更有利于将结论推广至弯曲时空。此处,只是一个简单的尝试和复习以前的知识,并无独创之处。
2023年07月17日
170 阅读
0 评论
0 点赞
2023-07-17
关于纸牌游戏的一些思考
0 前言 对纸牌一直以来都有一些特殊的感情,像是纸牌魔术、飞牌特技、纸牌游戏等,都很喜欢。鉴于我家每年过年都有打牌的活动,放着春晚,打着扑克,所以我的打牌能力也还不错。晚上的时候,和几个朋友打了会儿惯蛋,再次激起了我对这个游戏的思考,因此简单记一下。 1 规则介绍 1.1 “跑得快” 这是我们那一种纸牌游戏的叫法,也是我家过年经常玩的纸牌游戏,名称跟其他地方可能有差异。规则通常如下: 游戏人数:3~4人 纸牌数目:一副扑克牌,去除大王、小王、梅花2、黑桃2、方块2和梅花A,还剩下48张牌 单牌大小:2 > A > K > Q > J > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3 对子大小:对A > 对K > ... > 对3 三连大小:三个K > ... > 三个3 炸弹大小:三个A > 四个K > ... > 四个3 摸牌阶段:洗好牌后,然后将牌分成两堆,从处于下面的那堆开始摸牌 出牌阶段: 如果其他人出的牌,自己有更大的牌能管住,则必须出牌管住,如果能管住却跳过不要,被发现直接判负 如果该出单张且下家手牌为一张,在能管住的条件下,必须从最大的牌开始出起 如果自己出的牌,其他人都要不起,则可以随意出牌 自己随意出牌时,若下家手牌只有一张,则必须先出单张以外的牌,如:对子、三连等;如果手里只有单张,则必须从最大的牌开始出起 出牌阶段结束时,如果手牌小于等于2张,则需要出声提示 输赢判断:第一个出完牌的人为赢家;赢家确定后,剩余手牌数最多的为输家;剩余手牌数最多的为多个人时,则都为输家;若剩余手牌数最多的人只有1张牌,则没有输家 失败惩罚:下一局游戏摸牌结束后,输家需要将最大的手牌上贡给赢家;还可以额外增加其他的惩罚内容 出牌规则: 单顺:三人时至少6张,四人时至少5张,且“2”不能参与单顺 双顺:至少2连,如:“33-44”、“33-44-55” 三连:可以带0~2张牌,带的牌可以任意组合,如:“333”、“333-4”、“333-44”、“333-4-5” 炸弹:可以带0或3张牌,带的牌可以任意组合。带2张牌时可以被更大的炸弹带3张牌管住,或者被任意不带牌的炸弹管住。如:“6666-555” < “7777-333”、“6666-555” < “3333” 先手规则:洗牌结束后,赢家的上家负责把牌堆分成两份,赢家第一个摸牌;先手出牌的规则通常从以下方式中选择一个 开局红桃3先出,此后上一把的赢家先出 洗牌结束后将第一张牌亮开,然后分成两堆摸牌,每局抓到亮开牌的人先出 1.2 惯蛋 这是一个比较常规的玩法,网上有很多这种玩法的小游戏和说明,这里就不再介绍。 2 游戏思考 2.1 “跑得快” 这个游戏主要在于出牌时管得住时必须管住,是一个非常“刚猛”的规则,这也是它和其他常见的纸牌游戏最大的区别,你不能故意放对手走而等待“出其不意”。这条规则虽然对自己的牌序有了很大的限制,但学会巧妙利用,也能让局面有利于自己。比如:你手里有一张A,场上的2还没有出,该你出牌时,你可以顶一张Q或者K,逼迫其他人出A或者2,从而将自己的A做大拿下下一轮单牌的牌权;或者你开局出33-44之类的小连对,在对手还没有把连对拆开之前,逼迫他们出更大的连对管住你,我玩的时候,基本每次都会遇到开局33-44顶下来下家的KK-AA。所以善用这条规则,使用合理的出牌方式,逼迫出其他人的大牌且保留自己的反击手段,是制胜的关键。 因为这条规则的存在,使得这个游戏更容易被数学解释,这就意味着它相对其他纸牌游戏更加简单、更容易算计。但常常也会觉得“身不由己”,明明自己有一条单顺可以解决很多单张,却因为上家的一个对子不得不将单顺中的对子打出去,破坏了牌型。这就很有一种,你明知道别人在下套坑你,但你却又不得不主动进套,尽感心酸与无奈。 这个游戏在心理上的博弈非常有限,更加考验你的记牌能力和计算能力。相对而言,这个游戏更容易建立可靠的数学模型。其实,我个人很喜欢这种“直来直往”的游戏方式,要得起就要,要不起就不要。就如同喜欢就是喜欢,不喜欢就是不喜欢,不需要额外的伪装和纠结。只是现实不可能像游戏那么简单,特别是这种规则更加“简单粗暴”的游戏。 2.2 惯蛋 这个游戏需要一定的团队合作能力,需要和对家相互配合以及一定的心理博弈。今天跟朋友玩的时候,因为大家都很熟,所以他们的打牌风格我很熟悉。涉及心理博弈的游戏,最好的局面就是对手的战术和想法你都能猜到,这样你就很容易做出针对性的应对。此外,跟我一队的朋友,我们俩的打牌风格很类似,所以配合起来也更默契。今天打的三局,从积分来看,两局大胜,一局小负。 对我来说,惯蛋最有意思的地方就在于凑同花顺和顺子。在牌不是特别的整齐时,我很喜欢拆炸弹凑同花。相对而言,我不那么喜欢出三连顺,因为三连顺往往能够凑出来两个单顺。然而凑同花顺和顺子的计算力比按部就班的出法大得多,特别是有万能牌的情况下。今天有一局就因为手里对子太多了且有一张万能牌,能凑出来多个顺子而让我思考了很久。 不知道对手性格时,只能按照自己的牌型进行出牌判断;了解对手性格时,还需要思考对手这么出是否有额外的目的,是否应该不惜代价进行阻击,他是在诈唬骗火力还是在准备偷跑;此外,队友的性格也很重要,如果和队友风格差异很大,就很难相互配合了。了解对手的行为比分析自己的牌型更为重要。这也更加符合了现实中的事情,在做判断时,除了考虑自身条件外,还需要考虑竞争对手的心理活动。相对“跑得快”,惯蛋的博弈难度更高,需要根据局面、对手的心理、队友的心理进行综合判断。 3 总结 不管什么游戏吧,是否有博弈,既然是游戏,一起玩的人才最重要,只顾自己的输赢,也未必就会玩的开心。游戏不止输赢,生活也不止输赢,遵循本心,开心快乐最重要。
2023年07月17日
102 阅读
0 评论
0 点赞
2023-07-06
在Docker中安装宝塔面板
0 前言 由于我的电脑是M1芯片Mac,无法直接安装宝塔面板,于是尝试在Docker容器中安装宝塔面板,以便搭建本地博客用于测试。 1 安装教程 1.1 安装Docker 官网:https://www.docker.com/ 安装:前往官网下载对应系统的安装包进行安装 1.2 配置ubuntu环境 打开终端,下载需要的版本,此处以22.04为例(:后为版本号,不指定版本默认下载最新版) docker pull ubuntu:22.04 创建镜像,并进行端口映射 docker run -i -t --name ubuntu22 -p 2020:20 -p 2121:21 -p 8080:80 -p 4430:443 -p 8880:888 -p 8888:8888 ubuntu:22.04 --name: 镜像名称,自定义,此处为ubuntu22 -p: 端口映射,本机端口:镜像端口。至少需要映射80和8888两个端口,前者用于站点访问,后者用于宝塔面板web端访问。 镜像创建完成后,终端自动进入镜像中,以下操作均需要在镜像中进行。 更新apt-get apt-get update 安装sudo apt-get -y install sudo 安装wget apt-get -y install wget 1.3 安装宝塔面板 官网:https://www.bt.cn/new/download.html 使用安装脚本进行安装(不同的系统命令不同,以下为Ubuntu/Deepin安装脚本) wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec 有提示的选择Y即可,等待安装完成 通常情况下,宝塔面板会随机分配一个端口用于WEB面板,随机的端口大概率没有进行端口映射,因此需要将其修改为8888。在容器终端中输入bt 8,输入新的端口号8888即可 bt 8 在本机浏览器中输入localhost:8888(宝塔面板安装成功时提示的内网面板地址,有时候端口号后面还有一些字符)进入WEB面板登录界面,输入账号密码进行登录 进入WEB面板后,选择LNMP极速安装 2 遇到的问题 如果出现MySQL提示安装已完成,但在数据库界面又显示未安装MySQL,可能是内存不足导致的。 解决方案:在WEB面板的软件商店中安装Linux工具箱,安装完成后,点击【设置】-【Swap/虚拟内存】,分配2G左右的Swap,然后重新安装MySQL即可 参考 Docker中安装宝塔的详细教程 docker配置ubuntu环境
2023年07月06日
258 阅读
0 评论
0 点赞
2023-07-05
2023年环法自行车赛公告
路线 总计:3405.6公里 阶段 地形 日期 起点和终点 距离 1 丘陵 周六 07/01/2023 毕尔巴鄂 > 毕尔巴鄂 182 KM 2 丘陵 周日 07/02/2023 维多利亚-加斯特伊兹 > 圣塞巴斯蒂安 209 KM 3 平坦 周一 07/03/2023 阿莫雷比埃塔-埃特克萨诺 > 巴约讷 193.5 KM 4 平坦 周二 07/04/2023 达克斯 > 诺加罗 182 KM 5 山地 周三 07/05/2023 波城 > 拉伦斯 163 KM 6 山地 周四 07/06/2023 塔布 > 科特雷-坎巴斯克 145 KM 7 平坦 周五 07/07/2023 蒙德马桑 > 波尔多 170 KM 8 丘陵 周六 07/08/2023 利布尔纳 > 利摩日 201 KM 9 山地 周日 07/09/2023 圣莱奥纳尔德诺布拉 > 多姆山 182.5 KM - 休息日 周一 07/10/2023 克莱蒙费朗 - 10 丘陵 周二 07/11/2023 武尔卡尼亚 > 伊苏瓦尔 167.5 KM 11 平坦 周三 07/12/2023 克莱蒙费朗 > 穆兰 180 KM 12 丘陵 周四 07/13/2023 罗阿讷 > 博若莱地区贝尔维尔 169 KM 13 山地 周五 07/14/2023 沙拉龙河畔沙蒂永 > 大科隆比尔 138 KM 14 山地 周六 07/15/2023 安纳马斯 > 莫尔济讷 152 KM 15 山地 周日 07/16/2023 太阳门 > 圣热尔韦勃朗峰 179 KM - 休息日 周一 07/17/2023 圣热尔韦勃朗峰 - 16 个人计时赛 周二 07/18/2023 帕西 > 孔布卢 22.4 KM 17 山地 周三 07/19/2023 圣热尔韦勃朗峰 > 高雪维尔 166 KM 18 丘陵 周四 07/20/2023 穆捷 > 布雷斯地区布尔格 185 KM 19 平坦 周五 07/21/2023 蒙塔涅地区穆瓦朗 > 波利尼 173 KM 20 山地 周六 07/22/2023 贝尔福 > 勒马克斯坦费勒灵 133.5 KM 21 平坦 周日 07/23/2023 伊夫林省圣康坦 > 巴黎香榭丽舍大街 115.5 KM 阶段 共分为21个阶段: 8个平坦赛段 4个丘陵赛段 8个山地赛段 4次山顶终点 1次个人计时赛 2个休息日 奖金 车队和车手将获得总计230万欧元的奖金,其中个人总成绩最终获胜者将获得50万欧元的奖金。 参考 https://www.letour.fr/en/overall-route
2023年07月05日
57 阅读
0 评论
0 点赞
2023-06-29
信达HEQ5赤道仪固件升级步骤
0 准备阶段 HEQ5赤道仪 SynScan V4手控器及连接线 EQMOD数据线:用来升级赤道仪电机固件,该数据线一端接入赤道仪手控器端口,一端接入电脑USB端口 Windows电脑 1 手控器固件升级 1.1 程序及文档下载 下载SynScan固件加载程序,当前最新版本3.5 官网:https://inter-static.skywatcher.com/downloads/synscanfirmwareloader_ver35.zip 下载SynScan V4/V5手控器固件,当前最新版本4.39.21 官网:https://inter-static.skywatcher.com/downloads/synscan_ver043921_firmware_release.zip 下载SynScan手控器固件更新使用说明书 官方英文:https://inter-static.skywatcher.com/downloads/instructiononfirmwareupdate_synscanhandcontroller.pdf 中文翻译:https://www.washy.cn/usr/uploads/2023/06/2094330537.pdf 以上内容均来自SkyWatcher官网 -> SUPPORT -> SOFTWARE&FIRMWARE -> SynScan V4/V5 Hand Controller,可自行前往查看。 1.2 更新固件 同时按住手控器的“0”和“8”键,然后插入电源线(最右侧端口) 手控器发出“哔”的一声,表示启动成功。同时手控器屏幕将显示"SynScan Update Ver x.x"。 在PC上打开固件加载程序,勾选【Auto-detect COM Port】,点击【HC.Version】自动连接到手控器的COM端口 固件加载程序成功连接手控器后,将在固件加载器的底部看到版本号 点击【Browse】选择下载的最新版本固件(ssf文件),勾选【Enforce database update】,点击【Update】进行更新。更新完成后,固件加载程序底部将显示一个绿色的“Update Complete”条,如下 2 电机固件升级 2.1 程序及文档下载 下载电机控制器固件加载程序(非Wi-Fi版),当前最新版本1.78 官网:https://inter-static.skywatcher.com/downloads/mcfirmwareloader_178.zip 下载HEQ5 Go-To电机固件,当前最新版本3.39 官网:https://inter-static.skywatcher.com/downloads/mc020_firmware_0339.zip 以上内容均来自SkyWatcher官网 -> SUPPORT -> SOFTWARE&FIRMWARE -> Motor Controllers,可自行前往查看。 2.2 更新固件 使用EQMOD线连接赤道仪和PC,打开赤道仪电源 打开电机控制器固件加载程序,如下图所示 勾选【Auto-detect COM Port】,点击【MC Version】自动连接到赤道仪电机的COM端口 点击【Browse】选择下载的最新版本固件(MCF文件),点击【Update】进行更新。 更新完成后,关闭赤道仪电源。
2023年06月29日
362 阅读
0 评论
0 点赞
2023-06-25
朗谬尔振荡和朗谬尔波
1 朗谬尔(Langmiur)振荡 1.1 限制条件 考虑温度可以忽略不计的非磁化等离子体,对于与电子相关的现象(即高频部分),离子由于质量较大无法及时响应高频振荡,因此可看作不动的正电荷背景。当电子相对离子发生小扰动时,设扰动产生的扰动电场$\mathbf{E_1}$。 下图中红点表示离子,蓝点表示电子。 忽略磁场$\mathbf{B}$的等离子体称为非磁化等离子体,相对地,考虑磁场$\mathbf{B}$的等离子体称为磁化等离子体。 设$n_{e,i}$表示电子/离子数密度,$\mathbf{u_{e,i}}$表示电子/离子速度,$m_{e,i}$表示电子/离子质量,则电荷密度$\rho = e (n_i - n_e)$。 1.2 双流体方程组 由高斯定律可知 $$ \nabla \cdot \mathbf{E_1} = \frac{\rho}{\varepsilon_0} = \frac{e}{\varepsilon_0}(n_i - n_e) \tag{1} $$ 由法拉第电磁感应定律可知 $$ \nabla \times \mathbf{E_1} = - \frac{\partial \mathbf{B}}{\partial t} = 0 \tag{2} $$ 电子和离子的运动需要分开讨论,由于离子作为不动的正电荷背景,此处只考虑电子。由连续性方程可知 $$ \frac{\partial n_e}{\partial t} + \nabla \cdot (n_e \mathbf{u_e}) = 0 \tag{3} $$ 由运动方程可知 $$ n_e m_e \frac{\partial \mathbf{u_e}}{\partial t} = -n_e e(\mathbf{E_1} + \mathbf{u_e} \times \mathbf{B}) = - n_e e \mathbf{E_1} \tag{4} $$ 1.3 微扰法和平面波化 微扰法:离子作为正电荷背景,即$n_i = n_0$;设电子数密度由背景量和扰动量组成,即$n_e = n_0 + n_{e1}$。代入上述方程组,并忽略二阶小项,则方程组可改写为 $$ \left\{ \begin{split} &\nabla \cdot \mathbf{E_1} = -\frac{e}{\varepsilon_0} n_{e1} \\ &\nabla \times \mathbf{E_1} = 0 \\ &\frac{\partial n_{e1}}{\partial t} + n_0 \nabla \cdot \mathbf{u_e} = 0 \\ &m_e \frac{\partial \mathbf{u_e}}{\partial t} = -e\mathbf{E_1} \end{split} \right. \tag{5} $$ 平面波化:设所有的扰动具有指数项$e^{i(\mathbf{k} \cdot \mathbf{r} - \omega t)}$,即具有平面波的形式。利用$\partial/\partial t = -i\omega$和$\nabla = i\mathbf{k}$对上述方程组进行化简 $$ \left\{ \begin{split} &i\mathbf{k} \cdot \mathbf{E_1} = -\frac{e}{\varepsilon_0} n_{e1} \\ &i\mathbf{k} \times \mathbf{E_1} = 0 \\ &-i\omega n_{e1} + i n_0 \mathbf{k} \cdot \mathbf{u_e} = 0 \\ &-i\omega m_e \mathbf{u_e} = -e\mathbf{E_1} \end{split} \right. \tag{6} $$ 由$i\mathbf{k} \times \mathbf{E_1} = 0$可知$\mathbf{k} \parallel \mathbf{E_1}$,运动速度$\mathbf{u_e}$只考虑扰动电场$\mathbf{E_1}$方向的分量。则上述方程组进一步简化为 $$ \left\{ \begin{split} &i k E_1 = -\frac{e}{\varepsilon_0} n_{e1} \\ &i\omega n_{e1} - i n_0 k u_{e\parallel} = 0 \\ &i\omega m_e u_{e\parallel} = e E_{1} \end{split} \right. \tag{7} $$ 由上述方程组的第二和第三式消去$u_{e\parallel}$可得 $$ n_{e1} = - \frac{i k n_0 e}{\omega^2 m_e} \tag{8} $$ 将(8)式代入(7)式第一个方程,消去$E_1$、$n_{e1}$可得 $$ \omega^2 = \frac{n_0 e^2}{\varepsilon_0 m_e} \Rightarrow \omega_{pe} = \sqrt{\frac{n_0 e^2}{\varepsilon_0 m_e}} \tag{9} $$ 其中$\omega_{pe}$表示朗谬尔频率,也叫做(电子)等离子体频率。由群速度$v_g = d \omega/dk = 0$可知,该振荡只存在于振荡产生的位置,不会向外传播。 2 朗谬尔波 2.1 限制条件 当电子温度不为零且其他条件不变时,由于电子的热运动,可以将振荡区域的信息携带至邻近区域,从而使邻近区域也发生振荡。这样,发生在某处的振荡就能传播出去而形成波,这种波称为等离子体波或朗谬尔波$^{[1]}$。 [1] 《等离子体物理学》李定著,P92. 2.2 色散关系 此时,高斯定律、法拉点电磁感应定律和连续性方程的形式不发生改变,运动方程中需要引入热压梯度项$\nabla p_e$,如下 $$ n_e m_e \frac{\partial \mathbf{u_e}}{\partial t} = -n_e e(\mathbf{E_1} + \mathbf{u_e} \times \mathbf{B}) - \nabla p_e = -n_e e \mathbf{E_1} - \nabla p_e \tag{10} $$ 由状态方程$p_e \rho_e^{-\gamma_e} = {\rm consts}$和$p_e = n_e k_B T_e$以及$\rho_e = -e n_e$,可得 $$ \begin{split} &\nabla(p_e \rho_e^{-\gamma_e}) = \rho_e^{-\gamma_e} \nabla p_e + p_e \nabla \rho_e^{-\gamma_e} = \rho_e^{-\gamma_e} \nabla p_e - p_e \gamma_e \rho_e^{-\gamma_e - 1} \nabla \rho_e = 0 \\ \Rightarrow & \nabla p_e = p_e \gamma_e \rho_e^{-1} \nabla \rho_e = \gamma_e k_B T_e \nabla n_{e1} \end{split} \tag{11} $$ 其中$k_B$表示玻尔兹曼常数,$T_e$表示电子温度,$\gamma_e$表示电子比热比(在绝热假设中,$\gamma_e = 3$;在等温假设中,$\gamma_e = 1$)。将上式代入(10)式,则完整的方程组可以写为 $$ \left\{ \begin{split} &\nabla \cdot \mathbf{E_1} = -\frac{e}{\varepsilon_0} n_{e1} \\ &\nabla \times \mathbf{E_1} = 0 \\ &\frac{\partial n_{e1}}{\partial t} + n_0 \nabla \cdot \mathbf{u_e} = 0 \\ &n_e m_e \frac{\partial \mathbf{u_e}}{\partial t} = -n_e e \mathbf{E_1} - \gamma_e k_B T_e \nabla n_{e1} \end{split} \right. \tag{12} $$ 平面波化后,上述方程组改写为 $$ \left\{ \begin{split} &i\mathbf{k} \cdot \mathbf{E_1} = -\frac{e}{\varepsilon_0} n_{e1} \\ &i\mathbf{k} \times \mathbf{E_1} = 0 \\ &-i\omega n_{e1} + i n_0 \mathbf{k} \cdot \mathbf{u_e} = 0 \\ &-i\omega n_0 m_e \mathbf{u_e} = -n_0 e\mathbf{E_1} - i k \gamma_e k_B T_e n_{e1} \end{split} \right. \tag{13} $$ 同样地,运动速度$\mathbf{u_e}$只考虑扰动电场$\mathbf{E_1}$方向的分量,将上述方程组化简为 $$ \left\{ \begin{split} &i k E_1 = -\frac{e}{\varepsilon_0} n_{e1} \\ &i\omega n_{e1} - i n_0 k u_{e\parallel} = 0 \\ &i\omega n_0 m_e u_{e\parallel} = n_0 e E_{1} + i k \gamma_e k_B T_e n_{e1} \end{split} \right. \tag{14} $$ 由上述方程组的第二和第三式消去$u_{e\parallel}$可得 $$ n_{e1} = - \frac{ik n_0 e}{\omega^2 m_e - k^2 \gamma_e k_B T_e} E_1 \tag{15} $$ 将(15)式代入(14)式第一个方程,消去$E_1$、$n_{e1}$可得 $$ \omega^2 = \frac{n_0 e^2}{\varepsilon_0 m_e} + \frac{\gamma_e k^2 k_B T_e}{m_e} = \omega_{pe}^2 + \frac{\gamma_e}{2} k^2 v_{the}^2 \tag{16} $$ 其中$v_{the} = \sqrt{2 k_B T_e / m_e}$表示电子热速度。上式即为朗谬尔波的色散关系,从(16)式可以看出,只有当$\omega > \omega_{pe}$时,朗谬尔波才能传播。
2023年06月25日
283 阅读
0 评论
0 点赞
2023-06-19
“火烧云”
晚上聚餐结束后,在路口看到了非常好看的晚霞。照片远没有亲眼看到的美。
2023年06月19日
263 阅读
0 评论
0 点赞
2023-06-10
ZWO行星相机的选择
购买星特朗8SE之后,尝试了几次目视观星以及手机对着目镜拍摄,拍摄效果不是很好,因此决定购买一款不那么贵的行星相机。作为新手,根据网上数据整理了下ZWO部分行星相机的数据,以便参考。 需求分析 已有主镜为星特朗C8,焦比f/10,口径203mm 拍摄行星,主要目标为月球、木星等 画幅尽量大,以减少需要拼接的次数 ZWO行星相机 以下数据截止至2023年6月。 型号 类别 画幅 分辨率 像素尺寸 量子效率 读出噪声 满阱电荷 帧率 ADC 价格 ASI120MC-S 彩色 1/3 1280*960 3.75 68% 4.0-6.6e 13ke 60 12bit 780 ASI224MC 彩色 1/3 1304*976 3.75 75%-80% 0.8-3.2e 19.2ke 150 12bit 980 ASI662MC 彩色 1/2.8 1920*1080 2.9 91% 0.8e 38.2ke 107.6 12bit 1380 ASI678MC 彩色 1/1.8 3840*2160 2 83% 0.6-2.7e 11.27ke 47.5 12bit 2070 ASI585MC 彩色 1/1.2 3840*2160 2.9 91% 0.8e 47ke 46.9 12bit 2580 ASI290MM 黑白 1/3 1936*1096 2.9 80% 1.0e 14.6ke 170 12bit 1430 ASI432MM 黑白 1.1 1608*1104 9 79% 2.4e 97ke 120 12bit 3320 型号:“MC”为彩色相机,“MM”为黑白相机。 类别:彩色相机可以直接使用,适合入门;黑白相机需要搭配滤镜和滤镜轮使用,拍摄效果更好。 画幅:该参数越大,相机靶面越大,价格越贵。除了月球,其他行星都不需要太大的靶面。因此该参数取决于拍摄目标和预算。 像素尺寸:通常认为像素尺寸$\times$5=最佳合成焦比,最佳合成焦比小于望远镜焦比为欠采样,大于为过采样,相等为合理采样。比如ASI678MC,像素尺寸为2$\rm{\mu m}$,对应的最佳合成焦比为F/10,对C8来说刚好合适。 量子效率:通常认为该参数高的相机灵敏度会比较高。 读出噪声:每次图像读出来所固有的噪声,可以减小但无法消除。该参数越小,图像信噪比越好。 帧率:相机一秒钟能够拍摄的相片张数,以fps为单位。 参考 从入门到进阶,行星摄影详细教程4:如何挑选最合适的行星相机?
2023年06月10日
258 阅读
0 评论
0 点赞
2023-05-29
纵使困顿难行,亦当砥砺奋进
三月份的时候,和一行人骑行爬山,被拉爆了一路。被拉爆的过程中,思考了一些问题,加上最近心中多有烦闷,借这件事谈下自己的感悟。 通常情况下,自行车作为代步工具,速度不会特别快,风阻大多时候是可以忽略不计的。当速度超过20km/h时,风阻的作用就已经可以感受的到,如果此时还是大风天气,风阻的作用就会更加明显。这个时候,有人帮忙破风将会节省很多的体力。 骑行爬山的那次,除了上山的那段路坡非常大以外,路上还有很多的坡度不算太大的长坡。在平路骑行的时候,我可以混迹在大部队的中间位置,享受着前面人破风的福利,以很小的输出功率就可以跟上。但每遇到上坡,就会被迅速拉开距离。大致可以用以下公式来理解 $$ P_t = P_f + P_G + P_l + P_k $$ 其中$P_t$表示总输出功率,$P_f$表示克服风阻所需要的功率,$P_G$表示上坡克服重力所需要的功率,$P_l$表示克服摩擦力等损耗的功率,$P_k$表示动能增加所需要的功率。 假设初始速度为$v_0$,处于坡度为零且无风阻的真空环境,以匀速前行,那么总输出功率等于损耗的功率,而自行车的轮胎所带来的摩擦损耗很小,因此可以用很小的输出功率保持速度$v_0$不变。 假设初始速度为$v_0$,处于坡度为零的路面,以匀速前行,那么总输出功率等于克服风阻的功率和损耗的功率之和,在有人破风的情况下,克服风阻所需要的损耗可以大幅度减小,因此依然可以用很小的输出功率保持速度$v_0$不变。 假设初始速度为$v_0 = 20 \rm{km/h}$,处于坡度为$3%$的路面,匀速上坡,那么总输出功率等于克服风阻的功率、上坡克服重力的功率和损耗的功率之和,我的体重+自行车的质量约为83$\rm{kg}$,可知上坡克服重力所需要的功率约为$135.57 \rm{W}$。对我这个菜腿来说,突然增加这么多的功率,只能勉强维持一会儿,很快就会被甩开。 那天除了有很多长坡,还是一个大风天气,当上坡过程被拉开距离,缺少了破风后,将独自面对所有的风阻,这样的状况显然是更加困难的。最终导致跟大部队的差距越来越大。 有句俗话叫做“福无双至,祸不单行”,生活中往往如此,当你遇到困难的时候,如果因此影响到心态而又无法很好的控制,在坏心态的加持下,将会招来更多的坏事。越是无法从困难中走出,越是会深陷困难的泥沼之中。 那天回来的路上,在一个上坡,我再次被甩在了后面,在绝望之际,有一个人从我后面超了过去,他的速度不是很快且明显还有余力,为了能够赶上前面的人,我强撑着追了上去,直到跟着他一起赶上前面的一个人。这时候,我知道以我的体力无法继续跟在这个人后面蹭风,就转而跟在刚赶上的人后面,他的速度稍微慢一些且体型较大,能挡住更多的风。最后在这个大哥的带领下,骑行了差不多十几公里,终于赶上了等待我们的大部队。当然,能坚持跟在大哥后面蹭风,还是因为中间他看到我跟不上主动放慢速度等了下我。 自这之后,清楚地意识到自己跟他们的差距,我也就没有再和他们一起骑行。与其成为累赘,不如人少一些,慢悠悠的、边骑边看风景。然而,大多时候环境不是我们能够决定的,当处于一个环境中,遇到了巨大的困难,你只有更加的努力、刻苦,才有可能摆脱这些困难。
2023年05月29日
284 阅读
0 评论
0 点赞
2023-05-27
使用Python调用Fortran程序
1 前言 网上关于Python调用Fortran程序的方法通常分为三种:1)基于f2py;2)生成动态链接库;3)生成可执行文件。 其中第1种方法在涉及到“祖传”代码时,通常会出现各种报错;第3种方法在进行数据传递时基本只能通过操作文件的方式,很不方便。 由于涉及Fortran程序时,一般都逃不开“祖传”代码,因此本文将介绍最为稳定可靠的第2种方法。 2 方法详情 2.1 示例代码 新建test01.f90文件,创建子例程sub_test01以及函数func_test01,详细内容如下 subroutine sub_test01(x,y,z) bind(C,name="sub_test01") use iso_c_binding real(c_double), intent(in), value :: x,y real(c_double), intent(out) :: z(2) z(1) = x + x z(2) = y*y end subroutine sub_test01 function func_test01(x,y) result(z) bind(c,name="func_test01") use iso_c_binding real(c_double), intent(in), value :: x,y real(c_double) :: z z = x + y end function func_test01 bind:用于声明外部调用时子例程/函数名称 iso_c_binding:Fortran自带的模组,必须引用 intent:声明变量属性,输入为in,输出为out,即是输入也是输出为inout c_double:变量类型,real对应c_double,integer对应c_int value:输入变量为单个值时,需添加此标记 2.2 生成动态链接库 与正常编译相比增加-shared,生成后缀为.so的文件,如下 gfortran -shared test01.f90 -o test01.so 如果此步骤报错recompile with -fPIC,则在-shared后加上-fPIC。 2.3 使用Python调用 调用sub_test01子例程,需要引用ctypes和numpy,示例代码如下 import ctypes as ct import numpy as np # 加载动态链接库 fortlib = ct.CDLL('test01.so') # 引用sub_test01子例程 f_sub = fortlib.sub_test01 # 声明变量类型 f_sub.argtypes = [ct.c_double, ct.c_double, ct.POINTER(ct.c_double)] # 输入变量赋值 x = ct.c_double(3) y = ct.c_double(4) # 输出变量初始化 z = np.ones(2) z_p = z.ctypes.data_as(ct.POINTER(ct.c_double)) # 调用sub_test01子例程 f_sub(x,y,z_p) print(z) 使用ctypes.CDLL(<so name>)加载动态链接库,其中<so name>为上一节生成的动态链接库名称 子例程的引用名称为上一节bind中name定义的名称 argtypes用于声明变量类型,其中ctypes.POINTER表示指针。当变量为单个值(Fortran代码中value)时,声明为相应类型;当变量为数组(或输出变量,即intent(out))时,声明为指针 ctypes.c_double(<value>),其中<value>为变量的值 打印结果为[6. 16.] 调用func_test01函数,与子例程调用方式基本相同,示例代码如下 import ctypes as ct # 加载动态链接库 fortlib = ct.CDLL('test01.so') # 引用sub_test01子例程 f_sub = fortlib.func_test01 # 声明变量类型 f_sub.argtypes = [ct.c_double, ct.c_double] # 声明结果类型 f_sub.restype = ct.c_double # 输入变量赋值 x = ct.c_double(3) y = ct.c_double(4) # 调用sub_test01子例程 z = f_sub(x,y) print(z) restype声明返回值的类型 打印结果为7.0 参考 python调用fortran的3种形式【f2py,动态链接库,os命令】 How to Call Fortran from Python Using Python as glue
2023年05月27日
379 阅读
0 评论
0 点赞
1
...
4
5
6
...
8