1192 | | - matrix. |
| 1193 | - Returns the divisor class group modulo torsion, |
| 1194 | `\mathop{Cl}(X) \otimes_\ZZ \QQ`, of the toric variety. |
| 1195 | |
| 1196 | .. NOTE:: |
| 1197 | |
| 1198 | * If the toric variety is **smooth**, this equals the |
| 1199 | Picard group: the elements are the isomorphism classes |
| 1200 | of line bundles on the toric variety. The group law |
| 1201 | (which we write as addition) is the tensor product of |
| 1202 | the line bundles. The Picard group of a toric variety is |
| 1203 | always torsion-free. |
| 1204 | |
| 1205 | * The Weil divisor class group `\mathop{Cl}(X)` of a toric |
| 1206 | variety is a finitely generated abelian group and can |
| 1207 | contain torsion. Its rank equals (number of rays)-(rank |
| 1208 | of M,N-lattice). |
| 1209 | |
| 1210 | * The coordinates correspond to the rows of ``self.fan().gale_transform()`` |
| 1211 | |
| 1212 | * :meth:`Kaehler_cone` yields a cone in this group. |
| 1213 | |
| 1214 | EXAMPLES:: |
| 1215 | |
| 1216 | sage: fan = FaceFan(lattice_polytope.octahedron(2)) |
| 1217 | sage: P1xP1 = ToricVariety(fan) |
| 1218 | sage: P1xP1.rational_divisor_class_group() |
| 1219 | Vector space of dimension 2 over Rational Field |
| 1220 | """ |
| 1221 | if "_rational_divisor_class_group" not in self.__dict__: |
| 1222 | self._rational_divisor_class_group = \ |
| 1223 | FreeModule(QQ, self.fan().nrays()-self.fan().lattice_dim()) |
| 1224 | return self._rational_divisor_class_group |
| 1225 | |
| 1226 | def Kaehler_cone(self): |
| 1227 | r""" |
| 1228 | The Kähler cone |
| 1229 | |
| 1230 | OUTPUT: |
| 1231 | |
| 1232 | Returns the Kähler cone of ``self`` as a cone in |
| 1233 | `\mathop{Cl}(X) \otimes_\ZZ \QQ`, see |
| 1234 | :meth:`rational_divisor_class_group`. |
1211 | | self._kaehler_cone = K |
1212 | | return self._kaehler_cone |
| 1258 | self._Kaehler_cone = K |
| 1259 | return self._Kaehler_cone |
| 1260 | |
| 1261 | def Mori_vectors(self): |
| 1262 | """ |
| 1263 | Returns the rays of the Mori cone. |
| 1264 | |
| 1265 | OUTPUT: |
| 1266 | |
| 1267 | - The rays of the Mori cone, that is, the dual of the Kähler cone. |
| 1268 | |
| 1269 | - The points in the Mori cone are the effective curves in the variety. |
| 1270 | |
| 1271 | - The first ``self.fan().nrays()`` integer entries in each |
| 1272 | Mori vector are the intersection numbers of the curve |
| 1273 | corresponding to the generator of the ray with the divisors |
| 1274 | of the toric variety in the same order as :meth:`divisors`. |
| 1275 | |
| 1276 | - The last entry is associated to the orgin of the N-lattice. |
| 1277 | |
| 1278 | - The Mori vectors are also known as the gauged linear sigma |
| 1279 | model charge vectors. |
| 1280 | |
| 1281 | EXAMPLES:: |
| 1282 | |
| 1283 | sage: P4_11169 = toric_varieties.P4_11169_resolved() |
| 1284 | sage: P4_11169.Mori_vectors() |
| 1285 | [(3, 2, 0, 0, 0, 1, -6), (0, 0, 1, 1, 1, -3, 0)] |
| 1286 | """ |
| 1287 | Mc = [ facet_normal * self._fan.gale_transform() |
| 1288 | for facet_normal in self.Kaehler_cone().facet_normals() ] |
| 1289 | return Mc; |