Skip to content
Snippets Groups Projects
Commit 47411592 authored by Éric Béchet's avatar Éric Béchet
Browse files

No commit message

No commit message
parent be350578
No related branches found
No related tags found
No related merge requests found
......@@ -69,6 +69,67 @@ class STensor43 {
return *this;
}*/
void print(const char *) const;
STensor43 transpose (int n, int m) const
{
STensor43 ithis;
if ((n==0 && m==1) || (n==1 && m==0))
{
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
ithis(i,j,k,l) = (*this)(j,i,k,l);
return ithis;
}
if ((n==0 && m==2) || (n==2 && m==0))
{
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
ithis(i,j,k,l) = (*this)(k,j,i,l);
return ithis;
}
if ((n==0 && m==3) || (n==3 && m==0))
{
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
ithis(i,j,k,l) = (*this)(l,j,k,i);
return ithis;
}
if ((n==1 && m==2) || (n==2 && m==1))
{
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
ithis(i,j,k,l) = (*this)(i,k,j,l);
return ithis;
}
if ((n==1 && m==3) || (n==3 && m==1))
{
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
ithis(i,j,k,l) = (*this)(i,l,k,j);
return ithis;
}
if ((n==2 && m==3) || (n==3 && m==2))
{
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
ithis(i,j,k,l) = (*this)(i,j,l,k);
return ithis;
}
return ithis+=(*this);
}
};
// tensor product
......
......@@ -65,6 +65,36 @@ void elasticitySolver::setMesh(const std::string &meshFileName)
LagrangeMultiplierSpace = new ScalarLagrangeFunctionSpace(_tag+1);
}
void elasticitySolver::exportKb()
{
FILE *f = fopen ( "K.txt", "w" );
double valeur;
std::string sysname = "A";
for ( int i = 0 ; i < pAssembler->sizeOfR() ; i ++ )
{
for ( int j = 0 ; j < pAssembler->sizeOfR() ; j ++ )
{
pAssembler->getLinearSystem ( sysname )->getFromMatrix ( i,j, valeur );
fprintf ( f,"%+e ",valeur ) ;
}
fprintf ( f,"\n" );
}
fclose ( f );
f = fopen ( "b.txt", "w" );
for ( int i = 0 ; i < pAssembler->sizeOfR() ; i ++ )
{
pAssembler->getLinearSystem ( sysname )->getFromRightHandSide ( i,valeur );
fprintf ( f,"%+e\n",valeur ) ;
}
fclose ( f );
}
void elasticitySolver::solve()
{
......
......@@ -93,6 +93,7 @@ class elasticitySolver
virtual void setMesh(const std::string &meshFileName);
void solve();
void postSolve();
void exportKb();
void getSolutionOnElement(MElement *el, fullMatrix<double> &sol);
virtual PView *buildDisplacementView(const std::string postFileName);
virtual PView *buildStressesView(const std::string postFileName);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment