[docs]classMatrixProxyLinearSystem(Frozen):""""""def__init__(self,mp,ls,mp_bc):""""""self._mp=mpself._ls=lsself._parse_bc(mp_bc)self._freeze()def_parse_bc(self,mp_bc):""""""ifmp_bcisNoneorlen(mp_bc)==0:self._bc=Noneelse:self._bc=MatrixProxyLinearSystemBoundaryConditions(self,mp_bc)@propertydefbc(self):""""""returnself._bcdefpr(self,figsize=(12,6)):""""""fromphyem.src.configimportRANK,MASTER_RANKifRANK!=MASTER_RANK:returnNoneelse:passseek_text=self._mp._mp_seek_text()linear_system_text=self._ls._pr_text()symbolic=r"$"+linear_system_text+r"$"# ----- for big matrix, bmatrix environment does not work, use array instead -----------------------num_unknowns=len(self._mp._wf.unknowns)ifnum_unknowns>5:# matrix_begin_latex = r"\left[\begin{array}{" + r"c" * num_unknowns + r"}"# matrix_end_latex = r"\end{array}\right]"# if r"\begin{bmatrix}" in symbolic:# symbolic = symbolic.replace(r"\begin{bmatrix}", matrix_begin_latex)# if r"\end{bmatrix}" in symbolic:# symbolic = symbolic.replace(r"\end{bmatrix}", matrix_end_latex)symbolic=bmatrix_to_array(symbolic,num_unknowns)else:pass# ===================================================================================================ifself.bcisNoneorlen(self.bc)==0:bc_text=''else:bc_text=self.bc._bc_text()fig=plt.figure(figsize=figsize)plt.axis((0,1,0,1))plt.axis('off')plt.text(0.05,0.5,seek_text+symbolic+bc_text,ha='left',va='center',size=15)fromphyem.src.configimport_setting,_pr_cacheif_setting['pr_cache']:_pr_cache(fig,filename='matrixProxyLinearSystem')else:plt.tight_layout()plt.show(block=_setting['block'])returnfigdef_pr_temporal_advancing(self,*args,**kwargs):""""""returnself._mp._pr_temporal_advancing(*args,**kwargs)