[aspect-devel] periodic domains
Timo Heister
heister at clemson.edu
Wed Sep 11 09:54:00 PDT 2013
> The way this is currently done can only work for Cartesian boxes because (i)
> the GeometryModel::Interface::get_periodic_boundary_pairs() function returns
> something that deals with Cartesian directions, and (ii) in core.cc we now
> call the version of DoFTools::make_periodicity_constraints() that expects
> this. This way, we can not deal with periodic boundary conditions on, for
> example, the sides of a quarter 2d hyper shell.
correct.
> Would it make sense to change the interface of get_periodic_boundary_pairs()
> so that it returns the output of GridTools::identify_periodic_face_pairs()
> and then in core.cc just call the other version of
> DoFTools::make_periodicity_constraints()?
Yes, I was thinking about changing this but decided to commit what we
have so far. Thanks for bringing this up.
I am somewhat confused about the different versions for
make_periodicity_constraints (and I think we need to clean those up!).
There is no version of make_periodicity_constraints that accepts a
std::vector<std_cxx1x::tuple< typename
parallel::distributed::Triangulation<dim>::cell_iterator, unsigned int
/*face index*/,
typename
parallel::distributed::Triangulation<dim>::cell_iterator, unsigned int
/*face index*/> >
coming out of identify_periodic_face_pairs() right now. The closest one is
(const FaceIterator &face_1, const typename identity< FaceIterator
>::type &face_2,::ConstraintMatrix &constraint_matrix, const
ComponentMask &component_mask=ComponentMask(), const bool
face_orientation=true, const bool face_flip=false, const bool
face_rotation=false)
but I don't know how to construct the bool flags (or if this is even
possible in general, because identify_periodic_face_pairs() does not
allow for flipping the direction for the periodic boundary to say make
a moebius strip). This might be necessary for a half shell (not sure
though).
So, I think what we need to return in the interface is something like
std::vector of
std::tuple of
cell_iterator1, face_index1, cell_iterator2, face_index2, bool flip
Or am I wrong?
--
Timo Heister
http://www.math.clemson.edu/~heister/
More information about the Aspect-devel
mailing list