Logo Search packages:      
Sourcecode: ecs version File versions  Download package

ecs_connect.h

#ifndef _ECS_CONNECT_H_
#define _ECS_CONNECT_H_

/*============================================================================
 *  Prototypes des fonctions de base
 *   associées à la structure `ecs_connect_t' décrivant une connectivité
 *============================================================================*/

/*
  This file is part of the Code_Saturne Preprocessor, element of the
  Code_Saturne CFD tool.

  Copyright (C) 1999-2007 EDF S.A., France

  contact: saturne-support@edf.fr

  The Code_Saturne Preprocessor is free software; you can redistribute it
  and/or modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version 2 of
  the License, or (at your option) any later version.

  The Code_Saturne Preprocessor is distributed in the hope that it will be
  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with the Code_Saturne Preprocessor; if not, write to the
  Free Software Foundation, Inc.,
  51 Franklin St, Fifth Floor,
  Boston, MA  02110-1301  USA
*/


/*============================================================================
 *                                 Visibilité
 *============================================================================*/

/*----------------------------------------------------------------------------
 *  Fichiers `include' librairie standard C ou BFT
 *----------------------------------------------------------------------------*/

#include <bft_file.h>


/*----------------------------------------------------------------------------
 *  Fichiers `include' publics  du  paquetage global "Utilitaire"
 *----------------------------------------------------------------------------*/

#include "ecs_def.h"


/*----------------------------------------------------------------------------
 *  Fichiers `include' publics  des paquetages visibles
 *----------------------------------------------------------------------------*/

#include "ecs_entmail_publ.h"


/*----------------------------------------------------------------------------
 *  Fichiers `include' publics  du  paquetage courant
 *----------------------------------------------------------------------------*/

#include "ecs_connect_publ.h"


/*============================================================================
 *                       Prototypes de fonctions publiques
 *============================================================================*/

/*----------------------------------------------------------------------------
 *  Fonction qui crée une structure `ecs_connect_t'
 *----------------------------------------------------------------------------*/

ecs_connect_t * ecs_connect__cree
(                                     /* <-- Reference sur la connect. creee  */
 ecs_entmail_t      * entmail       , /* --> Pointeur sur elements maillage   */
 ecs_entmail_t      * entmail_inf   , /* --> Pointeur sur elements `fils'     */
 ECS_CONNECT_NAT_E    connect_nat_e   /* --> Type de connect. entre entites   */
) ;


/*----------------------------------------------------------------------------
 *  Fonction libérant une structure `ecs_connect_t' donnée en argument.
 *  Elle renvoie un pointeur NULL
 *----------------------------------------------------------------------------*/

ecs_connect_t * ecs_connect__detruit
(
 ecs_connect_t * this_connect
) ;


/*----------------------------------------------------------------------------
 *  Fonction imprimant le contenu d'une structure `ecs_connect_t' donnée
 *   sur le flux décrit par la structure `bft_file_t'
 *----------------------------------------------------------------------------*/

void ecs_connect__imprime
(
 const ecs_connect_t *const this_connect ,      /* --> Structure a imprimer   */
       ecs_int_t            imp_col      ,
       bft_file_t    *const fic_imp             /* --> Descripteur du fichier */
) ;


/*----------------------------------------------------------------------------
 *  Fonction qui renvoie la taille en octets d'une structure `ecs_connect_t'
 *----------------------------------------------------------------------------*/

float ecs_connect__ret_taille
(
 const ecs_connect_t *const this_connect
) ;


/*----------------------------------------------------------------------------
 *  Fonction réalisant, pour une connectivité donnée,
 *   une transformation entre ses 2 entités de maillage membres
 *----------------------------------------------------------------------------*/

void ecs_connect__cree_indice
(
 ecs_connect_t    *this_connect  /* <-> Connectivité concernée par la transf. */
) ;


/*----------------------------------------------------------------------------
 *  Fonction réalisant la transformation d'une connectivité donnée
 *   en une "sous-connectivité"
 *
 *  Elle renvoie la nouvelle connectivité associant
 *   l'entité de maillage des éléments      avec
 *   l'entité de maillage des sous-éléments
 *
 *  La connectivité donnée met en jeu des éléments définis
 *   par des éléments d'une entité de maillage élémentaire
 *  La "sous-connectivité" correspondante met en jeu les sous-éléments définis
 *   par des éléments de  l'entité de maillage élémentaire
 *
 *  Exemple :
 *  -------
 *
 * connectivité donnée                : Cellule->Sommet (ECS_CONNECT_CEL_SOM)
 *                           Éléments : cellules
 *     Entité de maillage élémentaire : Sommet
 *
 * "sous-connectivité" correspondante : Face->Sommet    (ECS_CONNECT_FAC_SOM)
 *                      Sous-éléments : faces
 *----------------------------------------------------------------------------*/

ecs_connect_t * ecs_connect__cree_sous_connect
(                                 /* <-- Nouvelle connectivité associant      */
                                  /*      les éléments à leurs sous-éléments  */
 ecs_connect_t   * this_connect , /* --> Connectivité donnée à transformer    */
 ecs_connect_t  ** sous_connect , /* <-> Sous-connectivité                    */
 ecs_entmail_t  ** ent_sous_elt , /* <-- Entité de maillage des sous-éléments */
 ECS_CONNECT_E     connect_typ    /* --> Type de connectivité de départ       */
) ;


/*----------------------------------------------------------------------------
 *  Fonction qui crée la liste des connectivités
 *   dans une représentation du maillage en connectivité nodale
 *   à partir du vecteur des entités de maillage
 *         et de la nature de la connectivité (par étiquette ou par indice)
 *----------------------------------------------------------------------------*/

ecs_connect_t * * ecs_connect__cree_nodal
(
 ecs_entmail_t     * *const vect_entmail  ,
 ECS_CONNECT_NAT_E          connect_nat_e
) ;


/*----------------------------------------------------------------------------
 *  Fonction qui crée la liste des connectivités
 *   dans une représentation du maillage en connectivité descendante
 *   à partir du vecteur des entités de maillage
 *----------------------------------------------------------------------------*/

ecs_connect_t * * ecs_connect__cree_descendant
(
 ecs_entmail_t * *const vect_entmail
) ;


/*----------------------------------------------------------------------------
 *  Fonction qui retourne le type de la connectivité :
 *  - connectivité nodale      : ECS_CONNECT_TYP_NODALE
 *  - connectivité descendante : ECS_CONNECT_TYP_DESCENDANTE
 *   associée au tableau des connectivités
 *
 *  Si le maillage ne comporte que des arêtes,
 *   la fonction ne peut pas déterminer le type de la connectivité
 *   et retourne ECS_CONNECT_TYP_NUL
 *----------------------------------------------------------------------------*/

ECS_CONNECT_TYP_E ecs_connect__ret_connect_typ
(
 ecs_connect_t *const liste_connect[] ,
 ecs_entmail_t *const liste_entmail[]
) ;


#endif /* _ECS_CONNECT_H_ */

Generated by  Doxygen 1.6.0   Back to index