Let <M>S</M> be a crystallographic group. A Fundamental domain is a closed
convex set containing a system of representatives for the Orbits of <M>S</M> in
its natural action on euclidian space.<Br/>
There are two algorithms for calculating fundamental domains in
<Package>HAPcryst</Package>. One uses the geometry and relies on having the
standard rule for evaluating the scalar product (i.e. the gramian matrix is the
identity). The other one is independent of the gramian matrix but does only
work for Bieberbach groups, while the first ("geometric") algorithm works for
arbitrary crystallographic groups given a point with trivial stabilizer.
<ManSection>
<Meth Name="FundamentalDomainStandardSpaceGroup" Arg="[v], G" />
<Meth Name="FundamentalDomainStandardSpaceGroup" Arg="v, G" />
<Returns>a <K>PolymakeObject</K></Returns>
<Description>
Let <A>G</A> be an <K>AffineCrystGroupOnRight</K> and <A>v</A> a vector. A
fundamental domain containing <A>v</A> is calculated and returned as a
<K>PolymakeObject</K>. The vector <A>v</A> is used as the starting point for
a Dirichlet-Voronoi construction. If no <A>v</A> is given, the origin is
used as starting point if it has trivial stabiliser. Otherwise an error is
cast. <Br />
</Description>
</ManSection>
<ManSection>
<Meth Name="FundamentalDomainBieberbachGroup" Arg="G"/>
<Meth Name="FundamentalDomainBieberbachGroup" Arg="v G [gram]"/>
<Returns>a <K>PolymakeObject</K></Returns>
<Description>
Given a starting vector <A>v</A> and a Bieberbach group <A>G</A> in
standard form, this method calculates the Dirichlet domain with
respect to <A>v</A>. If <A>gram</A> is not supplied, the average
gramian matrix is used (see
<Ref Meth="GramianOfAverageScalarProductFromFiniteMatrixGroup"/>).
It is not tested if <A>gram</A> is symmetric and positive
definite. It is also not tested, if the product defined
by <A>gram</A> is invariant under the point group of <A>G</A>.
<P/>
The behaviour of this function is influenced by the option
<K>ineqThreshold</K><Label
Name="ineqThreshold"/><Index>ineqThreshold</Index>.
The algorithm calculates
approximations to a fundamental domain by iteratively adding inequalities.
For an approximating polyhedron, every vertex is tested to find new
inequalities. When all vertices have been considered or the number of new
inequalities already found exceeds
the value of <K>ineqThreshold</K>, a new approximating polyhedron in
calculated. The default for <K>ineqThreshold</K> is 200. Roughly speaking,
a large threshold means shifting work from <K>polymake</K> to &GAP;, a small
one means more calls of (and work for) <K>polymake</K>.
<P/>
If the value of <Ref InfoClass="InfoHAPcryst"/> is 2 or more, for each
approximation the number of vertices of the approximation, the number of
vertices that have to be considered during the calculation, the number of
facets, and new inequalities is shown.
<P/>
Note that the algorithm chooses vertices in random order and also writes
inequalities for <K>polymake</K> in random order.
</Description>
</ManSection>
<ManSection>
<Meth Name="FundamentalDomainFromGeneralPointAndOrbitPartGeometric" Arg="v
orbit"/>
<Returns>a <K>PolymakeObject</K></Returns>
<Description>
This uses an alternative algorithm based on geometric considerations. It is
not used in any of the high-level methods.
Let <A>v</A> be a vector and <A>orbit</A> a sufficiently large part of the
orbit of <A>v</A> under a crystallographic group with standard- orthogonal
point group (satisfying <M>A^t=A^-1</M>). A geometric algorithm is then used
to calculate the Dirichlet domain with respect to <A>v</A>. This also works
for crystallographic groups which are not Bieberbach. The point <A>v</A> has
to have trivial stabilizer.<Br/>
The intersection of the full orbit with the unit cube around <A>v</A> is
sufficiently large.
</Description>
</ManSection>
<ManSection>
<Meth Name="IsFundamentalDomainStandardSpaceGroup"
Arg="poly G"/>
<Returns>
true or false
</Returns>
<Description>
This tests if a <K>PolymakeObject</K> <A>poly</A> is a fundamental domain
for the affine crystallographic group <A>G</A> in standard form.<Br/>
The function tests the following: First, does the orbit of any vertex
of <A>poly</A> have a point inside <A>poly</A> (if this is the
case, <C>false</C> is returned). Second: Is every facet
of <A>poly</A> the image of a different facet under a group element
which does not fix <A>poly</A>. If this is satisfied,
<C>true</C> is returned.
</Description>
</ManSection>
<ManSection>
<Meth Name="IsFundamentalDomainBieberbachGroup"
Arg="poly G"/>
<Returns>
true, false or fail
</Returns>
<Description>
This tests if a <K>PolymakeObject</K> <A>poly</A> is a fundamental domain
for the affine crystallographic group <A>G</A> in standard form and if this
group is torsion free (ie a Bieberbach group)<Br />
It returns <K>true</K> if <A>G</A> is torsion free and <A>poly</A> is a
fundamental domain for <A>G</A>. If <A>poly</A> is not a fundamental domain,
<K>false</K> is returned regardless of the structure of <A>G</A>. And if
<A>G</A> is not torsion free, the method returns <K>fail</K>.
If <A>G</A> is polycyclic, torsion freeness is tested using a representation
as pcp group. Otherwise the stabilisers of the faces of the fundamental
domain <A>poly</A> are calculated (<A>G</A> is torsion free if and only
if it all these stabilisers are trivial).
</Description>
</ManSection>
</Section>
¤ Dauer der Verarbeitung: 0.26 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.