/*
    C++ Mesh Generation Library
    Copyright (c) 2000echet <eric at bechet dot ca>

    This file is part of the C++ Mesh Generation Library.

    See the NOTICE & LICENSE files for conditions.
*/
// Projet de mailleur generique
// Fichier "fieldtypes.h"
// Structures de representation de champs physiques (types de base)
// Compilateur : Microsoft VisualC6 / GNU
// Auteur : Eric Bechet

//-------------------------------------------------------------------
#ifndef FIELD_TYPES_H
#define FIELD_TYPES_H
//--------------------------------------------------------------------



#include "valuefield.h"
/// donnees stockees dans un noeud
struct type_data_node
{
  /// distance au front
  scalar_type distance;
  /// temps au bout duquel le point est touche par la resine
  scalar_type time;
  /// remplissage
  scalar_type filling;
  /// temperature courante
  scalar_type temperature0;
  /// temperature 1 fois avant
  scalar_type temperature1;
  /// pression courante
  scalar_type pressure;
};


/// donnees stockees dans un element
struct type_data_element
{
  /// vitesse physique
  vector_type velocity;
  /// gradient de la distance
  vector_type gradient_distance;
  /// gradient de la pression ou vitesse de darcy dans le cas du RTM
  vector_type gradient_pressure;
  /// gradient de la temperature
  vector_type gradient_temperature;
  /// norme de la vitesse physique
  scalar_type norm_velocity;
  /// norme de la matrice hessienne en pression
  scalar_type norm_hessian_pressure;
  /// norme de la matrice hessienne en temperature
  scalar_type norm_hessian_temperature;
  /// pression moyenne dans l element
  scalar_type pressure;
  /// cuisson courante
  scalar_type alpha0;
  /// cuisson 1 fois avant
  scalar_type alpha1;
  /// exothermie courante
  scalar_type exothermy;
};

/// donnees stockees dans une zone
struct type_data_zone
{
  /// Tenseur de permeabilite
  tensor_type K;
  /// et son inverse
  tensor_type iK;
};

#endif // FIELD_TYPES_H

 
