Thanks for the reply, I have the stack trace.
oofem.exe!oofem::Logger::writeELogMsg(oofem::Logger::logLevelType level, const char * _func, const char * _file, int _line, const char * format, ...) Line 280 C++
oofem.exe!oofem::FloatArray::assemble(const oofem::FloatArray & fe, const oofem::IntArray & loc) Line 543 C++
oofem.exe!oofem::TR_SHELL01::giveCharacteristicVector(oofem::FloatArray & answer, oofem::CharType mtrx, oofem::ValueModeType mode, oofem::TimeStep * tStep) Line 132 C++
oofem.exe!oofem::EngngModel::giveElementCharacteristicVector(oofem::FloatArray & answer, int num, oofem::CharType type, oofem::ValueModeType mode, oofem::TimeStep * tStep, oofem::Domain * domain) Line 1194 C++
oofem.exe!oofem::EngngModel::assembleVectorFromElements(oofem::FloatArray & answer, oofem::TimeStep * tStep, oofem::CharType type, oofem::ValueModeType mode, const oofem::UnknownNumberingScheme & s, oofem::Domain * domain, oofem::FloatArray * eNorms) Line 1112 C++
oofem.exe!oofem::EngngModel::assembleVector(oofem::FloatArray & answer, oofem::TimeStep * tStep, oofem::CharType type, oofem::ValueModeType mode, const oofem::UnknownNumberingScheme & s, oofem::Domain * domain, oofem::FloatArray * eNorms) Line 882 C++
oofem.exe!oofem::NonLinearStatic::assembleIncrementalReferenceLoadVectors(oofem::FloatArray & _incrementalLoadVector, oofem::FloatArray & _incrementalLoadVectorOfPrescribed, oofem::SparseNonLinearSystemNM::referenceLoadInputModeType _refMode, oofem::Domain * sourceDomain, oofem::TimeStep * tStep) Line 853 C++
oofem.exe!oofem::NonLinearStatic::proceedStep(int di, oofem::TimeStep * tStep) Line 471 C++
oofem.exe!oofem::NonLinearStatic::solveYourselfAt(oofem::TimeStep * tStep) Line 345 C++
oofem.exe!oofem::EngngModel::solveYourself() Line 562 C++
oofem.exe!oofem::NonLinearStatic::solveYourself() Line 338 C++
> oofem.exe!main(int argc, char * * argv) Line 286 C++
However, I tried to figure out how to solve: if there are no contributions, I forced to avoid to assemble in FloatArray :: assemble:
void FloatArray :: assemble(const FloatArray &fe, const IntArray &loc)
// Assembles the array fe (typically, the load vector of a finite
// element) to the receiver, using loc as location array.
{
int n = fe.giveSize();
# ifdef DEBUG
// if ( n != loc.giveSize() ) {
// OOFEM_ERROR("dimensions of 'fe' (%d) and 'loc' (%d) mismatch", fe.giveSize(), loc.giveSize() );
// }
# endif
if (n == loc.giveSize()) {
for ( int i = 1; i <= n; i++ ) {
int ii = loc.at(i);
if ( ii ) { // if non 0 coefficient,
this->at(ii) += fe.at(i);
}
}
}
}
So, the section "# ifdef DEBUG" is no more used. Do you think it could be right? I'm making a simplier example to check results.
(sorry, at this point this topic should be in Developed discussion...)
Thanks