47ContactPair :: giveTangentVector(
int i)
const
54 OOFEM_ERROR(
"ContactPair:Wrong number of tangent vector");
59ContactPair :: givePreviousTangentVector(
int i)
const
74 OOFEM_ERROR(
"ContactPair:Wrong number of tangent vector");
78std::vector<FloatArray>
79ContactPair :: giveTangentVectors()
const {
80 std::vector<FloatArray> ret;
81 for (
int i = 1; i <= 2; i++) {
87std::vector<FloatArray>
88ContactPair :: givePreviousTangentVectors()
const {
89 std::vector<FloatArray> ret;
90 for (
int i = 1; i <= 2; i++) {
100 this->
master->computeNmatrix(answer_master);
101 this->
slave->computeNmatrix(answer_slave);
102 answer_master.
times(-1);
108 answer.
resize(master_nrows, master_ncols+slave_ncols);
119ContactPair :: compute_dNdxi_matrices(std::vector<FloatMatrix> &dNdxi)
122 auto sd = this->
slave->giveSurfaceDimension();
124 for(
int i = 1; i <=
master->giveSurfaceDimension(); i++) {
126 master->compute_dNdxi_matrix(dNm, i);
127 slave->compute_dNdxi_matrix(dNs, i);
133 dN.
resize(master_nrows, slave_ncols + master_ncols);
139 dNdxi.emplace_back(dN);
154ContactPair :: initContactPoint()
171 this->
master->giveLocationArray(loc, dofs, ns);
172 this->
slave->giveLocationArray(loc_slave, dofs, ns);
204 this->
master->computeVectorOf(u, tStep, answer);
205 this->
slave->computeVectorOf(u, tStep, s_vec);
213ContactPair :: computeContactPointDisplacement()
const
226ContactPair :: computeSlaveAABB()
229 auto coords =
slave->giveGlobalCoordinates();
230 double x = coords.at(1);
231 double y = coords.at(2);
232 double z = coords.at(3);
Axis-aligned bounding box.
Index giveSize() const
Returns the size of receiver.
void copySubVector(const FloatArray &src, int si)
void resize(Index rows, Index cols)
int giveNumberOfColumns() const
Returns number of columns of receiver.
void setSubMatrix(const FloatMatrix &src, int sr, int sc)
void zero()
Zeroes all coefficient of receiver.
int giveNumberOfRows() const
Returns number of rows of receiver.
void followedBy(const IntArray &b, int allocChunk=0)