OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
linearelasticmaterial.C
Go to the documentation of this file.
1 /*
2  *
3  * ##### ##### ###### ###### ### ###
4  * ## ## ## ## ## ## ## ### ##
5  * ## ## ## ## #### #### ## # ##
6  * ## ## ## ## ## ## ## ##
7  * ## ## ## ## ## ## ## ##
8  * ##### ##### ## ###### ## ##
9  *
10  *
11  * OOFEM : Object Oriented Finite Element Code
12  *
13  * Copyright (C) 1993 - 2013 Borek Patzak
14  *
15  *
16  *
17  * Czech Technical University, Faculty of Civil Engineering,
18  * Department of Structural Mechanics, 166 29 Prague, Czech Republic
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Lesser General Public
22  * License as published by the Free Software Foundation; either
23  * version 2.1 of the License, or (at your option) any later version.
24  *
25  * This program is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28  * Lesser General Public License for more details.
29  *
30  * You should have received a copy of the GNU Lesser General Public
31  * License along with this library; if not, write to the Free Software
32  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33  */
34 
35 #include "linearelasticmaterial.h"
36 #include "gausspoint.h"
37 #include "../sm/CrossSections/simplecrosssection.h"
38 #include "../sm/Materials/structuralms.h"
39 #include "dynamicinputrecord.h"
40 
41 namespace oofem {
44 {
45  IRResultType result; // Required by IR_GIVE_FIELD macro
46 
47  preCastStiffnessReduction = 0.99999999;
49 
51 }
52 
53 
54 void
56 {
59 }
60 
61 
62 void
64 {
65  FloatArray strainVector, strainIncrement;
66  FloatMatrix d;
67  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
68 
69  this->give3dMaterialStiffnessMatrix(d, TangentStiffness, gp, tStep);
70 
71  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
72  this->giveStressDependentPartOfStrainVector_3d(strainVector, gp, reducedStrain, tStep, VM_Total);
73  answer.beProductOf(d, strainVector);
74  } else { // changes in material stiffness ->> incremental formulation
75  this->giveStressDependentPartOfStrainVector_3d(strainVector, gp, reducedStrain, tStep, VM_Incremental);
76  strainIncrement.beDifferenceOf( strainVector, status->giveStrainVector() );
77 
78  answer.beProductOf(d, strainIncrement);
79  answer.add( status->giveStressVector() );
80  }
81 
82  // update gp
83  status->letTempStrainVectorBe(reducedStrain);
84  status->letTempStressVectorBe(answer);
85 }
86 
87 
88 
89 void
91 {
92  FloatArray strainVector, strainIncrement;
93  FloatMatrix d;
94  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
95 
96  this->give3dMaterialStiffnessMatrix(d, TangentStiffness, gp, tStep);
97 
98  d.at(1, 1) -= d.at(1, 3) * d.at(3, 1) / d.at(3, 3);
99  d.at(2, 1) -= d.at(2, 3) * d.at(3, 1) / d.at(3, 3);
100  d.at(1, 2) -= d.at(1, 3) * d.at(3, 2) / d.at(3, 3);
101  d.at(2, 2) -= d.at(2, 3) * d.at(3, 2) / d.at(3, 3);
102 
103  d.at(3, 1) = 0.0;
104  d.at(3, 2) = 0.0;
105  d.at(3, 3) = 0.0;
106  d.at(2, 3) = 0.0;
107  d.at(1, 3) = 0.0;
108 
109 
110  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
111  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Total);
112  answer.beProductOf(d, strainVector);
113  } else { // changes in material stiffness ->> incremental formulation
114  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Incremental);
115  strainIncrement.beDifferenceOf( strainVector, status->giveStrainVector() );
116 
117  answer.beProductOf(d, strainIncrement);
118  answer.add( status->giveStressVector() );
119  }
120 
121  answer.beProductOf(d, strainVector);
122 
123  // update gp
124  status->letTempStrainVectorBe(reducedStrain);
125  status->letTempStressVectorBe(answer);
126 }
127 
128 void
130 {
131  FloatArray strainVector, strainIncrement;
132  FloatMatrix d;
133  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
134 
135  this->givePlaneStrainStiffMtrx(d, TangentStiffness, gp, tStep);
136 
137  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
138  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Total);
139  answer.beProductOf(d, strainVector);
140  } else { // changes in material stiffness ->> incremental formulation
141  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Incremental);
142  strainIncrement.beDifferenceOf( strainVector, status->giveStrainVector() );
143 
144  answer.beProductOf(d, strainIncrement);
145  answer.add( status->giveStressVector() );
146  }
147 
148  // update gp
149  status->letTempStrainVectorBe(reducedStrain);
150  status->letTempStressVectorBe(answer);
151 }
152 
153 
154 void
156 {
157  FloatArray strainVector, strainIncrement;
158  FloatMatrix d;
159  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
160 
161  this->givePlaneStressStiffMtrx(d, TangentStiffness, gp, tStep);
162 
163  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
164  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Total);
165  answer.beProductOf(d, strainVector);
166  } else { // changes in material stiffness ->> incremental formulation
167  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Incremental);
168  strainIncrement.beDifferenceOf( strainVector, status->giveStrainVector() );
169 
170  answer.beProductOf(d, strainIncrement);
171  answer.add( status->giveStressVector() );
172  }
173 
174  // update gp
175  status->letTempStrainVectorBe(reducedStrain);
176  status->letTempStressVectorBe(answer);
177 }
178 
179 
180 void
182 {
183  FloatArray strainVector, strainIncrement;
184  FloatMatrix d;
185  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
186 
187  this->give1dStressStiffMtrx(d, TangentStiffness, gp, tStep);
188 
189  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
190  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Total);
191  answer.beProductOf(d, strainVector);
192  } else { // changes in material stiffness ->> incremental formulation
193  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Incremental);
194  strainIncrement.beDifferenceOf( strainVector, status->giveStrainVector() );
195 
196  answer.beProductOf(d, strainIncrement);
197  answer.add( status->giveStressVector() );
198  }
199 
200  // update gp
201  status->letTempStrainVectorBe(reducedStrain);
202  status->letTempStressVectorBe(answer);
203 }
204 
205 
206 void
208 {
209  // reducedStrain contains the stress components tau_zy and tau_zx, computed as // tau_zy = G * theta * ( x + dPsi/dy )
210  // tau_zx = G * theta * (-y + dPsi/dx )
211  // where x and y are the global coordinates of the Gauss point (the origin must be at the centroid of the cross section)
212  // G is the shear modulus of elasticity and theta is the relative twist (dPhi_z/dz)
213  FloatArray gcoords;
214  Element *elem = gp->giveElement();
215  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
216  double G = this->giveShearModulus();
217  elem->computeGlobalCoordinates( gcoords, gp->giveNaturalCoordinates() );
218  answer.resize(2);
219 
220  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
221  answer.at(1) = reducedStrain.at(1);
222  answer.at(2) = reducedStrain.at(2);
223 
224  answer.times(G);
225  } else { // changes in material stiffness ->> incremental formulation
226  FloatArray strainIncrement;
227  strainIncrement.beDifferenceOf( reducedStrain, status->giveStrainVector() );
228 
229  answer.at(1) = strainIncrement.at(1);
230  answer.at(2) = strainIncrement.at(2);
231  answer.times(G);
232 
233  if ( ( tStep->giveIntrinsicTime() < this->castingTime ) ) {
234  answer.times(1. - this->preCastStiffnessReduction);
235  }
236 
237  answer.add( status->giveStressVector() );
238  }
239 
240  // update gp
241 
242  status->letTempStrainVectorBe(reducedStrain);
243  status->letTempStressVectorBe(answer);
244 }
245 
246 
247 void
249 {
250  FloatArray strainVector, strainIncrement;
251  FloatMatrix d;
252  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
253 
254  this->give2dBeamLayerStiffMtrx(d, TangentStiffness, gp, tStep);
255 
256  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
257  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Total);
258  answer.beProductOf(d, strainVector);
259  } else { // changes in material stiffness ->> incremental formulation
260  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Incremental);
261  strainIncrement.beDifferenceOf( strainVector, status->giveStrainVector() );
262 
263  answer.beProductOf(d, strainIncrement);
264  answer.add( status->giveStressVector() );
265  }
266 
267  // update gp
268  status->letTempStrainVectorBe(reducedStrain);
269  status->letTempStressVectorBe(answer);
270 }
271 
272 
273 void
275 {
276  FloatArray strainVector, strainIncrement;
277  FloatMatrix d;
278  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
279 
280  this->givePlateLayerStiffMtrx(d, TangentStiffness, gp, tStep);
281 
282  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
283  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Total);
284  answer.beProductOf(d, strainVector);
285  } else { // changes in material stiffness ->> incremental formulation
286  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Incremental);
287  strainIncrement.beDifferenceOf( strainVector, status->giveStrainVector() );
288 
289  answer.beProductOf(d, strainIncrement);
290  answer.add( status->giveStressVector() );
291  }
292 
293  // update gp
294  status->letTempStrainVectorBe(reducedStrain);
295  status->letTempStressVectorBe(answer);
296 }
297 
298 
299 void
301 {
302  FloatArray strainVector, strainIncrement;
303  FloatMatrix d;
304  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
305 
306  this->giveFiberStiffMtrx(d, TangentStiffness, gp, tStep);
307 
308  if ( this->castingTime < 0. ) { // no changes in material stiffness ->> total formulation
309  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Total);
310  answer.beProductOf(d, strainVector);
311  } else { // changes in material stiffness ->> incremental formulation
312  this->giveStressDependentPartOfStrainVector(strainVector, gp, reducedStrain, tStep, VM_Incremental);
313  strainIncrement.beDifferenceOf( strainVector, status->giveStrainVector() );
314 
315  answer.beProductOf(d, strainIncrement);
316  answer.add( status->giveStressVector() );
317  }
318 
319  // update gp
320  status->letTempStrainVectorBe(reducedStrain);
321  status->letTempStressVectorBe(answer);
322 }
323 
324 void
326 {
327  FloatArray fullFv;
328  StructuralMaterial :: giveFullVectorFormF(fullFv, reducedF, _PlaneStrain);
329 
330  FloatMatrix H;
331  H.beMatrixForm(fullFv);
332 
333  H(0, 0) -= 1.0;
334  H(1, 1) -= 1.0;
335  H(2, 2) -= 1.0;
336 
337 
338  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
339  const FloatArray &stressV = status->giveTempStressVector();
340 
341  FloatArray fullStressV;
342  StructuralMaterial :: giveFullSymVectorForm(fullStressV, stressV, _PlaneStrain);
343 
344  FloatMatrix stress;
345  stress.beMatrixFormOfStress(fullStressV);
346 
347 
348  double energyDens = giveEnergyDensity(gp, tStep);
349 
350 
351  FloatMatrix eshelbyStress(3, 3);
352  eshelbyStress.beTProductOf(H, stress);
353  eshelbyStress.negated();
354 
355  eshelbyStress(0, 0) += energyDens;
356  eshelbyStress(1, 1) += energyDens;
357  eshelbyStress(2, 2) += energyDens;
358 
359 
360  FloatArray eshelbyStressV;
361  eshelbyStressV.beVectorForm(eshelbyStress);
362  StructuralMaterial :: giveReducedVectorForm(answer, eshelbyStressV, _PlaneStrain);
363 }
364 
365 double
367 {
368  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
369  const FloatArray &strain = status->giveTempStrainVector();
370  const FloatArray &stress = status->giveTempStressVector();
371 
372  return 0.5 * stress.dotProduct(strain);
373 }
374 
375 int
377 {
378  StructuralMaterialStatus *status = static_cast< StructuralMaterialStatus * >( this->giveStatus(gp) );
379  if ( type == IST_ElasticStrainTensor ) {
380  this->giveStressDependentPartOfStrainVector(answer, gp, status->giveStrainVector(), tStep, VM_Total);
381  return 1;
382  } else {
383  return StructuralMaterial :: giveIPValue(answer, gp, type, tStep);
384  }
385 }
386 
387 
390 {
391  return new StructuralMaterialStatus(1, this->giveDomain(), gp);
392 }
393 } // end namespace oofem
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
void setField(int item, InputFieldType id)
virtual void giveRealStressVector_PlaneStress(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
void letTempStrainVectorBe(const FloatArray &v)
Assigns tempStrainVector to given vector v.
Definition: structuralms.h:137
virtual void give1dStressStiffMtrx(FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep)
Method for computing 1d stiffness matrix of receiver.
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
Definition: material.C:244
double giveEnergyDensity(GaussPoint *gp, TimeStep *tStep)
virtual void giveFiberStiffMtrx(FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep)
Method for computing 1d fiber stiffness matrix of receiver.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
#define _IFT_LinearElasticMaterial_preCastStiffRed
virtual void giveRealStressVector_PlateLayer(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
double & at(int i)
Coefficient access function.
Definition: floatarray.h:131
virtual void givePlaneStrainStiffMtrx(FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep)
Method for computing plane strain stiffness matrix of receiver.
This class implements a structural material status information.
Definition: structuralms.h:65
double preCastStiffnessReduction
artificial isotropic damage to reflect reduction in stiffness for time < castingTime.
virtual void givePlateLayerStiffMtrx(FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep)
Method for computing 2d plate layer stiffness matrix of receiver.
void beVectorForm(const FloatMatrix &aMatrix)
Reciever will be a vector with 9 components formed from a 3x3 matrix.
Definition: floatarray.C:992
Abstract base class for all finite elements.
Definition: element.h:145
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Element * giveElement()
Returns corresponding element to receiver.
Definition: gausspoint.h:188
void negated()
Changes sign of receiver values.
Definition: floatmatrix.C:1605
void giveStressDependentPartOfStrainVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrainVector, TimeStep *tStep, ValueModeType mode)
Method for subtracting from reduced space strain vector its stress-independent parts (caused by tempe...
virtual void giveRealStressVector_Fiber(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
void beDifferenceOf(const FloatArray &a, const FloatArray &b)
Sets receiver to be a - b.
Definition: floatarray.C:341
static void giveFullSymVectorForm(FloatArray &answer, const FloatArray &vec, MaterialMode matMode)
Converts the reduced unsymmetric Voigt vector (2nd order tensor) to full form.
virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &strain, TimeStep *tStep)
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
void beMatrixForm(const FloatArray &aArray)
Definition: floatmatrix.C:1657
virtual void giveRealStressVector_2dBeamLayer(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
virtual void giveRealStressVector_3dDegeneratedShell(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep)
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
double dotProduct(const FloatArray &x) const
Computes the dot product (or inner product) of receiver and argument.
Definition: floatarray.C:463
static void giveReducedVectorForm(FloatArray &answer, const FloatArray &vec, MaterialMode matMode)
Converts the full symmetric Voigt vector (2nd order tensor) to reduced form.
virtual void give3dMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Computes full 3d material stiffness matrix at given integration point, time, respecting load history ...
virtual void giveRealStressVector_PlaneStrain(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Default implementation relies on giveRealStressVector_3d.
virtual void giveRealStressVector_Warping(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
void giveStressDependentPartOfStrainVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrainVector, TimeStep *tStep, ValueModeType mode)
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
Definition: floatarray.C:676
const FloatArray & giveTempStrainVector() const
Returns the const pointer to receiver&#39;s temporary strain vector.
Definition: structuralms.h:115
double at(int i, int j) const
Coefficient access function.
Definition: floatmatrix.h:176
double giveIntrinsicTime()
Returns intrinsic time, e.g. time in which constitutive model is evaluated.
Definition: timestep.h:148
virtual void giveRealStressVector_1d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
Abstract base class representing a material status information.
Definition: matstatus.h:84
Class representing vector of real numbers.
Definition: floatarray.h:82
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
virtual MaterialStatus * CreateStatus(GaussPoint *gp) const
Creates new copy of associated status and inserts it into given integration point.
void beMatrixFormOfStress(const FloatArray &aArray)
Reciever will be a 3x3 matrix formed from a vector with either 9 or 6 components. ...
Definition: floatmatrix.C:1774
void letTempStressVectorBe(const FloatArray &v)
Assigns tempStressVector to given vector v.
Definition: structuralms.h:135
const FloatArray & giveStressVector() const
Returns the const pointer to receiver&#39;s stress vector.
Definition: structuralms.h:107
Class representing the general Input Record.
Definition: inputrecord.h:101
void beTProductOf(const FloatMatrix &a, const FloatMatrix &b)
Assigns to the receiver product of .
Definition: floatmatrix.C:367
Class representing the a dynamic Input Record.
void times(double s)
Multiplies receiver with scalar.
Definition: floatarray.C:818
Domain * giveDomain() const
Definition: femcmpnn.h:100
virtual void give2dBeamLayerStiffMtrx(FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep)
Method for computing 2d beam layer stiffness matrix of receiver.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
double castingTime
Casting time.
Definition: material.h:113
#define IR_GIVE_OPTIONAL_FIELD(__ir, __value, __id)
Macro facilitating the use of input record reading methods.
Definition: inputrecord.h:78
virtual void giveEshelbyStressVector_PlaneStrain(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep)
Prototype for computation of Eshelby stress.
const FloatArray & giveTempStressVector() const
Returns the const pointer to receiver&#39;s temporary stress vector.
Definition: structuralms.h:117
the oofem namespace is to define a context or scope in which all oofem names are defined.
static void giveFullVectorFormF(FloatArray &answer, const FloatArray &strainVector, MaterialMode matMode)
Converts the reduced deformation gradient Voigt vector (2nd order tensor).
virtual void givePlaneStressStiffMtrx(FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep)
Method for computing plane stress stiffness matrix of receiver.
const FloatArray & giveStrainVector() const
Returns the const pointer to receiver&#39;s strain vector.
Definition: structuralms.h:105
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
virtual int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords)
Computes the global coordinates from given element&#39;s local coordinates.
Definition: element.C:1207
void add(const FloatArray &src)
Adds array src to receiver.
Definition: floatarray.C:156
const FloatArray & giveNaturalCoordinates()
Returns coordinate array of receiver.
Definition: gausspoint.h:138
void resize(int s)
Resizes receiver towards requested size.
Definition: floatarray.C:631

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:29 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011