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

Reply via email to