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