立即注册找回密码

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

手机动态码快速登录

手机号快速注册登录

搜索

图文播报

查看: 1962|回复: 5

[分享] 计算化学领域中有哪些技术可以被称为是当前的黑科技?

[复制链接]
发表于 2024-9-23 21:24 | 显示全部楼层 |阅读模式
回复

使用道具 举报

发表于 2024-9-23 21:24 | 显示全部楼层
个人感觉最惊艳的是PIMD。用经典轨迹就可以模拟原子核的量子效应(可惜decoherence和resonence不靠谱),不管是Fermion还是Boson,考不考虑全同粒子。有兴趣者可以看加拿大滑铁卢大学P. N. Roy、UK的Althorp、Manolopoulos的网站。
在化学中应用的比较火的PIMD的变种RPMD,里边有三级黑科技:
1.精髓是两个近似:bead质量近似和简正模式近似。
2.但是RPMD这东西在微正则系综中不遍历,2009年Mark Tuckerman(Bruce Berne的学生,Parrinello和Michael Klein的博后)提出了微正则系综中应用RPMD的黑科技。
3.做化学反应速率常数计算需要算关联函数,如何找到经典-量子对应?David Manolopoulos大笔一挥,直接猜出一个!后来Althorp一顿验证,越研究越发现这个猜出来的关联函数像是真实的!那一刻简直是Boltzmann、Maxwell、Plank、Schrödinger(Boltzmann猜H-定理和熵公式、Maxwell猜Boltzmann分布、Plank猜黑体辐射定律)灵魂附体!

ABF。Adaptive biasing force,无参数自动计算自由能。

String method。鄂维南院士提出的算法,中国人的骄傲。目前用于enhanced sampling。Collective variable可以很多(Martin Karplus用了大约550个)。

Milestoning。
回复 支持 反对

使用道具 举报

发表于 2024-9-23 21:24 | 显示全部楼层
谢谢邀请。这里专家好多,我离开专业时间已经很长了,就写个科普的吧。另外也欢迎关注微信公众号MadData,讲述机器学习,人工智能和背后疯狂的数据科学家的故事
更新:发现喜欢的人还挺多的,欢迎转载。请注明一下出处好啦。希望有更多的科学家出现,也希望有更多类似D.E.Shaw这样的土豪科学家用黑科技摧枯拉朽地带动科学前进。
欢迎留言,我会将你们知道的更多的细节整合到我的帖子当中去,让这个故事更加真实、丰满和有趣。感谢知友Anony mous提供Anton论文全文,感谢知友王洋提供关于DESRES的更多故事。
-------------------------------------------科普开始------------------------------------------------
黑科技,还是要提D.E.Shaw Research这个奇异的存在。
要讲这个黑科技,我们可能要扯远一点,先讲讲D.E. Shaw这个人是怎么学术赚钱通吃,成为彻底的人赢的



D.E.Shaw是个学霸,是PhD们的偶像:斯坦福大学计算机专业的博士, 30岁不到就进入哥伦比亚大学做教授,专门研究超大规模并行计算。这已经是优秀的学术人生了。
但是Shaw觉得无聊。哥伦比亚大学地处纽约,遍地暴发的对冲基金男各种花天酒地,游嬉于各种model之间,作为一个同样聪明的教授,却只能坐在冷板凳上写计算机model。虽然在科学家眼里,后者甚至还要更性感一些,但是时间长了也……扯远了,总之,Shaw不干了。
于是他1986年放弃了钻牛角尖的教授生涯,进入华尔街著名投行摩根斯坦利做quant trading(可以通俗地理解为用计算机自动炒股、债和外汇)。果然, 呆博士不是搞政治斗争的料子,在摩根斯坦利这种钱多是非多、政治斗争和技术斗争同样激烈的地方,仅仅2年之后他就在政治斗争中失败,被迫离开摩根斯坦利(欢迎quant trading方面的达人来八卦补全这一段故事)。但是这厮本来就不是池中物,同年,他就开办了自己的对冲基金D.E. Shaw & Co. LP.,专注quant trading,利用高速计算机网络和市场瞬间的有效性缺陷来进行高频统计套利。
和今天高频交易人满为患的情况不同:当时计算机很破,内存上兆的就是中型服务器了,计算机语言和组件也比较晦涩,不像今天这么普及和丰富,不会冒出来个12岁少年就能写一个网站编一个游戏,然后对着80后的老头子们说你们不行之类的。因此,能掌握高速网络编程和大型并行计算的人,除了能算弹道和模拟核爆之外,还能成为第一批做高频交易的人,干的事情基本就是无风险套利——利用市场无效性,剪市场的羊毛,赚钱的速度仅仅取决于你能剪多快。
作为专门研究超大规模并行计算的顶级专家的Shaw,率先杀入高频交易,完全是流氓会武术,谁也挡不住,剪羊毛速度世界一流,很快人生进入了新的高峰。到2015年,他的个人净值已经41亿美元(
David Shaw - Forbes),杀入全球财富榜前500.
说了这么多,怎么还没有谈到计算化学?你别走,我现在就要说这事了。
David Shaw大叔40出头财务自由,依照常人的想法,自然可以不再写model,而一头扎进纽约的花天酒地,去约会真的model了。但是,正如网络上著名的牛顿生平文章《牛逼顿》所说:
出乎世俗想象的是,科学其实远比任何娘们儿都风骚,玩科学比玩女人爽得多,得到一个成果所获得的高潮强烈而持久,不仅有快感,更有巨大的自我认同感,远胜于那几秒寒颤之后无边的空虚与落寞。所以陈景润其实是沉溺于美色不能自拔,身体弱架不住高潮过度被爽死了。

Geek的基因在身体深处摇撼Shaw大爷功成名就之后的空虚神经。他一个回马枪杀回了科学世界,脱下西装,露出了Geek的本色:



和屌丝geek Sheldon不一样,这是一个破坏力惊人的土豪geek。Shaw现在再也不用跪舔NIH,NSF的官员,去讨一点可怜的科研经费了。他想干什么就干什么;他觉得什么是前沿什么就是前沿。他拿出大规模并行计算的大砍刀,想找一个最需要计算但现今最不给力的领域一刀砍下去。
这里有个背景:计算化学发展了很多年,都处在有点尴尬的位置,说得直白点——计算机还太弱,计算化学用于实际问题中算不准,精度还不如做实验。因此,无论在化学还是生物领域,做计算化学的不管是教授还是PhD,要么选择和实验的组合作,活在鄙视链的下游,要么躲到角落里小富即安地画圈圈。
因此,Shaw的大砍刀就落到了萎靡的计算化学上:他想制造一台专门用于做计算化学的超级计算机,比现有的超级计算机强大几千倍几万倍。
很多人可能要问,现在超级计算机动辄就是几十万个cpu核心什么的,运算能力很强大啊,为什么还要造计算化学的超级计算机呢?
答案是,一般的计算机是很聪明,但是不适合干计算化学这行。学术一点说,是general purpose computing不能高效地来做分子动力学模拟。
打个比方,现在的电脑就仿佛是个全能的机器人,你可以让他去割麦子,做饭,踢球等等。让他去干很多事情,他什么都能干,干得也比人快,确实也很聪明。这就是所谓的通用计算机(general purpose computing):一个机器,写不同的软件,实现各种功能。
但是在割麦子这件事情上,这个全能机器人的速度很难超越专业的大型联合收割机。因为大型联合收割机虽然笨,但是完全为割麦子而生,因此硬件上量身定制,极度优化。这就是所谓的特种计算机(special purpose computing):专业定制机器,软件也是专门定制的,只实现一个功能,但是凶残而高效。
Shaw就是要造一台计算化学中的“大型联合收割机”。这台收割机,叫做Anton。
它很贵很贵,但这正是Shaw的优势,反正他不泡妞不包二奶,钱花不完。况且,科研人员其实很便宜。
这里有一个好笑又辛酸的事情:和大众的认识恰好相反,在美国,纯理科博士毕业之后大多数都找不到工作,虽然智商大都不低,但是如果想坚持科研,做博士后的薪水只能勉强维持生活。
而David Shaw横空出世,成为了纽约的孟尝君。他招了一群找不到工作的博士——这些人在经济上可以说是纯粹的屌丝——开出了10万美元一年的工资。
10万美元一年是什么概念呢?这就是投资银行21、2岁小分析员的入门工资+奖金,在华尔街上就是底层,外面穿着西装,里面穿的可是开裆裤。但是对于这帮年届三十的科学屌丝来说,这是他们能找到研究岗位工资的2-3倍,是个做梦都想不到的包养价。
于是一时间最顶尖的计算化学、生物物理、电子工程博士趋之若鹜,求David Shaw包养。
从2004年前后开始(请知情人指正),Shaw成立的DE Shaw Research(DESRES)开始正式运营。在David Shaw的精心包养下,30多个失业的博士屌丝们什么也没干,在优雅的环境里,足足读了一年半的论文,搞出了Anton的草图。之后,更多的屌丝加入,全身心专注于Anton的研发。
2007年,比预期还早了快一年,来自五湖四海的屌丝和geek们发布了Anton的第一代。计算化学的最大黑科技诞生了:它比一般的超级计算机快约10,000倍。比最好的超算也快1,000倍。
对的。变态的10,000倍,四个零,四个数量级。
10000倍是什么意思呢?计算化学里面,模拟分子运动轨迹的持续时间的长短是非常重要的。用模拟网球比赛来做类比:以前“超级计算机”算了一个月,我们只能模拟出击球的1秒钟的瞬间,而现在Anton出世,我们同样花一个月,就可以模拟整场球赛中网球的轨迹了。
这是前所未有的超算能力,变态的“大型联合收割机”,等于开了上帝视角啊亲。




从2007年起,D.E. Shaw的团队声名鹊起,用这个收割机每年在国际顶尖的学术杂志《自然》和《科学》上灌水,学术声誉不可阻挡。Anton在手,高枕无忧,仿佛别人在地面用卷尺画地图,他们在天上航拍做地图。现在他们又出了Anton2,继续吊打“过去8年中取得了长足发展的”超级计算机。
也许纯学术派对这种硬拼计算能力的方法表示不屑,但D.E. Shaw和他包养的geek们正用变态的Anton计算机把分子动力学模拟大跨步地推向实用。
有钱就是任性。
以上文字来自知乎
@Zheng Sullivan , 原文链接:
计算化学领域中有哪些技术可以被称为是当前的黑科技? - 知乎用户的回答 (
http://www.zhihu.com/question/30454088/answer/49284633 )

网站:
D. E. Shaw Research
关注微信公众号MadData,二维码连接如下:
http://note.youdao.com/share/?id=0d8ce21aabd965b38400c5125e509fca&type=note
---------------科普结束--------------
关于Anton设计上的一些细节,参见doi:
10.1145/1273440.1250664。 关于Anton为什么能算这么快的一些细节,全部在下面这几段话里,总结一下就是:整个MD simulation的硬件计算被拆分成了硬件直接计算和可编程计算两部分,两者都是硬件实现的,速度比软件实现要快万倍。各个node之间通讯也是特殊设计的超高速低延迟网络,不是一般的网络。
To simulate a millisecond within a couple of months,we must complete a time step every few microseconds, orevery few thousand clock ticks. The sequential dependenceof successive time steps in an MD simulation makes speculationacross time steps extremely difficult. Fortunately,specialization offers unique opportunities to accelerate anindividual time step using a combination of architecturalfeatures that reduce both computational latency and communicationlatency.
For example, we reduced computational latencyby designing:

  • Dedicated, specialized hardware datapaths and controllogic to evaluate the range-limited interactions and toperform charge spreading and force interpolation. Inaddition to packing much more computational logicon a chip than is typical of general-purpose architectures,these pipelines use customized precision foreach operation.
  • Specialized, yet programmable, processors to computebond forces and the FFT and to perform integration.The instruction set architecture (ISA) of these processorsis tailored to the calculations they perform. Theirprogrammability provides flexibility to accommodatevarious force fields and integration algorithms.
  • Dedicated support in the memory subsystem to accumulateforces for each particle.
We reduced communication latency by designing:

  • A low-latency, high-bandwidth network, both within anASIC and between ASICs, that includes specializedrouting support for common MD communication patternssuch as multicast and compressed transfers ofsparse data structures.
  • Support for choreographed “push”-based communication.Producers send results to consumers without theconsumers having to request the data beforehand.
  • A set of autonomous direct memory access (DMA)engines that offload communication tasks from thecomputational units, allowing greater overlap of communicationand computation.l Admission control features that prioritize packets carryingcertain algorithm-specific data types.
回复 支持 反对

使用道具 举报

发表于 2024-9-23 21:25 | 显示全部楼层
最近对量子蒙特卡洛(QMC)感兴趣正在学习,谈不上黑科技,不过很惊艳。想在这里做个笔记。先上文献,以下内容基本是照着下面这篇综述搬运的:
Reviews of Modern Physics Vol. 73, Pg. 33 Quantum Monte Carlo Simulations of Solids
目前来说,QMC主要分成两种方法: Variational Monte Carlo (VMC)和Diffusion Monte Carlo (DMC),其中VMC比较简单,也比较直接,但是效果并不好。真正在想法上比较有意思的是DMC,精度比较高的也是DMC。但是DMC需要用固定节点近似(fixed nodes approximation),而这个固定节点的位置往往用VMC来求。所以真正用的时候一般是VMC/DMC联用。下面我们直接从DMC的基本想法开始。
首先描述一下问题,所有电子结构方法的根本目的在于求解定态薛定谔方程,也就是如下哈密顿量的本征函数:
                                                                                                                 (1)
                                                                                           (2)
其中,方程2包含电子动能项和势能项,势能项取决于各个电子的空间坐标(一个3N维的矢量):,波函数也是电子坐标的函数
我们暂时把注意力从定态薛定谔方程中拿开,看一看含时薛定谔方程:
                                                                                                               (3)
如果我们把这个方程中的时间从实数替换成虚数(),就可以拿到所谓的Imaginary-time Schrodinger Equation:
                                                                                                              (4)
方程(3)的解我们很熟悉,就是一连串本征函数的线性组合,每个本征函数项前面有一个和能量相关的相因子(),那么在方程(4)中,把这些项因子中的时间替换成虚数,我们可以发现这些相因子都对应着一个指数项()。本征函数的能量越高,在方程(4)的解中随时间衰减的越快(或者增长的越慢,如果能量是负数的话)。这就意味着,我们从一个随机的波函数出发,用方程(4)作动力方程去evolve这个,那么演化的最终结果是,只要中包含基态的成分,那么能量最低的基态在整个波函数中所占的比重将越来越大,在的极限下,将完全收敛到基态上。当然,如果只看方程(4),基态作为领头项,本身也有一个指数因子(),这使得波函数整体可能会坍缩到0或者变成无穷大。在实际操作中我们显然不希望和这样的函数打交道,所以我们稍微修正一下(4):
                                                                                                  (5)
那么这个方程的解是:
                                                                                            (6)
其中是一个我们猜测的基态能量。可以看出来,如果我们低估,那么波函数整体会趋向0,如果我们高估,那么波函数会趋向。当,波函数会完美地收敛到基态上。所以,在实际操作中,我们从和一个猜测的出发,然后用方程(5)演进。根据的归一化条件不断调整,最后拿到一个finite的基态波函数和基态能量。DMC的基本做法,就是用Monte Carlo (MC)去求解方程(5)描述的动力过程。
接下来我们重点看方程(5),我们暂时先假定波函数是实函数(这个对于只含静电项的非相对论哈密顿量都是成立的)且没有节点结构,也就是说这个波函数没有正负相位变化,处处为正。那么我们可以把想象成一个密度函数(注意不是真实的电子密度,真实的电子密度是),代表着某种粒子在3N维空间中的分布密度。如果我们暂时不考虑方程(2)中的势能项和那么方程(5)可以写成:
                                                                                                (7)
熟悉的人可以看出,就是一个典型的自由扩散方程(diffusion equation)。也就是说,如果某种粒子的分布密度是,这种粒子在空间中做扩散系数为1/2的布朗运动。那么规定该粒子分布密度随时间的演化的diffusion equation在数学上和Imaginary-time Schrodinger Equation是完全一样的!DMC名字中的diffusion就来源于此。也就说,要求解方程(7),我们只需要在相空间里按规定的密度去洒一堆sample point(),然后让这些点按照布朗运动的方式做随机运动,我们就能拿到
具体而言,对于每一个sample point,假定其初始位置在,经过时间后,其出现在另一点的概率实际上是方程(7)的格林函数G,就是一个高斯分布:
                                                           (8)
所以在真正做MC的时候,对每一个sample point,只需要按照(8)中的概率去随机产生下一个时间点的位置就可以了。
那么,当加上之后,规定单个sample point运动的格林函数变得更加复杂,在长时间尺度下无法精确求解。不过在很短的时间间隔下,可以很好地近似成如下形式(推导参见文献):
(9)
和(8)比起来,可以看出多了一个weighing factor:
                                                                   (10)
注意方程(8)中扩散方程的格林函数是满足归一化的,也就是说,一个sample point在扩散完之后尽管可能出现在不同的位置,不过总体上仍然还是一个sample point,粒子数是守恒的。而方程(9)中的格林函数则非如此。也就意味着按照(9),粒子数是可能随时间变化的。这就引出了DMC中sample point的空间移动外的另一种MC move:粒子数的随机涨落。具体来说,如果P<1,则按照(1-P)的概率删除该点,如果P>1,则按照P-1的概率在相同位置插入新的sample point。在这个过程中总的sample point数量不断变化,而我们不断调整的值,使得sample point的总数维持在一个稳定的统计平均值上。这就是整个DMC的过程,可以用以下这张图表示(来源于开头的文献):


从上到下,每一条横线代表一个时间截面,每一个黑点代表一个sample point。可以清晰地看到每一个sample point的移动,生长和死亡过程。在大量的采样下,最终sample point的分布将趋向基态波函数。
这就是DMC的基本思路。注意到我们用了一个很重要的假设,就是波函数没有结点结构。而多数情况下,费米子的基态波函数是有结点的。在这种情况下,的值在每一个结点两侧正负相反。这种有正有负的函数不能简单地对应到扩散方程上。因此对于稍微复杂一点的情况,我们就不能直接使用上述方法。这就是所谓的Fermion sign problem。为解决这个问题,必须使用固定结点近似(fixed-node approximation)。
固定结点近似的大意是说,假定我们知道结点的位置。也就是说,假定我们知道在什么地方。比如说对于一维势井的第一激发态,我们很清楚地知道在x=1/2处有一个结点(如下图a)。


那么我们考虑在0~1/2这个区域内的波函数应该满足什么方程呢?首先当然是薛定谔方程:
(11)
然后是边条件:
(12)
还有结点条件:
(13)
然后我们知道在这里面波函数没有结点。
我们再考虑,如果有一个0~1/2范围内的无限深势井,这个势井内的本征函数应该满足什么方程呢?我们发现和(11)-(13)是完全一样的。完全相同的方程和边值条件意味着完全相同的解。也就是说在0~1/2范围内我们完全可以用DMC解一个一半长的无限深势井,拿到波函数的一半。同时在1/2~1这段如法炮制,拿到另一半。在盒子两边的DMC过程只通过享有共同的能量相互交流。
更一般地,只要我们知道结点信息,我们就可以通过结点把整个3N维空间分割成数个相对独立的子区域,然后在结点上加上一个无限高的能垒。对于每个子区域,我们使用上述DMC过程进行采样,不同子区域之间仅仅通过共同的进行交流。我们选取,使得总的sample point数保持稳定。这就是固定结点近似的做法。当然前提条件是我们必须事先知道准确的结点位置和结构,这往往是不容易的。就像开头提到的,一般而言会先通过VMC确定结点位置。而最终DMC的精度也取决于结点位置的精度。
到了这里DMC的最基本的思路就讲完了,稍微抒一下情。DMC的优雅之处在于它是如此的简单(至少第一眼看上去是如此的简单)。回想一下在各种CI,CC等方法中我们寻找重要的configuration,寻找重要的correlation时是何等地蛋疼,以之相比,在DMC里我们几乎不需要对波函数有非常多的理解,因为不是从HF出发的微扰方法,DMC完全包含了correlation作用。当两个电子靠的过近时,会升高,P会减小,该sample point会被自动删除,所以困扰HF这样的平均场理论和DFT这样的半经验性理论的Coulomb hole的问题不复存在。另外感慨以下波函数的全部信息(比如spin configuration之类)都包含在了结点结构中,可见结点结构是何等的包罗万象!DMC算法极度简单,容易实现,完全不涉及大规模的矩阵运算。不同的sample point和sample region之间仅仅通过交流,没有communication的问题,几乎是完美的并行算法。最后,个人觉得DMC的思路本身就十分优雅。通过量子体系和某些经典力学体系在数学上的相似性而建立联系,从而使得我们处理经典力学的一套方法可以移植到量子体系中来,像Path-integral Monte Carlo这样的算法也颇有这样的神韵。
回复 支持 反对

使用道具 举报

发表于 2024-9-23 21:25 | 显示全部楼层
黑科技?Many Body Theory里面Second Quantization的自动公式推倒和代码生成算不算?就是用计算机软件来生成量子化学代码。
我了解的相关项目有:

  • SMITH3  SMITH 系列软件 from Shiozaki Group  (SMITH是黑客帝国里的角色)
  • Tensor Contraction Engine from Hirata Group (UIUC)
  • 以及我参与的一个Mathematica小项目SeQuant(代码生成功能正在准备中,我太懒了。。。)
这些项目都是科研style代码,非常不容易维护和使用。。。。
回复 支持 反对

使用道具 举报

发表于 2024-9-23 21:26 | 显示全部楼层
谢邀。说一下metadynamics吧。其实metadynamics算不上黑科技,但是符合题主说的“令人目瞪口呆的trick”。
在分子模拟领域,目前最大的瓶颈或许就是sampling efficiency。由于人们感兴趣的化学/生物体系通常有成千上万个自由度,势能面更是复杂得无法形容,因此要达到ergodicity(只有这样,模拟得出的各种统计力学量才有意义)非常困难。解决办法呢?首先是要定义一个或几个自由度为反应坐标(化学家一般用reaction coordinate,物理学家貌似更喜欢说collective variable,一个意思),然后主要关注体系在这一个或几个自由度下的行为,比如可以通过扫描得到势能面在这些自由度上的投影,也可以通过模拟得到系统在这些自由度上的potential of mean force。
这看起来很不错,是吗?可是,这还远远不够...原因就是系综里各能态之间的配分要遵循玻尔兹曼分布。能量越高的状态,能被sample到的概率就以指数降低。你会说系统还有无规则热运动呢。没错,可是室温下一个kT才0.6 kcal/mol,一般的化学反应能垒都在几十kcal/mol量级,构象翻转也要好几个kcal/mol,只靠kT完全带不动啊,需要的时间太长了。为了让广大PhD毕业前能够顺利跑完simulation,很多的enhanced sampling technique于是被发明了出来。最常用的主要有umbrella sampling, replica exchange/parallel tempering, 以及我们的主角--metadynamics。其实另外几种方法也很好用,只不过个人觉得mtd看起来最fancy~
关于mtd的原理,有一个很贴切的比喻:“往坑里填沙子”。设想一个简单的一维体系(手画,见谅...):


在真实情况下(或者说小球开了上帝视角),小球会更倾向于呆在右边那个能量更低的local minimum,但是如果从图上所示的位置开始做一个un-biased MD/MC模拟,在势垒显著大于kT的情况下,小球很可能会一直呆在左边晃来晃去很长时间,于是这个模拟就无法正确地描述体系的特性,和实际不符。在mtd里,小球每在一个点出现,系统就会以那个点为中心加一个小的bias potential,比如一个开口向下的Gaussian。这样,在小球一直在左边晃荡的同时,左边的“坑”已经渐渐被“沙子”填满:


在这个状态下,小球就很容易跨过势垒跑到右边。随着模拟的继续进行,右边慢慢也被填满了(之前两张图里势能面的两边画得不够全,应该如下图所示):


现在小球已经是在一个近似flat的势能面上运动了,那么我们应当从小球的轨迹中观察到它在各个点出现的概率接近相等。这时,我们可以近似地认为模拟已经converge。下面,最fancy最“目瞪口呆”的一步到了:


我们把之前所有的bias potential加起来,得到一个能量对坐标的函数E(q),再用0减去E(q)(为了简便,这里假设最后坑被填得完全是平的)就是体系应有的自由能面(即上图蓝色部分的下边界)。
当然,具体实现的时候有不少改进版本,比如well-tempered mtd等等,笔者不是做这个方向的所以并不清楚具体细节。
@肖石燕 是这方面专家,可以展开说一下~
最后顺便提一下,mtd最早是Parrinello等人提出的,这个Parrinello是个大神级人物,他的另一项贡献或许更为人熟知,那便是Car-Parrinello Molecular Dynamics (CPMD)...
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录 手机动态码快速登录

本版积分规则

关闭

官方推荐 上一条 /3 下一条

快速回复 返回列表 客服中心 搜索 官方QQ群 洽谈合作
快速回复返回顶部 返回列表