最近不少同学关于作业2(截止日期北京时间8月15日23:59)的提问,这里统一回复一下~
选题
很多同学问能否提供一些供参考的题目,这里列举一些选项
简单难度
- 实现MPM的slip、sticky、separate三种边界条件并进行比较(参见第8讲课件)
- 比较BFECC/MacCormack与SemiLagrangian advection
- 实现一个基于Conjugate gradients压力投影的流体模拟器
- 实现一个用APIC的fluid simulation (烟或者液体)
- …
中等难度
- 整合
mpm_lagrangain_forces
和mpm_128
,实现普通基于粒子的MPM和基于Lagrangian forces的MPM的耦合。可以使用自动微分。 - 在MPM中实现Cam-Clay模型 参考文献
- 实现一个SPH等粒子模拟算法的数据结构Neighbourhood search加速
- 实现一个3D FEM/MPM 求解器
- 实现可逆FEM
- 实现一个2D的基于物理的小游戏,如弹簧质点系统、FEM、MPM等
- 实现Advection-Reflection solver
- 实现基于FEM的拓扑优化
- …
困难难度
- 使用稀疏数据结构的烟雾模拟(具体内容请见第9讲)
- 实现PolyPIC
- 用MPM实现布料模拟
- …
其他问题
Q: 作业2能否参考别人的作业0/1/2?
A: 完全可以!我们甚至鼓励这样做:学习别人的代码、站在巨人的肩膀上,才能走的更远。但是请注意以下几点:
- 不论是参考了别人的实现照着写,还是直接复制粘贴了别人的代码来重用,都请做出说明。最好再明确指出自己实现的是哪一部分,和参考的代码相比有何新的地方。
- 最终评奖是只会按照新增的部分评奖。当然,如果你在别人的代码基础上经过修改得到了更简单、高效地代码,这样的改进也可以考虑成是不错的新增部分。
Q: 作业2和ChinaVR的Taichi编程竞赛是否可以同时提交?
A: 可以,并且推荐各位同学两边同时提交!
(其余问题会稍后更新)
正在做作业的同学请扫码加入作业辅导群,我们会尽量回答一些编程中遇到的相关技术问题: