libsurf
Programmer's Documentation

smbodymesh.h (r6227/r5337)
1 
2 /* Copyright (C) 2015 David Eller <david@larosterna.com>
3  *
4  * Commercial License Usage
5  * Licensees holding valid commercial licenses may use this file in accordance
6  * with the terms contained in their respective non-exclusive license agreement.
7  * For further information contact david@larosterna.com .
8  *
9  * GNU General Public License Usage
10  * Alternatively, this file may be used under the terms of the GNU General
11  * Public License version 3.0 as published by the Free Software Foundation and
12  * appearing in the file gpl.txt included in the packaging of this file.
13  */
14 
15 #ifndef SURF_SMBODYMESH_H
16 #define SURF_SMBODYMESH_H
17 
18 #include "forward.h"
19 #include <surf/surface.h>
20 #include <genua/point.h>
21 
28 {
29 public:
30 
32  SmBodyMesh(SurfacePtr s) : m_psf(s) {}
33 
35  void setMainPid(uint pid, uint mid=0) {m_pidmain = pid; m_mcid = mid;}
36 
38  uint setLongeron(Real u, uint pidcap, uint pidweb=NotFound);
39 
41  uint setFrame(Real v, uint pidcap, uint pidweb=NotFound);
42 
44  uint setBoxPid(const Vct2 & q1, const Vct2 & q2, uint pid, uint m_mcid);
45 
47  void grid(Real lmax, Real lmin, Real phimax);
48 
50  const Vct3 & vertex(uint i, uint j) const {
51  return m_pgrid(i,j);
52  }
53 
55  void addQuads(NstMesh & nst) const;
56 
58  const PointGrid<3> & findConnectors();
59 
61  uint rconnect(const SmWingMesh & wng, uint vi, NstMesh & nst) const;
62 
63 private:
64 
66  SurfacePtr m_psf;
67 
70 
73 
75  Vector m_umean, m_vmean;
76 
78  uint m_mcid, m_pidmain;
79 
81  Indices m_pidlongweb, m_pidlongcap, m_pidframeweb, m_pidframecap;
82 
84  Indices m_ilong, m_jframe;
85 
87  Indices m_ibox, m_jbox, m_boxpid, m_boxmcid;
88 };
89 
90 #endif
Nastran mesh.
Definition: nstmesh.h:35
SmBodyMesh(SurfacePtr s)
initialize with pointer to surface
Definition: smbodymesh.h:32
Template for wing mesh generation.
Definition: smwingmesh.h:92
void setMainPid(uint pid, uint mid=0)
set pid to use for default surface elements
Definition: smbodymesh.h:35
uint setFrame(Real v, uint pidcap, uint pidweb=NotFound)
place a circumferential stiffener at v
Definition: smbodymesh.cpp:118
const PointGrid< 3 > & findConnectors()
access connection points (where stiffeners meet)
Definition: smbodymesh.cpp:130
void grid(Real lmax, Real lmin, Real phimax)
generate uv-space grid
Definition: smbodymesh.cpp:43
uint setLongeron(Real u, uint pidcap, uint pidweb=NotFound)
place a longitudinal stiffener at u
Definition: smbodymesh.cpp:106
PointGrid< 2 > m_uvgrid
uv-space mesh
Definition: smbodymesh.h:69
Indices m_ilong
indices for frame/longeron placement
Definition: smbodymesh.h:84
const Vct3 & vertex(uint i, uint j) const
retrieve grid vertex
Definition: smbodymesh.h:50
PointGrid< 3 > m_pgrid
point grid for quad mesh, connection points
Definition: smbodymesh.h:72
SurfacePtr m_psf
pointer to fuselage
Definition: smbodymesh.h:66
Indices m_ibox
register PID/MCID modifications on rectangular regions
Definition: smbodymesh.h:87
uint setBoxPid(const Vct2 &q1, const Vct2 &q2, uint pid, uint m_mcid)
register PID and MCID modification for rectangular box
Definition: smbodymesh.cpp:73
Structural mesh on body segment.
Definition: smbodymesh.h:27
Indices m_pidlongweb
stiffener pids
Definition: smbodymesh.h:81
uint m_mcid
property ids
Definition: smbodymesh.h:78
uint rconnect(const SmWingMesh &wng, uint vi, NstMesh &nst) const
connect to wing mesh at spanwise position vi
Definition: smbodymesh.cpp:190
void addQuads(NstMesh &nst) const
generate grid, add quad elements to nastran mesh
Definition: smbodymesh.cpp:143
Vector m_umean
mean u/v values for grid lines
Definition: smbodymesh.h:75
Generated on Mon Jan 24 2022 03:03:16 for libsurf by   doxygen 1.8.5