]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
remove more specializations
authorkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 29 May 2007 18:22:34 +0000 (18:22 +0000)
committerkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 29 May 2007 18:22:34 +0000 (18:22 +0000)
git-svn-id: https://svn.dealii.org/trunk@14727 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/grid/tria_accessor.h
deal.II/deal.II/include/grid/tria_accessor.templates.h
deal.II/deal.II/source/grid/tria_accessor.cc

index 325f7693828a9dd5cb88624281c5eb043b3aaba6..89f3505212a2c02cc9a65b0c5471aa41f335744c 100644 (file)
@@ -1779,10 +1779,11 @@ class TriaObjectAccessor<1, dim> :  public TriaAccessor<1,dim>
     void operator -- ();
 
                                     /**
-                                     * Access to the lines of a
-                                     * Triangulation. This function
-                                     * is specialized for dim==1
-                                     * because lines are stored in
+                                     * Access to the other objects of
+                                     * a Triangulation with same
+                                     * dimension. This function is
+                                     * specialized for dim==1 because
+                                     * lines are stored in
                                      * TriaLevel<1> for dim==1 but in
                                      * TriaFace<dim> for dim!=1. All
                                      * accessor functions using this
@@ -1790,7 +1791,7 @@ class TriaObjectAccessor<1, dim> :  public TriaAccessor<1,dim>
                                      * for all dim without
                                      * specialization.
                                      */
-    internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<1> > & lines() const;
+    internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<1> > & objects() const;
 
   private:
     
@@ -2433,9 +2434,10 @@ class TriaObjectAccessor<2, dim> :  public TriaAccessor<2,dim>
     void operator -- ();
 
                                     /**
-                                     * Access to the quads of a
-                                     * Triangulation. This function
-                                     * is specialized for dim==2 and
+                                     * Access to the other objects of
+                                     * a Triangulation of same
+                                     * dimension. This function is
+                                     * specialized for dim==2 and
                                      * dim==3 because quads are
                                      * stored in TriaLevel<2> for
                                      * dim==2 but in TriaFace<3> for
@@ -2444,7 +2446,7 @@ class TriaObjectAccessor<2, dim> :  public TriaAccessor<2,dim>
                                      * implemented for all dimensions
                                      * without specialization.
                                      */
-    internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<2> > & quads() const;
+    internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<2> > & objects() const;
 
   private:
     
@@ -3547,22 +3549,15 @@ class CellAccessor :  public TriaObjectAccessor<dim,dim>
 template <> Point<2> TriaObjectAccessor<2, 2>::barycenter () const;
 template <> Point<3> TriaObjectAccessor<2, 3>::barycenter () const;
 template <> Point<3> TriaObjectAccessor<3, 3>::barycenter () const;
-template <> internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<1> > &TriaObjectAccessor<1, 1>::lines() const;
-template <> internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<2> > &TriaObjectAccessor<2, 2>::quads() const;
+template <> internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<1> >&
+TriaObjectAccessor<1, 1>::objects() const;
+template <> internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<2> >&
+TriaObjectAccessor<2, 2>::objects() const;
 template <> bool CellAccessor<1>::at_boundary () const;
-template <> unsigned char CellAccessor<1>::material_id () const;
-template <> void CellAccessor<1>::set_material_id (const unsigned char mat_id) const;
-template <> void CellAccessor<1>::recursively_set_material_id (const unsigned char mat_id) const;
 template <> bool CellAccessor<1>::point_inside (const Point<1> &p) const;
 template <> bool CellAccessor<2>::at_boundary () const;
-template <> unsigned char CellAccessor<2>::material_id () const;
-template <> void CellAccessor<2>::set_material_id (const unsigned char mat_id) const;
-template <> void CellAccessor<2>::recursively_set_material_id (const unsigned char mat_id) const;
 template <> bool CellAccessor<2>::point_inside (const Point<2> &p) const;
 template <> bool CellAccessor<3>::at_boundary () const;
-template <> unsigned char CellAccessor<3>::material_id () const;
-template <> void CellAccessor<3>::set_material_id (const unsigned char mat_id) const;
-template <> void CellAccessor<3>::recursively_set_material_id (const unsigned char mat_id) const;
 template <> bool CellAccessor<3>::point_inside (const Point<3> &) const;
 
 template <> bool CellAccessor<1>::has_boundary_lines () const;
index 15549f863cb923d6c1de2e10414dbec292df5209..31769431e68a23dd7bdf1058a56e12a2d0d9efe5 100644 (file)
@@ -250,7 +250,7 @@ TriaObjectAccessor (const Triangulation<dim> *parent,
 template <>
 inline
 internal::Triangulation::TriaObjects<internal::Triangulation::Line> &
-TriaObjectAccessor<1,1>::lines() const
+TriaObjectAccessor<1,1>::objects() const
 {
   return this->tria->levels[this->present_level]->cells;
 }
@@ -260,7 +260,7 @@ TriaObjectAccessor<1,1>::lines() const
 template <int dim>
 inline
 internal::Triangulation::TriaObjects<internal::Triangulation::Line> &
-TriaObjectAccessor<1,dim>::lines() const
+TriaObjectAccessor<1,dim>::objects() const
 {
   return this->tria->faces->lines;
 }
@@ -274,7 +274,7 @@ TriaObjectAccessor<1,dim>::used () const
 {
   Assert (this->state() == IteratorState::valid,
          TriaAccessorExceptions::ExcDereferenceInvalidObject());
-  return lines().used[this->present_index];
+  return objects().used[this->present_index];
 }
 
 
@@ -285,7 +285,7 @@ bool
 TriaObjectAccessor<1,dim>::user_flag_set () const
 {
   Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return lines().user_flags[this->present_index];
+  return objects().user_flags[this->present_index];
 }
 
 
@@ -296,7 +296,7 @@ void
 TriaObjectAccessor<1,dim>::set_user_flag () const 
 {
   Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  lines().user_flags[this->present_index] = true;
+  objects().user_flags[this->present_index] = true;
 }
 
 
@@ -307,7 +307,7 @@ void
 TriaObjectAccessor<1,dim>::clear_user_flag () const
 {
   Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  lines().user_flags[this->present_index] = false;
+  objects().user_flags[this->present_index] = false;
 }
 
 
@@ -319,7 +319,7 @@ TriaObjectAccessor<1,dim>::has_children () const
 {
   Assert (this->state() == IteratorState::valid,
          TriaAccessorExceptions::ExcDereferenceInvalidObject());
-  return (lines().children[this->present_index] != -1);
+  return (objects().children[this->present_index] != -1);
 }
 
 
@@ -331,7 +331,7 @@ TriaObjectAccessor<1,dim>::child_index (unsigned const int i) const
 {
   Assert (i<2, ExcIndexRange(i,0,2));
   Assert (has_children(), TriaAccessorExceptions::ExcCellHasNoChildren());
-  return lines().children[this->present_index]+i;
+  return objects().children[this->present_index]+i;
 }
 
 
@@ -532,7 +532,7 @@ TriaObjectAccessor (const Triangulation<dim> *parent,
 template <>
 inline
 internal::Triangulation::TriaObjects<internal::Triangulation::Quad> &
-TriaObjectAccessor<2,2>::quads() const
+TriaObjectAccessor<2,2>::objects() const
 {
   return this->tria->levels[this->present_level]->cells;
 }
@@ -542,7 +542,7 @@ TriaObjectAccessor<2,2>::quads() const
 template <int dim>
 inline
 internal::Triangulation::TriaObjects<internal::Triangulation::Quad> &
-TriaObjectAccessor<2,dim>::quads() const
+TriaObjectAccessor<2,dim>::objects() const
 {
   return this->tria->faces->quads;
 }
@@ -556,7 +556,7 @@ TriaObjectAccessor<2,dim>::used () const
 {
   Assert (this->state() == IteratorState::valid,
          TriaAccessorExceptions::ExcDereferenceInvalidObject());
-  return quads().used[this->present_index];
+  return objects().used[this->present_index];
 }
 
 
@@ -567,7 +567,7 @@ bool
 TriaObjectAccessor<2,dim>::user_flag_set () const
 {
   Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return quads().user_flags[this->present_index];
+  return objects().user_flags[this->present_index];
 }
 
 
@@ -578,7 +578,7 @@ void
 TriaObjectAccessor<2,dim>::set_user_flag () const
 {
   Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  quads().user_flags[this->present_index] = true;
+  objects().user_flags[this->present_index] = true;
 }
 
 
@@ -589,7 +589,7 @@ void
 TriaObjectAccessor<2,dim>::clear_user_flag () const
 {
   Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  quads().user_flags[this->present_index] = false;
+  objects().user_flags[this->present_index] = false;
 }
 
 
@@ -616,7 +616,7 @@ unsigned int
 TriaObjectAccessor<2,dim>::line_index (const unsigned int i) const
 {
   Assert (i<4, ExcIndexRange(i,0,4));
-  return quads().cells[this->present_index].face(i);
+  return objects().cells[this->present_index].face(i);
 }
 
 
@@ -628,7 +628,7 @@ TriaObjectAccessor<2,dim>::has_children () const
 {
   Assert (this->state() == IteratorState::valid,
          TriaAccessorExceptions::ExcDereferenceInvalidObject());
-  return (quads().children[this->present_index] != -1);
+  return (objects().children[this->present_index] != -1);
 }
 
 
@@ -639,7 +639,7 @@ int TriaObjectAccessor<2,dim>::child_index (const unsigned int i) const
 {
   Assert (i<4, ExcIndexRange(i,0,4));
   Assert (has_children(), TriaAccessorExceptions::ExcCellHasNoChildren());
-  return quads().children[this->present_index]+i;
+  return objects().children[this->present_index]+i;
 }
 
 
@@ -725,7 +725,7 @@ inline
 bool
 TriaObjectAccessor<2,3>::line_orientation (const unsigned int line) const
 {
-                                  // we cannot use the quads() function here,
+                                  // we cannot use the objects() function here,
                                   // since it returns a reference to
                                   // TriaObjects<Quad>, but we need a
                                   // (reference to) TriaObjectsQuad3D
@@ -762,7 +762,7 @@ TriaObjectAccessor<2,dim>::operator ++ ()
                                   // has no level)
   if (this->present_index
       >=
-      static_cast<int>(quads().cells.size()))
+      static_cast<int>(objects().cells.size()))
     this->present_index = -1;
 }
 
@@ -778,7 +778,7 @@ TriaObjectAccessor<2,2>::operator ++ ()
                                   // the vector?
   while (this->present_index
         >=
-        static_cast<int>(quads().cells.size()))
+        static_cast<int>(objects().cells.size()))
     {
                                       // no -> go one level up
       ++this->present_level;
@@ -831,7 +831,7 @@ TriaObjectAccessor<2,2>::operator -- ()
          return;
        }
                                       // else
-      this->present_index = quads().cells.size()-1;
+      this->present_index = objects().cells.size()-1;
     }
 }
 
index 243e6a2d957bd6ca4fe6612aeb39b12076e9a41d..26efef1a272a6289099dff732f50ea514dfeda59 100644 (file)
@@ -41,7 +41,7 @@ template <int dim>
 void
 TriaObjectAccessor<1, dim>::set (const internal::Triangulation::Line &line) const
 {
-  lines().cells[this->present_index] = line;
+  objects().cells[this->present_index] = line;
 }
 
 
@@ -50,7 +50,7 @@ template <int dim>
 int TriaObjectAccessor<1, dim>::vertex_index (const unsigned int i) const
 {
   Assert (i<2, ExcIndexRange(i,0,2));
-  return lines().cells[this->present_index].face (i);
+  return objects().cells[this->present_index].face (i);
 }
 
 
@@ -69,7 +69,7 @@ void TriaObjectAccessor<1, dim>::set_used_flag () const
 {
   Assert (this->state() == IteratorState::valid,
          TriaAccessorExceptions::ExcDereferenceInvalidObject());
-  lines().used[this->present_index] = true;
+  objects().used[this->present_index] = true;
 }
 
 
@@ -79,7 +79,7 @@ void TriaObjectAccessor<1, dim>::clear_used_flag () const
 {
   Assert (this->state() == IteratorState::valid,
          TriaAccessorExceptions::ExcDereferenceInvalidObject());
-  lines().used[this->present_index] = false;
+  objects().used[this->present_index] = false;
 }
 
 
@@ -112,7 +112,7 @@ template <int dim>
 void TriaObjectAccessor<1, dim>::set_user_pointer (void *p) const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  lines().user_pointer(this->present_index) = p;
+  objects().user_pointer(this->present_index) = p;
 }
 
 
@@ -121,7 +121,7 @@ template <int dim>
 void TriaObjectAccessor<1, dim>::clear_user_pointer () const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  lines().user_pointer(this->present_index) = 0;
+  objects().user_pointer(this->present_index) = 0;
 }
 
 
@@ -130,7 +130,7 @@ template <int dim>
 void * TriaObjectAccessor<1, dim>::user_pointer () const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return lines().user_pointer(this->present_index);
+  return objects().user_pointer(this->present_index);
 }
 
 
@@ -165,7 +165,7 @@ template <int dim>
 void TriaObjectAccessor<1, dim>::set_user_index (unsigned int p) const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  lines().user_index(this->present_index) = p;
+  objects().user_index(this->present_index) = p;
 }
 
 
@@ -174,7 +174,7 @@ template <int dim>
 void TriaObjectAccessor<1, dim>::clear_user_index () const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  lines().user_index(this->present_index) = 0;
+  objects().user_index(this->present_index) = 0;
 }
 
 
@@ -183,7 +183,7 @@ template <int dim>
 unsigned int TriaObjectAccessor<1, dim>::user_index () const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return lines().user_index(this->present_index);
+  return objects().user_index(this->present_index);
 }
 
 
@@ -222,7 +222,7 @@ void TriaObjectAccessor<1, dim>::set_children (const int index) const
          (!has_children() && (index>=0)),
          TriaAccessorExceptions::ExcCantSetChildren(index));
   
-  lines().children[this->present_index] = index;
+  objects().children[this->present_index] = index;
 }
 
 
@@ -241,7 +241,7 @@ unsigned char TriaObjectAccessor<1, dim>::boundary_indicator () const
   Assert (dim>=2, ExcImpossibleInDim(dim));
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
 
-  return lines().material_id[this->present_index];
+  return objects().material_id[this->present_index];
 }
 
 
@@ -252,7 +252,7 @@ void TriaObjectAccessor<1, dim>::set_boundary_indicator (const unsigned char bou
   Assert (dim>=2, ExcImpossibleInDim(dim));
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
 
-  lines().material_id[this->present_index] = boundary_ind;
+  objects().material_id[this->present_index] = boundary_ind;
 }
 
 
@@ -325,7 +325,7 @@ template <int dim>
 void
 TriaObjectAccessor<2, dim>::set (const internal::Triangulation::Quad &quad) const
 {
-  quads().cells[this->present_index] = quad;
+  objects().cells[this->present_index] = quad;
 }
 
 
@@ -366,7 +366,7 @@ TriaObjectAccessor<2, dim>::set_used_flag () const
 {
   Assert (this->state() == IteratorState::valid,
          TriaAccessorExceptions::ExcDereferenceInvalidObject());
-  quads().used[this->present_index] = true;
+  objects().used[this->present_index] = true;
 }
 
 
@@ -376,7 +376,7 @@ void TriaObjectAccessor<2, dim>::clear_used_flag () const
 {
   Assert (this->state() == IteratorState::valid,
          TriaAccessorExceptions::ExcDereferenceInvalidObject());
-  quads().used[this->present_index] = false;
+  objects().used[this->present_index] = false;
 }
 
 
@@ -409,7 +409,7 @@ template <int dim>
 void TriaObjectAccessor<2, dim>::set_user_pointer (void *p) const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  quads().user_pointer(this->present_index) = p;
+  objects().user_pointer(this->present_index) = p;
 }
 
 
@@ -418,7 +418,7 @@ template <int dim>
 void TriaObjectAccessor<2, dim>::clear_user_pointer () const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  quads().user_pointer(this->present_index) = 0;
+  objects().user_pointer(this->present_index) = 0;
 }
 
 
@@ -427,7 +427,7 @@ template <int dim>
 void * TriaObjectAccessor<2, dim>::user_pointer () const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return quads().user_pointer(this->present_index);
+  return objects().user_pointer(this->present_index);
 }
 
 
@@ -462,7 +462,7 @@ template <int dim>
 void TriaObjectAccessor<2, dim>::set_user_index (unsigned int p) const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  quads().user_index(this->present_index) = p;
+  objects().user_index(this->present_index) = p;
 }
 
 
@@ -471,7 +471,7 @@ template <int dim>
 void TriaObjectAccessor<2, dim>::clear_user_index () const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  quads().user_index(this->present_index) = 0;
+  objects().user_index(this->present_index) = 0;
 }
 
 
@@ -480,7 +480,7 @@ template <int dim>
 unsigned int  TriaObjectAccessor<2, dim>::user_index () const
 {
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return quads().user_index(this->present_index);
+  return objects().user_index(this->present_index);
 }
 
 
@@ -520,7 +520,7 @@ void TriaObjectAccessor<2, dim>::set_children (const int index) const
          (!has_children() && (index>=0)),
          TriaAccessorExceptions::ExcCantSetChildren(index));
 
-  quads().children[this->present_index] = index;
+  objects().children[this->present_index] = index;
 }
 
 
@@ -539,7 +539,7 @@ unsigned char TriaObjectAccessor<2, dim>::boundary_indicator () const
   Assert (dim>2, ExcImpossibleInDim(dim));
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
 
-  return quads().material_id[this->present_index];
+  return objects().material_id[this->present_index];
 }
 
 
@@ -550,7 +550,7 @@ void TriaObjectAccessor<2, dim>::set_boundary_indicator (const unsigned char bou
   Assert (dim>2, ExcImpossibleInDim(dim));
   Assert (used(), TriaAccessorExceptions::ExcCellNotUsed());
 
-  quads().material_id[this->present_index] = boundary_ind;
+  objects().material_id[this->present_index] = boundary_ind;
 }
 
 
@@ -1916,36 +1916,6 @@ bool CellAccessor<1>::at_boundary () const
 
 
 
-template <>
-unsigned char CellAccessor<1>::material_id () const
-{
-  Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return lines().material_id[this->present_index];
-}
-
-
-
-template <>
-void CellAccessor<1>::set_material_id (const unsigned char mat_id) const
-{
-  Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  lines().material_id[this->present_index] = mat_id;
-}
-
-
-
-template <>
-void CellAccessor<1>::recursively_set_material_id (const unsigned char mat_id) const
-{
-  set_material_id (mat_id);
-
-  if (this->has_children())
-    for (unsigned int c=0; c<2; ++c)
-      child(c)->recursively_set_material_id (mat_id);
-}
-
-
-
 template <>
 bool CellAccessor<1>::point_inside (const Point<1> &p) const
 {
@@ -1980,36 +1950,6 @@ bool CellAccessor<2>::at_boundary () const
 
 
 
-template <>
-unsigned char CellAccessor<2>::material_id () const
-{
-  Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return quads().material_id[this->present_index];
-}
-
-
-
-template <>
-void CellAccessor<2>::set_material_id (const unsigned char mat_id) const
-{
-  Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  quads().material_id[this->present_index] = mat_id;                                            
-}
-
-
-
-template <>
-void CellAccessor<2>::recursively_set_material_id (const unsigned char mat_id) const
-{
-  set_material_id (mat_id);
-
-  if (this->has_children())
-    for (unsigned int c=0; c<n_children(); ++c)
-      child(c)->recursively_set_material_id (mat_id);
-}
-
-
-
 template <>
 bool CellAccessor<2>::point_inside (const Point<2> &p) const
 {
@@ -2083,34 +2023,6 @@ bool CellAccessor<3>::at_boundary () const
 
 
 
-template <>
-unsigned char CellAccessor<3>::material_id () const
-{
-  Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  return this->tria->levels[this->present_level]->cells.material_id[this->present_index];
-}
-
-template <>
-void CellAccessor<3>::set_material_id (const unsigned char mat_id) const
-{
-  Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
-  this->tria->levels[this->present_level]->cells.material_id[this->present_index]
-    = mat_id;                                           
-}
-
-
-template <>
-void CellAccessor<3>::recursively_set_material_id (const unsigned char mat_id) const
-{
-  set_material_id (mat_id);
-
-  if (this->has_children())
-    for (unsigned int c=0; c<n_children(); ++c)
-      child(c)->recursively_set_material_id (mat_id);
-}
-
-
-
 template <>
 bool CellAccessor<3>::point_inside (const Point<3> &p) const
 {
@@ -2155,6 +2067,36 @@ bool CellAccessor<3>::point_inside (const Point<3> &p) const
 /*------------------------ Functions: CellAccessor<dim> -----------------------*/
 
 
+template <int dim>
+unsigned char CellAccessor<dim>::material_id () const
+{
+  Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
+  return this->tria->levels[this->present_level]->cells.material_id[this->present_index];
+}
+
+
+
+template <int dim>
+void CellAccessor<dim>::set_material_id (const unsigned char mat_id) const
+{
+  Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
+  this->tria->levels[this->present_level]->cells.material_id[this->present_index] = mat_id;
+}
+
+
+
+template <int dim>
+void CellAccessor<dim>::recursively_set_material_id (const unsigned char mat_id) const
+{
+  set_material_id (mat_id);
+
+  if (this->has_children())
+    for (unsigned int c=0; c<2; ++c)
+      child(c)->recursively_set_material_id (mat_id);
+}
+
+
+
 template <int dim>
 unsigned int CellAccessor<dim>::subdomain_id () const
 {

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.