1
#ifndef __CS_JOIN_SPLIT_H__
2
#define __CS_JOIN_SPLIT_H__
4
/*============================================================================
5
* Set of subroutines for cutting faces during face joining.
6
*===========================================================================*/
9
This file is part of Code_Saturne, a general-purpose CFD tool.
11
Copyright (C) 1998-2011 EDF S.A.
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
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
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.
28
/*----------------------------------------------------------------------------*/
30
/*----------------------------------------------------------------------------
32
*---------------------------------------------------------------------------*/
35
#include "cs_join_mesh.h"
36
#include "cs_join_set.h"
37
#include "cs_join_util.h"
39
/*---------------------------------------------------------------------------*/
43
/*============================================================================
44
* Macro and type definitions
45
*===========================================================================*/
47
/*============================================================================
48
* Public function prototypes
49
*===========================================================================*/
51
/*----------------------------------------------------------------------------
52
* Build new faces after the vertex fusion operation. Split initial faces into
53
* subfaces and keep the historic between initial/final faces.
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
*---------------------------------------------------------------------------*/
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);
71
/*----------------------------------------------------------------------------
72
* Update after face splitting of the local join mesh structure.
73
* Send back to the original rank the new face description.
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
*---------------------------------------------------------------------------*/
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);
90
/*---------------------------------------------------------------------------*/
94
#endif /* __CS_JOIN_SPLIT_H__ */