public Vector getRealU() { // 4.Weak form WeakFormLaplace2D weakForm = new WeakFormLaplace2D(); plotFunction(mesh, coef_q, "qReal.dat"); weakForm.setParam(coef_q, FC.C0, null, null); // Right hand side(RHS): f(x) = -4.0 weakForm.setF(FC.c(-4.0)); // 5.Assembly process AssemblerScalar assembler = new AssemblerScalar(mesh, weakForm); System.out.println("Begin Assemble..."); assembler.assemble(); SparseMatrix stiff = assembler.getStiffnessMatrix(); SparseVector load = assembler.getLoadVector(); // Boundary condition assembler.imposeDirichletCondition(diri); System.out.println("Assemble done!"); // 6.Solve linear system Solver solver = new Solver(); Vector u = solver.solveCG(stiff, load); System.out.println("u="); for (int i = 1; i <= u.getDim(); i++) System.out.println(String.format("%.3f", u.get(i))); plotVector(mesh, u, "uReal.dat"); return u; }