Пирамиды и косые конусы в MEEP - PullRequest
2 голосов
/ 14 февраля 2020

Извините, если это неправильное место для этого вопроса.

Я недавно начал использовать программное обеспечение MIT MEEP (Python3, на Linux). Я довольно новичок в этом и хотел бы в основном использовать его для фотоэлектрических проектов. Несколько распространенные формы, которые появляются здесь, - это «перевернутая пирамида» и наклонные (наклонные) структуры конусов. Создание фигур в MEEP, как правило, выполняется с помощью класса GeometricObject , но, похоже, они напрямую не поддерживают ни одну из этих структур. Есть ли способ обойти это, или мой единственный реальный вариант - моделировать эти структуры, складывая небольшие объекты Block?

Как описано в моем собственном опубликованном ответе, не так уж сложно самостоятельно определить эти геометрические объекты c, написать функцию, чтобы проверить, находится ли она внутри объекта, и вернуть соответствующий материал. Как бы я go о преобразовании этого в MEEP GeometricObject, вместо того, чтобы преобразовать это в material_fun c, как я сделал?

1 Ответ

0 голосов
/ 27 февраля 2020

Нет ответов, поэтому я решил опубликовать свой хакерский способ обойти это. Есть два решения: во-первых, как упоминалось в вопросе, просто укладка объекта блока MEEP. Другой подход, который я применил, - определить мой собственный класс Pyramid, который работает в основном так же, как описано здесь . Затем я преобразую список своих объектов класса и объекта формы MEEP в функцию, которая берет вектор и возвращает материал, и он передается как material_fun c в объекте моделирования MEEP. Пока что это похоже на работу, поэтому я выкладываю это как ответ. Тем не менее, это существенно замедляет усреднение субпикселей (и, возможно, остальную часть симуляции, хотя я не проводил фактический анализ), поэтому я не очень доволен этим.

Я не уверен, что "лучше", но второй метод кажется более точным, поскольку у вас есть пирамиды, а не просто набор блоков.

...