Source code for nrv.fmod.FEM.fenics_utils._layered_materials
"""NRV-fenics_materials class handling."""importfaulthandlerimportosimportnumpyasnpfrom....backend._file_handlerimportjson_dump,rmv_extfrom....backend._log_interfaceimportrise_warningfrom....utils._nrv_functionimportnrv_interpfrom..._materialsimport(is_mat,load_material,material,compute_effective_conductivity,)from._f_materialsimportf_material,load_f_material# enable faulthandler to ease "segmentation faults" debugfaulthandler.enable()################# Functions #################
[docs]defis_lay_mat(mat:object)->bool:""" check if an object is a fenics_material, return True if yes, else False Parameters ---------- mat : object object to test Returns ------- bool True it the type is a material object """returnisinstance(mat,layered_material)
###################### material class ######################
[docs]classlayered_material(f_material):""" a class for conductive material wh parameters ---------- mat1 :material generate the fenics material from mat attribute mat2 :material generate the fenics material from mat attribute """
[docs]def__init__(self,mat_in:any=None,mat_lay:any=None,alpha_lay:float=0.01):""" initialisation of the fenics_material """super().__init__()self.mat_in=load_f_material(mat_in)self.mat_lay=load_f_material(mat_lay)self.alpha_lay=alpha_lay