Go to the documentation of this file.
44SymmetryBarrier :: SymmetryBarrier(
int n,
Domain *aDomain) :
50SymmetryBarrier :: ~SymmetryBarrier()
55SymmetryBarrier :: applyConstraint(
const double cl,
const FloatArray &c1,
const FloatArray &c2,
double &weight,
60 int i, ii, jj, kk, mi, dim = c1.
giveSize();
66 for ( i = 1; i <= dim; i++ ) {
72 for ( mi = 1; mi <= 3; mi++ ) {
76 for ( d = 0.0, i = 1; i <= dim; i++ ) {
77 d += help.
at(i) *
lcs.at(mi, i);
80 for ( i = 1; i <= dim; i++ ) {
81 mc2.at(i) = c2.
at(i) - 2.0 *d *
lcs.at(mi, i);
90 for ( mi = 0; mi < 3; mi++ ) {
92 jj = ( mi + 1 ) % 3 + 1;
93 kk = ( mi + 2 ) % 3 + 1;
97 for ( d = 0.0, i = 1; i <= dim; i++ ) {
98 d += help.
at(i) *
lcs.at(kk, i);
102 for ( i = 1; i <= dim; i++ ) {
103 mc2.at(i) = c2.
at(i) - 2.0 * ( c2.
at(i) - (
origin.at(i) + d *
lcs.at(kk, i) ) );
114 for ( i = 1; i <= dim; i++ ) {
115 mc2.at(i) = c2.
at(i) - 2.0 * ( c2.
at(i) -
origin.at(i) );
133 if ( !( ( size == 0 ) || ( size == 6 ) ) ) {
138 double n1 = 0.0, n2 = 0.0;
140 for (
int j = 1; j <= 3; j++ ) {
149 if ( ( n1 <= 1.e-6 ) || ( n2 <= 1.e-6 ) ) {
153 for (
int j = 1; j <= 3; j++ ) {
159 lcs.at(3, 1) =
lcs.at(1, 2) *
lcs.at(2, 3) -
lcs.at(1, 3) *
lcs.at(2, 2);
160 lcs.at(3, 2) =
lcs.at(1, 3) *
lcs.at(2, 1) -
lcs.at(1, 1) *
lcs.at(2, 3);
161 lcs.at(3, 3) =
lcs.at(1, 1) *
lcs.at(2, 2) -
lcs.at(1, 2) *
lcs.at(2, 1);
165 if (
mask.giveSize() != 3 ) {
#define REGISTER_NonlocalBarrier(class)
Index giveSize() const
Returns the size of receiver.
virtual double computeWeightFunction(const double cl, const double distance) const
#define OOFEM_WARNING(...)
#define _IFT_SymmetryBarrier_activemask
#define _IFT_SymmetryBarrier_normals
#define _IFT_SymmetryBarrier_origin
This page is part of the
OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak
Bořek Patzák
Project e-mail:
oofem@fsv.cvut.cz
Generated at for OOFEM by
doxygen
1.15.0 written by Dimitri van Heesch,
© 1997-2011