📄 bf_node.h
字号:
/* * Copyright (C) 1997-2006 P. Dular, C. Geuzaine * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. * * Please report all bugs and problems to <getdp@geuz.org>. */#ifndef _BF_NODE_H_#define _BF_NODE_H_/* Barycentric functions */#define POI1 ( 1. ) #define LIN1 ( 0.5 * (1.-u) )#define LIN2 ( 0.5 * (1.+u) ) #define TRI1 ( 1.-u-v )#define TRI2 ( u )#define TRI3 ( v ) #define QUA1 ( 0.25 * (1.-u) * (1.-v) )#define QUA2 ( 0.25 * (1.+u) * (1.-v) )#define QUA3 ( 0.25 * (1.+u) * (1.+v) )#define QUA4 ( 0.25 * (1.-u) * (1.+v) ) #define TET1 ( 1.-u-v-w )#define TET2 ( u )#define TET3 ( v )#define TET4 ( w ) #define HEX1 ( (1.-u) * (1.-v) * (1.-w) * 0.125 )#define HEX2 ( (1.+u) * (1.-v) * (1.-w) * 0.125 )#define HEX3 ( (1.+u) * (1.+v) * (1.-w) * 0.125 )#define HEX4 ( (1.-u) * (1.+v) * (1.-w) * 0.125 )#define HEX5 ( (1.-u) * (1.-v) * (1.+w) * 0.125 )#define HEX6 ( (1.+u) * (1.-v) * (1.+w) * 0.125 )#define HEX7 ( (1.+u) * (1.+v) * (1.+w) * 0.125 )#define HEX8 ( (1.-u) * (1.+v) * (1.+w) * 0.125 ) #define PRI1 ( (1.-u-v) * (1.-w) * 0.5 )#define PRI2 ( u * (1.-w) * 0.5 )#define PRI3 ( v * (1.-w) * 0.5 )#define PRI4 ( (1.-u-v) * (1.+w) * 0.5 )#define PRI5 ( u * (1.+w) * 0.5 )#define PRI6 ( v * (1.+w) * 0.5 ) #define PYR1 ( 0.25 * ((1.-u) * (1.-v) - w + r) )#define PYR2 ( 0.25 * ((1.+u) * (1.-v) - w - r) )#define PYR3 ( 0.25 * ((1.+u) * (1.+v) - w + r) )#define PYR4 ( 0.25 * ((1.-u) * (1.+v) - w - r) )#define PYR5 ( w )/* And their gradients */#define dLIN1u ( -0.5 )#define dLIN2u ( 0.5 ) #define dTRI1u ( -1. )#define dTRI1v ( -1. )#define dTRI2u ( 1. )#define dTRI2v ( 0. )#define dTRI3u ( 0. )#define dTRI3v ( 1. ) #define dQUA1u ( -0.25 * (1.-v) )#define dQUA1v ( -0.25 * (1.-u) )#define dQUA2u ( 0.25 * (1.-v) )#define dQUA2v ( -0.25 * (1.+u) )#define dQUA3u ( 0.25 * (1.+v) )#define dQUA3v ( 0.25 * (1.+u) )#define dQUA4u ( -0.25 * (1.+v) )#define dQUA4v ( 0.25 * (1.-u) )#define dTET1u ( -1. )#define dTET1v ( -1. )#define dTET1w ( -1. )#define dTET2u ( 1. )#define dTET2v ( 0. )#define dTET2w ( 0. )#define dTET3u ( 0. )#define dTET3v ( 1. )#define dTET3w ( 0. )#define dTET4u ( 0. )#define dTET4v ( 0. )#define dTET4w ( 1. )#define dHEX1u ( -0.125 * (1.-v) * (1.-w) )#define dHEX1v ( -0.125 * (1.-u) * (1.-w) )#define dHEX1w ( -0.125 * (1.-u) * (1.-v) )#define dHEX2u ( 0.125 * (1.-v) * (1.-w) )#define dHEX2v ( -0.125 * (1.+u) * (1.-w) )#define dHEX2w ( -0.125 * (1.+u) * (1.-v) )#define dHEX3u ( 0.125 * (1.+v) * (1.-w) )#define dHEX3v ( 0.125 * (1.+u) * (1.-w) )#define dHEX3w ( -0.125 * (1.+u) * (1.+v) )#define dHEX4u ( -0.125 * (1.+v) * (1.-w) )#define dHEX4v ( 0.125 * (1.-u) * (1.-w) )#define dHEX4w ( -0.125 * (1.-u) * (1.+v) )#define dHEX5u ( -0.125 * (1.-v) * (1.+w) )#define dHEX5v ( -0.125 * (1.-u) * (1.+w) )#define dHEX5w ( 0.125 * (1.-u) * (1.-v) )#define dHEX6u ( 0.125 * (1.-v) * (1.+w) )#define dHEX6v ( -0.125 * (1.+u) * (1.+w) )#define dHEX6w ( 0.125 * (1.+u) * (1.-v) )#define dHEX7u ( 0.125 * (1.+v) * (1.+w) )#define dHEX7v ( 0.125 * (1.+u) * (1.+w) )#define dHEX7w ( 0.125 * (1.+u) * (1.+v) )#define dHEX8u ( -0.125 * (1.+v) * (1.+w) )#define dHEX8v ( 0.125 * (1.-u) * (1.+w) )#define dHEX8w ( 0.125 * (1.-u) * (1.+v) )#define dPRI1u (-0.5 * (1.-w) )#define dPRI1v ( -0.5 * (1.-w) )#define dPRI1w ( -0.5 * (1.-u-v) )#define dPRI2u ( 0.5 * (1.-w) )#define dPRI2v ( 0. )#define dPRI2w ( -0.5 * u )#define dPRI3u ( 0. )#define dPRI3v ( 0.5 * (1.-w) )#define dPRI3w ( -0.5 * v )#define dPRI4u ( -0.5 * (1.+w) )#define dPRI4v ( -0.5 * (1.+w) )#define dPRI4w ( 0.5 * (1.-u-v) )#define dPRI5u ( 0.5 * (1.+w) )#define dPRI5v ( 0. )#define dPRI5w ( 0.5 * u )#define dPRI6u ( 0. )#define dPRI6v ( 0.5 * (1.+w) )#define dPRI6w ( 0.5 * v )#define dPYR1u ( 0.25 * ( -(1.-v) + v*w/(1.-w) ) )#define dPYR1v ( 0.25 * ( -(1.-u) + u*w/(1.-w) ) ) #define dPYR1w ( 0.25 * ( -1. + u*v/DSQU(1.-w) ) )#define dPYR2u ( 0.25 * ( (1.-v) + v*w/(1.-w) ) ) #define dPYR2v ( 0.25 * ( -(1.+u) + u*w/(1.-w) ) ) #define dPYR2w ( 0.25 * ( -1. + u*v/DSQU(1.-w) ) )#define dPYR3u ( 0.25 * ( (1.+v) + v*w/(1.-w) ) )#define dPYR3v ( 0.25 * ( (1.+u) + u*w/(1.-w) ) )#define dPYR3w ( 0.25 * ( -1. + u*v/DSQU(1.-w) ) )#define dPYR4u ( 0.25 * ( -(1.+v) + v*w/(1.-w) ) )#define dPYR4v ( 0.25 * ( (1.-u) + u*w/(1.-w) ) )#define dPYR4w ( 0.25 * ( -1. + u*v/DSQU(1.-w) ) )#define dPYR5u ( 0. )#define dPYR5v ( 0. )#define dPYR5w ( 1. )#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -