コード例 #1
0
ファイル: SectionAggregator.cpp プロジェクト: lge88/OpenSees
const Matrix &
SectionAggregator::getInitialTangent(void)
{
  int i = 0;

  int theSectionOrder = 0;

  // Zero before assembly
  ks->Zero();

  if (theSection) {
    const Matrix &kSec = theSection->getInitialTangent();
    theSectionOrder = theSection->getOrder();

    for (i = 0; i < theSectionOrder; i++)
      for (int j = 0; j < theSectionOrder; j++)
	(*ks)(i,j) = kSec(i,j);
  }
  
  int order = theSectionOrder + numMats;

  for ( ; i < order; i++)
    (*ks)(i,i) = theAdditions[i-theSectionOrder]->getInitialTangent();
  
  return *ks;
}
コード例 #2
0
ファイル: SectionAggregator.cpp プロジェクト: lcpt/xc
//! @brief Returns the initial tangent stiffness matrix.
const XC::Matrix &XC::SectionAggregator::getInitialTangent(void) const
  {
    int theSectionOrder= 0;

    // Zero before assembly
    ks->Zero();

    if(theSection)
      {
        const Matrix &kSec= theSection->getInitialTangent();
        theSectionOrder= theSection->getOrder();
        for(register int i= 0; i < theSectionOrder; i++)
          for(register int j= 0; j < theSectionOrder; j++)
            (*ks)(i,j)= kSec(i,j);
      }
    theAdditions.getInitialTangent(*ks,theSectionOrder);
    return *ks;
  }