~ubuntu-branches/ubuntu/precise/code-saturne/precise

« back to all changes in this revision

Viewing changes to src/mesh/cs_join_split.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2011-11-24 00:00:08 UTC
  • mfrom: (6.1.9 sid)
  • Revision ID: package-import@ubuntu.com-20111124000008-2vo99e38267942q5
Tags: 2.1.0-3
Install a missing file

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __CS_JOIN_SPLIT_H__
 
2
#define __CS_JOIN_SPLIT_H__
 
3
 
 
4
/*============================================================================
 
5
 * Set of subroutines for cutting faces during face joining.
 
6
 *===========================================================================*/
 
7
 
 
8
/*
 
9
  This file is part of Code_Saturne, a general-purpose CFD tool.
 
10
 
 
11
  Copyright (C) 1998-2011 EDF S.A.
 
12
 
 
13
  This program is free software; you can redistribute it and/or modify it under
 
14
  the terms of the GNU General Public License as published by the Free Software
 
15
  Foundation; either version 2 of the License, or (at your option) any later
 
16
  version.
 
17
 
 
18
  This program is distributed in the hope that it will be useful, but WITHOUT
 
19
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 
20
  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 
21
  details.
 
22
 
 
23
  You should have received a copy of the GNU General Public License along with
 
24
  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
 
25
  Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
26
*/
 
27
 
 
28
/*----------------------------------------------------------------------------*/
 
29
 
 
30
/*----------------------------------------------------------------------------
 
31
 * Local headers
 
32
 *---------------------------------------------------------------------------*/
 
33
 
 
34
#include "cs_base.h"
 
35
#include "cs_join_mesh.h"
 
36
#include "cs_join_set.h"
 
37
#include "cs_join_util.h"
 
38
 
 
39
/*---------------------------------------------------------------------------*/
 
40
 
 
41
BEGIN_C_DECLS
 
42
 
 
43
/*============================================================================
 
44
 * Macro and type definitions
 
45
 *===========================================================================*/
 
46
 
 
47
/*============================================================================
 
48
 * Public function prototypes
 
49
 *===========================================================================*/
 
50
 
 
51
/*----------------------------------------------------------------------------
 
52
 * Build new faces after the vertex fusion operation. Split initial faces into
 
53
 * subfaces and keep the historic between initial/final faces.
 
54
 *
 
55
 * parameters:
 
56
 *   param           <-- set of user-defined parameters
 
57
 *   face_normal     <-- array of normal vector on each face
 
58
 *   edges           <-- list of edges
 
59
 *   work            <-> pointer to a cs_join_mesh_t structure
 
60
 *   old2new_history <-> relation between new faces and old one:
 
61
 *                       old global face -> new local face
 
62
 *---------------------------------------------------------------------------*/
 
63
 
 
64
void
 
65
cs_join_split_faces(cs_join_param_t          param,
 
66
                    const cs_real_t          face_normal[],
 
67
                    const cs_join_edges_t   *edges,
 
68
                    cs_join_mesh_t         **work,
 
69
                    cs_join_gset_t         **old2new_history);
 
70
 
 
71
/*----------------------------------------------------------------------------
 
72
 * Update after face splitting of the local join mesh structure.
 
73
 * Send back to the original rank the new face description.
 
74
 *
 
75
 * parameters:
 
76
 *   param           <-- set of user-defined parameters
 
77
 *   work_mesh       <-- distributed mesh on faces to join
 
78
 *   gnum_rank_index <-- index on ranks for the old global face numbering
 
79
 *   o2n_hist        <-> old global face -> new local face numbering
 
80
 *   local_mesh      <-> mesh on local selected faces to be joined
 
81
 *---------------------------------------------------------------------------*/
 
82
 
 
83
void
 
84
cs_join_split_update_struct(const cs_join_param_t   param,
 
85
                            const cs_join_mesh_t   *work_mesh,
 
86
                            const fvm_gnum_t        gnum_rank_index[],
 
87
                            cs_join_gset_t        **o2n_hist,
 
88
                            cs_join_mesh_t        **local_mesh);
 
89
 
 
90
/*---------------------------------------------------------------------------*/
 
91
 
 
92
END_C_DECLS
 
93
 
 
94
#endif /* __CS_JOIN_SPLIT_H__ */