Dear All,
I am using Libmesh (generalized eigenvalue problem GEP example) to solve
the bounded vibrational Schrodinger equation. I want to use this example
with the application of periodic boundary conditions (PBC). When I apply
the PBCs, however I do not see any differences between the eigenvalues for
any of our test cases compared to Dirichlet boundary conditions.
The way I apply the boundary conditions is as follows:
EquationSystems equation_systems (mesh);
EigenSystem & eigen_system =
equation_systems.add_system<
EigenSystem> ("Eigensystem");
// ==== THIS SECTION IS ADDED ================
// MeshRefinement mesh_refinement (mesh);
DofMap & dof_map = eigen_system.get_dof_map();
PeriodicBoundary horz(RealVectorValue(2.0,0.));
horz.myboundary = 3;
horz.pairedboundary = 1;
dof_map.add_periodic_boundary(horz);
// eigen_system.get_dof_map().add_periodic_boundary(horz);
PeriodicBoundary vert(RealVectorValue(0.,2.0));
vert.myboundary = 0;
vert.pairedboundary = 2;
dof_map.add_periodic_boundary(vert);
// eigen_system.get_dof_map().add_periodic_boundary(vert);
//
mesh_refinement.set_periodic_boundaries_ptr(dof_map.get_periodic_boundaries());
// dof_map.create_dof_constraints(mesh);
// ==== UNTIL HERE - WHERE THE ORIGINAL CODE FROM LIBMESH CONTINUES
eigen_system.add_variable("u", SECOND);
eigen_system.attach_assemble_function (assemble_mass);
equation_systems.parameters.set<unsigned int>("eigenpairs") = nev;
equation_systems.parameters.set<unsigned int>("basis vectors") =
nev*3;
eigen_system.eigen_solver->set_eigensolver_type(KRYLOVSCHUR);
eigen_system.eigen_solver->set_position_of_spectrum(SMALLEST_REAL);
equation_systems.parameters.set<Real>("linear solver tolerance") =
pow(TOLERANCE, 5./3.);
equation_systems.parameters.set<unsigned int>
("linear solver maximum iterations") = 1000;
eigen_system.set_eigenproblem_type(GHEP);
equation_systems.init();
equation_systems.print_info();
eigen_system.solve();
The mesh is built as a square of 20x20 elements with range (in both x and y
directions) going from 0 to 2. Potential energy is set to 0 so we are
investigating the motion of a free particle.
Shouldn't the results be different for this case, with and without the PBC?
In particular, with the PBC in place, I obtain at least some solutions that
are discontinuous across the boundary (where psi(x_max) is not equal to
psi(x_min)), and I don't see how that could satisfy constraints for a
periodic system.
Thank you very much in advance
Peter Zajac
Computational Science Research Center
San Diego
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users