5.1 引 言
第4章详细介绍了偏微分方程的数值解法,重点介绍了有限元方法,并采用COMSOL Multiphysics举例,采用“step by step”的方式演示了一些微流控芯片单元的建模。其中,重点介绍了流动分析、电泳进样、微混合优化、多相流液滴操控等内容,可见采用商用软件可以开展丰富的微流控芯片建模研究。尽管现有的有限元模拟软件能够胜任很多微流控芯片技术中的建模分析工作,但也存在一些功能上的短板。例如,在微流控芯片技术中,细胞分选或颗粒惯性聚焦是常见的操作模式。然而,在细胞(或颗粒)建模过程中,涉及大量复杂运动边界的模拟,这在现有的有限元软件中难以实现。
目前,格子Boltzmann方法(Lattice Boltzmann Method,LBM)在基于微流控芯片技术的细胞和颗粒操控中得到较多的应用[1-4]。但和有限元法不太一样,LBM是一种新兴的方法,市面上可用的软件非常少,其应用还主要通过编程来实现。另一方面,LBM比较灵活,易与其他方法(如浸入边界法、相场法等)相结合,形成一种具有特定功能的数值模拟框架。
编程的核心是算法。只要算法逻辑正确、步骤清晰,理论上采用哪种编程语言都可以。目前常见的算法编程语言有C/C++、Fortran、Java、Python、MATLAB等。C/C++适用面广,几乎所有操作系统都支持C/C++,其跨平台性好,计算速度比较快,但学习难度较大。Fortran语言的强项在于有长期的积累,语法简单,擅长数值计算、并行计算;弱项是其界面功能、交互功能、图形功能稍弱。Java应用范围广泛,比C/C++容易学习和理解,且提供了对Web应用开发的支持;属于解释型语言,运行效率低。Python是一种面向对象的通用开源脚本编程语言,语法简单易学,贴近人类语言,有大量第三方库,功能扩展较好;属于解释型语言,计算效率低。MATLAB是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比C语言等更加接近计算公式和人们的思维方式,它编程简单、擅长矩阵运算、易学易懂、工具箱丰富,但MATLAB也是一种解释性语言,其计算效率低。
在这些语言中,MATLAB相对简单易学,适合有理工科专业背景的人员学习和使用,尤其是在学习和理解算法方面,选择MATLAB会更高效。MATLAB的线上和线下学习资料都很丰富,因此本书不单独设置编程语言介绍模块,请读者自学。此外,MATLAB是商业软件,与之语法类似的开源软件有很多,推荐使用Octave。Octave为GNU项目下的开源软件,早期版本为命令行交互方式,4.0.0版本发布基于Qt编写的GUI交互界面。Octave语法与MATLAB语法非常接近,可以很容易地将MATLAB程序移植到Octave。