MCPcopy Create free account
hub / github.com/NanoComp/meep / is_metal

Function is_metal

scheme/structure.cpp:376–395  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

374}
375
376static bool is_metal(meep::field_type ft, const material_type *material) {
377 if (ft == meep::E_stuff) switch (material->which_subclass) {
378 case MTS::MEDIUM:
379 return (material->subclass.medium_data->epsilon_diag.x < 0 ||
380 material->subclass.medium_data->epsilon_diag.y < 0 ||
381 material->subclass.medium_data->epsilon_diag.z < 0);
382 case MTS::PERFECT_METAL: return true;
383 default: meep::abort("unknown material type"); return false;
384 }
385 else
386 switch (material->which_subclass) {
387 case MTS::MEDIUM:
388 return (material->subclass.medium_data->mu_diag.x < 0 ||
389 material->subclass.medium_data->mu_diag.y < 0 ||
390 material->subclass.medium_data->mu_diag.z < 0);
391 case MTS::PERFECT_METAL:
392 return false; // is an electric conductor, but not a magnetic conductor
393 default: meep::abort("unknown material type"); return false;
394 }
395}
396
397static void material_epsmu(meep::field_type ft, material_type material, symmetric_matrix *epsmu,
398 symmetric_matrix *epsmu_inv) {

Callers 1

eff_chi1inv_rowMethod · 0.70

Calls 1

abortFunction · 0.85

Tested by

no test coverage detected