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) );
135 if ( !( ( size == 0 ) || ( size == 6 ) ) ) {
140 double n1 = 0.0, n2 = 0.0;
142 for (
int j = 1; j <= 3; j++ ) {
144 n1 += normals.
at(j) * normals.
at(j);
145 lcs.
at(2, j) = normals.
at(j + 3);
146 n2 += normals.
at(j + 3) * normals.
at(j + 3);
151 if ( ( n1 <= 1.e-6 ) || ( n2 <= 1.e-6 ) ) {
155 for (
int j = 1; j <= 3; j++ ) {
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Abstract base class for all nonlocal barriers.
Abstract base class for all nonlocal materials.
#define _IFT_SymmetryBarrier_normals
double & at(int i)
Coefficient access function.
virtual void applyConstraint(const FloatArray &c1, const FloatArray &c2, double &weight, bool &shieldFlag, NonlocalMaterialExtensionInterface *nei)
Abstract method modifying the integration weight between master (c1) and source (c2) point...
int & at(int i)
Coefficient access function.
Implementation of symmetry nonlocal barrier.
double at(int i, int j) const
Coefficient access function.
#define _IFT_SymmetryBarrier_origin
Class representing vector of real numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
int giveSize() const
Returns the size of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
#define _IFT_SymmetryBarrier_activemask
REGISTER_NonlocalBarrier(PolylineNonlocalBarrier)
virtual ~SymmetryBarrier()
Destructor.
#define OOFEM_WARNING(...)
virtual double computeWeightFunction(double distance)
Evaluates the basic nonlocal weight function for a given distance between interacting points...