OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
surface_buffer.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| surface_buffer ../starter/source/model/sets/surface_buffer.F
25!||--- called by ------------------------------------------------------
26!|| create_surface_from_element ../starter/source/model/sets/create_surface_from_element.F
27!||--- calls -----------------------------------------------------
28!|| quad_surface_buffer ../starter/source/model/sets/quad_surface_buffer.F
29!|| shell_surface_buffer ../starter/source/model/sets/shell_surface_buffer.F
30!|| shell_surface_buffer_remesh ../starter/source/model/sets/shell_surface_buffer_remesh.F
31!|| solid_surface_buffer ../starter/source/model/sets/solid_surface_buffer.F
32!||--- uses -----------------------------------------------------
33!||====================================================================
34 SUBROUTINE surface_buffer(
35 . IXS ,IXS10 ,IXC ,SH4TREE ,SH3TREE ,
36 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
37 . KNOD2ELTG ,NOD2ELTG ,NSEG ,IEXT ,IPARTC ,
38 . IPARTS ,IPARTG ,CLAUSE ,BUFTMPSURF,IAD_SURF ,
39 . OPT_O ,IPART ,KNOD2ELQ ,NOD2ELQ ,X ,
40 . IXQ ,KEYSET)
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE setdef_mod
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50#include "com04_c.inc"
51#include "param_c.inc"
52#include "scr17_c.inc"
53#include "remesh_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER IXS(NIXS,*),KNOD2ELS(*),NOD2ELS(*),IXS10(6,*),
58 . KNOD2ELC(*),NOD2ELC(*),KNOD2ELTG(*),NOD2ELTG(*),
59 . IXC(NIXC,*),IXTG(NIXTG,*),IPARTC(*),IPARTG(*),
60 . BUFTMPSURF(*),IPARTS(*),SH4TREE(*),SH3TREE(*),
61 . IPART(LIPART1,*),KNOD2ELQ(*),NOD2ELQ(*),IXQ(NIXQ,*)
62 INTEGER IEXT,NSEG,IAD_SURF,OPT_O
63 CHARACTER(LEN=NCHARFIELD) :: KEYSET
64 my_real X(3,*)
65!
66 TYPE (SET_) :: CLAUSE
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70C=======================================================================
71!------------------
72! counting / buffering CLAUSE surface segments from elems ( EXT / ALL )
73!---
74!
75! --- solid ---
76 IF ( clause%NB_SOLID > 0 ) CALL solid_surface_buffer(
77 . ixs ,ixs10 ,ixc ,ixtg ,clause ,
78 . knod2els ,nod2els ,knod2elc ,nod2elc ,knod2eltg,
79 . nod2eltg ,nseg ,iext ,buftmpsurf,iparts ,
80 . iad_surf ,keyset)
81!
82! --- shell + sh3n ---
83!
84 IF (nadmesh == 0) THEN
85 IF ( clause%NB_SH4N > 0 ) CALL shell_surface_buffer(
86 . ixc ,nixc ,2 ,5 ,3 ,
87 . nseg ,iad_surf ,opt_o ,buftmpsurf,clause)
88 IF ( clause%NB_SH3N > 0 .AND. numeltria == 0)
90 . ixtg ,nixtg ,2 ,4 ,7 ,
91 . nseg ,iad_surf ,opt_o ,buftmpsurf,clause)
92 ELSE
93 IF ( clause%NB_SH4N > 0 ) CALL shell_surface_buffer_remesh(
94 . ixc ,nixc ,2 ,5 ,3 ,
95 . nseg ,iad_surf ,buftmpsurf,clause ,ipartc ,
96 . ipart ,ksh4tree ,sh4tree )
97 IF ( clause%NB_SH3N > 0 .AND. numeltria == 0)
99 . ixtg ,nixtg ,2 ,4 ,7 ,
100 . nseg ,iad_surf ,buftmpsurf,clause ,ipartg,
101 . ipart ,ksh3tree ,sh3tree )
102 ENDIF ! IF (NADMESH == 0)
103!
104! --- quad --- external surface only ( EXT )
105!
106 IF ( clause%NB_QUAD > 0 ) CALL quad_surface_buffer(
107 . ixq ,iad_surf ,buftmpsurf ,nseg ,knod2elq ,
108 . nod2elq ,iext ,x ,clause)
109!---
110 RETURN
111 END
integer, parameter ncharfield
subroutine quad_surface_buffer(ixq, iad_surf, buftmpsurf, nseg, knod2elq, nod2elq, iext, x, clause)
subroutine shell_surface_buffer(ix, nix, nix1, nix2, ieltyp, nseg, iad_surf, opt_o, buftmpsurf, clause)
subroutine shell_surface_buffer_remesh(ix, nix, nix1, nix2, ieltyp, nseg, iad_surf, buftmpsurf, clause, iparte, ipart, kshtree, shtree)
subroutine solid_surface_buffer(ixs, ixs10, ixc, ixtg, clause, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, nseg, iext, buftmpsurf, iparts, iad_surf, keyset)
subroutine surface_buffer(ixs, ixs10, ixc, sh4tree, sh3tree, ixtg, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, nseg, iext, ipartc, iparts, ipartg, clause, buftmpsurf, iad_surf, opt_o, ipart, knod2elq, nod2elq, x, ixq, keyset)