SudoSim 是一款面向颗粒力学和计算连续介质力学的高性能开源模拟平台。它的建模语言是 Python——这意味着你不需要学习新的编程语言,只需要掌握 Python 基础,就能快速上手强大的科学模拟。

Python——简洁优雅,是科学计算的完美选择
SudoSim 采用 Python 语言进行建模,为用户提供了极其自由的建模环境。
这意味着:
在开始模拟之前,我们先快速过一遍 Python 的核心语法。
Python 的强大来自丰富的标准库和第三方包。导入模块只需一行:
import math这行代码导入了 Python 内置的数学库,包含了三角函数、对数、常数值等丰富的数学运算工具。
Python 的变量不需要提前声明类型,直接赋值即可:
a = 2# 整型b = 5# 整型c = 2.0# 浮点型d = a / b # 浮点除法e = c / b # 浮点除法print(a, d, e) # 打印: 2 0.4 0.4Python 支持丰富的数值类型:
42 | ||
3.14 | ||
"hello" | ||
True/False |
💡 Python 的变量非常灵活:即便一个变量之前赋值了整数,你也可以随时重新给它赋值浮点数或字符串。
Python 提供了一组熟悉的数值运算符:
+ | 3 + 5 = 8 | |
- | 10 - 3 = 7 | |
* | 4 * 2 = 8 | |
/ | 10 / 3 = 3.33 | |
** | 2 ** 3 = 8 |
Python 处理文本非常轻松:
a = 'abc'b = "This is a 'Python' script."print(a, b)# 输出: abc This is a 'Python' script.双引号和单引号在 Python 中可以互换使用。如果需要包含引号,可以用不同的引号类型来嵌套。
Python 提供了三种核心的数据结构,用于存储和组织数据。
列表是有序且可修改的数据容器:
c = [1, 2, 3, 'ss'] # 创建列表c[0] = 5# 修改第一个元素:[5, 2, 3, 'ss']⚠️ 注意:列表的索引从 0 开始。
元组与列表类似,但初始化后不可修改:
d = (1, 2, 3, 'ss')d[0] = 5# ❌ 报错!元组不可修改元组适合存储不希望被修改的数据,如坐标、配置参数等。
字典以 键值对 形式存储数据:
d = {1: 22, 2: 33, 4: 'ssss', 'w': 123}print(d[1], d[4], d['w'])# 输出: 22 ssss 123字典的键可以是数字、字符串等任意不可变类型,值可以是任意类型。
c = list() # 空列表d = dict() # 空字典在需要稍后填充数据的场景中非常有用。
if1 > 2:print("1 is greater than 2, really?")else:if2in [1, 2, 3]:print("2 is in the list")for i inrange(5): # 等价于 [0, 1, 2, 3, 4]print(i)结合列表和字典操作:
c.append(math.cos(i) * 10 + 2.0 ** 5)if i notin d.keys(): d[i] = str(i)函数让你把一组命令封装起来,方便重复使用:
defGoodJob(input_number, keyword1=1, keyword2=True):if keyword2: # 等价于 if keyword2 == Trueprint(f"the input number is {input_number}") input_number += keyword1return input_number# 使用函数a = GoodJob(2) # a = 3,打印: "the input number is 3"b = GoodJob(3, keyword1=5, keyword2=False) # b = 8,无打印💡 提示:
keyword1=1和keyword2=True是默认参数,调用时可以省略,此时会使用默认值。
掌握了以上 Python 基础,你已经具备了运行数值模拟所需的全部编程知识!
在实际建模中,你会频繁使用:
这只是 Python 的入门知识。如果你想深入学习,可以探索:
SudoSim 后续教程会逐步为你呈现更多进阶内容。
准备好了吗?下一篇文章,我们将学习 SudoSim 的完整建模流程。
往期教程: