Jerkwin分享 http://blog.sciencenet.cn/u/Jerkwin

博文

取整截断函数及其在PBC中的使用

已有 13893 次阅读 2013-8-17 07:47 |个人分类:数学轮子|系统分类:科研笔记| 取整函数, 周期性边界条件

取整截断函数及其在PBC中的使用
2013-08-13 14:05:39

取整和截断相关的函数,有着各种不同的名称,不同的定义,很容易让人迷惑。它们之间根据具体情况还可以相互转换成不同的写法,更增添了混乱。下面整理FortranC中的相关函数。

函数

Fortran

C

向下取整x

Floor

Floor

向上取整x

Ceiling

Ceil

截断取整[x]

int/aint

Int

四舍五入

nint/anint

Round

/取余

Mod(x,p)=x-int(x/p)*p

 

modulo(x,p)

=x-floor(x/p)*p

x%p

 

绝对值|x|

Abs

Abs

符号

Sign(xy)

 

此外,数学上还会使用如下去整函数
$ frac(x)={x}=x-lfloor x rfloor=mod(x,1) $

以上这些函数组合起来,基本能满足各种需要了。

下面是各个函数的图像,数值可参看附表


由图像与数值可知
$int(x) = [x] = left{^{lfloor x rfloor, x>0}_{lceil x rceil, x<0}right. $
$ nint(x) = left{^{int(x+1/2) = lfloor x+1/2 rfloor, x>0}_{int(x-1/2) =lceil x-1/2 rceil, x<0} right. $

 

周期性边界条件PBC在使用时有两种情况,设盒子长度为L,粒子坐标为x

1  以左下角为坐标原点,坐标$xin [0,L)$,为使粒子处于盒内,须
$x=x-lfloor x/L rfloor L $

2  以中心为原点,坐标$xin [-L/2,L/2)$,常用于计算粒子之间距离,此时又分两种情况

   x满足$x in [0,L) $
$x = left{^{x-L, x>L/2}_{x+L, x<-L/2} right. $
也可写为更紧凑形式:$ x=x-sign(L,x), |x|>L/2 $

   x未必满足$x in [0,L)$,一般情况
$x=x-nint({x over L})L=left{ begin{matrix}
x-[x/L+1/2]L = x-lfloor x/L+1/2 rfloor L, x>0 & \
x-[x/L-1/2]L = x-lfloor x/L-1/2 rfloor L, x<0
end{matrix} right. $

 

另外,若想实现一定时间间隔$Delta t$取样,本可利用$ mod(t, Delta t)=t-lfloor t/Delta t rfloor $实现。但由于取整问题(前面说过),遇到特定时间间隔时就会失效,变通的方法是判断$t$恰好能被$Delta t$整除,即t的小数部分$ {t} $为零。用$ t-nint(t/Delta t)Delta t $$ mod(t+Delta t/2, Delta t)-Delta t/2 $可避免此问题。

参考
http://en.wikipedia.org/wiki/Floor_and_ceiling_functions
http://en.wikipedia.org/wiki/Periodic_boundary_conditions

附表

X

Floor

ceiling

int

nint

int(x+0.5)

int(x-0.5)

-2.00

-2

-2

-2

-2

-1

-2

-1.80

-1

-1

-1.50

-1.20

-1

0

-1

-1.00

-1

-0.90

0

0

-0.80

-0.70

-0.60

-0.50

-0.40

0

0

-0.30

-0.20

-0.10

0.00

0

0.10

1

0.20

0.30

0.40

0.50

1

1

0.60

0.70

0.80

0.90

1.00

1

1

1.10

2

1.20

1.50

2

2

1

1.80

2.00

2

2




https://blog.sciencenet.cn/blog-548663-717442.html

上一篇:坐标轴刻度范围及刻度值的设定
下一篇:分子匹配叠合及两种冰的结构异同
收藏 IP: 72.204.51.*| 热度|

1 罗强

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-22 09:12

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部