While exact factorization preconditioners, such as lowerupper (LU) decomposition, are convenient for various applications, they exhibit poor memory scaling profiles in large-scale problems. This means that memory usage increases exponentially with problem size, rendering them nearly unusable for 3D cases. A more effective solution for this class of problems is to solve the derived linear system of equations using block matrices by leveraging the FieldSplit preconditioner in the PETSc toolkit. By dividing the matrices into smaller blocks, separate preconditioners or solvers can be assigned to each block, representing different transport quantities in the mixed formulation mentioned above. In the current study, for the 2D cases, the LU preconditioner and the Multifrontal Massively Parallel Sparse direct solver (MUMPS) were employed for both the fluid flow and charge transport problems.