# Path: sucemfem/Consts.py
# Z0 = mu0*c0                              


import numpy 
import dolfin
from sucemfem import Consts
    allowed_properties_defaults = {'eps_r':1.0, 'mu_r':1.0}

    def __init__(self):
        for prop, val in self.allowed_properties_defaults.items():
            setattr(self, prop, val)

    def init_values(self, **kwargs):
        for prop, val in kwargs.items():
            if prop not in self.allowed_properties_defaults:
                raise ValueError('Unknown material property')
            setattr(self, prop, val)
            
    def set_eps_r(self, eps_r):
        self.eps_r = eps_r

    def set_mu_r(self, mu_r):
        self.mu_r = mu_r

    def get_eps_r(self):
        return self.eps_r

    def get_mu_r(self):
        return self.mu_r

    def get_mu_r_inv(self):
        return 1/self.get_mu_r()

    def get_eps(self):
        return eps0*self.eps_r


# Path: sucemfem/Consts.py
# Z0 = mu0*c0                              


# Path: sucemfem/Materials.py
import numpy 
import dolfin
from sucemfem import Consts

    allowed_properties_defaults = {'eps_r':1.0, 'mu_r':1.0}

    def __init__(self):
        for prop, val in self.allowed_properties_defaults.items():
            setattr(self, prop, val)

    def init_values(self, **kwargs):
        for prop, val in kwargs.items():
            if prop not in self.allowed_properties_defaults:
                raise ValueError('Unknown material property')
            setattr(self, prop, val)
            
    def set_eps_r(self, eps_r):
        self.eps_r = eps_r

    def set_mu_r(self, mu_r):
        self.mu_r = mu_r

    def get_eps_r(self):
        return self.eps_r

    def get_mu_r(self):
        return self.mu_r

    def get_mu_r_inv(self):
        return 1/self.get_mu_r()

    def get_eps(self):
        return eps0*self.eps_r


    def get_mu(self):