Hi there,

I'm using libMesh to calculate the homogenized properties of
microstructures with cuboid unit cells. To do this, the boundaries of the
unit cell require periodic boundary conditions. As far as I can tell,
though, the PeriodicBoundary class only works with structured meshes, which
isn't really a feasible option for me. Is this really the case, or have I
just missed something in my implementation?

Currently, I am manually mapping each constrained node on the "far"
boundary to an element/side pair on the "near" boundary using
PointLocatorBase and Elem::side_ptr()->contains_point(). Then, I use the
penalty method to apply a constraint equation with coefficients found using
FE<2,LAGRANGE>::shape().

The issue I have at the moment most likely concerns preallocation of the
system matrix. Calls to matrix->add_matrix() are taking a very long time,
since the DofMap would obviously not expect a node on one side of the mesh
to be coupled with the nodes on the opposite side. Is there a convenient
way to make libMesh preallocate extra space beforehand, or does this need
to be done manually? I'm using PETSc, but I'd like the code to stay
solver-independent if possible.

I've considered switching to the Lagrange multiplier method using 2
additional field variables as was suggested for a question I posted earlier
for a different project. However, this would add 2 DOFs to each node, and
I'm not even sure this would circumvent the preallocation problem I have
for the penalty method. Any suggestions concerning the best way to use
libMesh for this problem would be appreciated.

- Bailey C
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to