| 6 | using namespace PyMesh; |
| 7 | |
| 8 | PeriodicMaterial::PeriodicMaterial(Material::Ptr mat1, Material::Ptr mat2, |
| 9 | VectorF axis, Float period, Float ratio, Float phase) : |
| 10 | m_axis(axis), m_period(period), m_ratio(ratio), m_phase(phase) { |
| 11 | assert(mat1->get_dim() == mat2->get_dim()); |
| 12 | assert(m_axis.size() == mat1->get_dim()); |
| 13 | m_materials.push_back(mat1); |
| 14 | m_materials.push_back(mat2); |
| 15 | m_axis.normalize(); |
| 16 | check_validity(); |
| 17 | } |
| 18 | |
| 19 | Float PeriodicMaterial::get_material_tensor( |
| 20 | size_t i, size_t j, size_t k, size_t l, VectorF coord) const { |