跳蛙法(Leapfrog)积分运动方程

前面的欧拉法是一种最基本的积分方法,如果只知道位移对时间的一阶导数(速度)情况,使用欧拉法是比较好的选择,但如果还知道位移对时间的二阶导数(加速度)的话,使用二阶的Runge-Kutta方法,比如跳蛙法,是精度更好的选择。而且在分子模拟中,势能函数是已知的,加速度通常可以由牛顿动力学方程给出,故运动学积分部分一般使用跳蛙法或者Verlet法。 1. 问题 假设已知物体运动的加速度在\(t\)时刻\(y\)位置下的加速度\(a(y,t)\),初始时刻速度\(v(t_0)\),以及初始时刻的位置\(y(t_0)\),求解\(t\)时刻时物体的位置\(y(t)\)。 2.…

Continue Reading

路径再参数化(reparametrization)问题

问题 给定一条由\(N\)个离散的点表示的路径(路径可以在任意维空间),我们希望移动这些点,移动后满足: 路径的总长度不变;路径每个点距离尽可能相等(均匀);路径形状尽量保持不变。 那么该如何移动这些点呢?这就是string method和PCV里面常见的再参数化问题。…

Continue Reading

武汉肺炎随想

有点想写些什么,但也不知道从何处下笔,我也不是什么专业人士,那就想到哪写到哪好了。 冠状病毒 冠状病毒其实是一个很大的分类,是一种正义单链RNA病毒,按照维基百科的说法,其中一些能引起常见的感冒,比如229E和OC43,著名的有SARS病毒,MERS病毒和这次的武汉肺炎病毒。冠状病毒在人类中主要引起呼吸道感染。 我对病毒学了解不多,总以为像以前在生物课上学的那样,复制都是按照中心法则的,像HIV病毒,把RNA逆转录成DNA,再以DNA为模板转录成RNA并翻译到蛋白质。看了资料之后才明白,冠状病毒复制过程不需要DNA参与,它本身可以合成RNA复制酶,以自身RNA为模板复制新的RNA链。 RNA复制酶也很有意思,在不同的病毒中是高度保守的,与真核生物的端粒酶也有亲缘关系。(https://en.wikipedia.org/wiki/RNA-dependent_RNA_polymerase#Distribution)…

Continue Reading

CUDA检测指针所指内容的位置

前一段时间调试多GPU的代码,快被指针问题搞疯。最后发现输入和输出的指针并不在同一个GPU上。查了stackoverflow和文档(https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__UNIFIED.html#group__CUDART__UNIFIED_1gd89830e17d399c064a2f3c3fa8bb4390)才发现,利用cudaPointerAttributes可以很方便地检测指针所指内容在不在host上,在哪个device上。包装一下,代码如下: #include <iostream> template <typename…

Continue Reading

折腾博客

昨天首先搞了hexo,发现markdown还是太为难我这些非专业人士,图文混排不好弄,还是wordpress这种富文本编辑器用起来习惯。索性直接换成了wordpress了。 代码测试 欢迎世界: #include <iostream>…

Continue Reading
Close Menu