Skip to content

Commit 52d9fcc

Browse files
committed
Fixed issue with processing part lists for body loads.
1 parent 5a2ef79 commit 52d9fcc

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

FEBio/FEBioFormat4.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1884,17 +1884,21 @@ void FEBioFormat4::ParseBodyLoad(FSStep* pstep, XMLTag& tag)
18841884
FEBioInputModel::PartInstance& part = *febio.GetInstance(0);
18851885
GObject* po = part.GetGObject();
18861886

1887-
GPart* pg = po->FindPartFromName(szelemSetName);
1888-
if (pg)
1887+
partList = febio.FindNamedPartList(szelemSetName);
1888+
if (partList == nullptr)
18891889
{
1890-
partList = new GPartList(&gm);
1891-
partList->SetName(szelemSetName);
1892-
partList->add(pg->GetID());
1893-
gm.AddPartList(partList);
1894-
}
1895-
else
1896-
{
1897-
AddLogEntry("Cannot find part %s for %s", szelemSetName, name.c_str());
1890+
GPart* pg = po->FindPartFromName(szelemSetName);
1891+
if (pg)
1892+
{
1893+
partList = new GPartList(&gm);
1894+
partList->SetName(szelemSetName);
1895+
partList->add(pg->GetID());
1896+
gm.AddPartList(partList);
1897+
}
1898+
else
1899+
{
1900+
AddLogEntry("Cannot find part %s for %s", szelemSetName, name.c_str());
1901+
}
18981902
}
18991903
}
19001904

FEBio/FEBioInputModel.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1822,6 +1822,18 @@ FEItemListBuilder* FEBioInputModel::FindNamedSelection(const std::string& name,
18221822
if (filter & MESH_ITEM_FLAGS::FE_PART_FLAG)
18231823
{
18241824
GModel& m = GetFSModel().GetModel();
1825+
1826+
sname = name;
1827+
if (name[0] == '@')
1828+
{
1829+
size_t p = name.find("@part_list:");
1830+
if (p != string::npos)
1831+
{
1832+
sname = name.substr(p + 11, string::npos);
1833+
}
1834+
else return nullptr;
1835+
}
1836+
18251837
GPartList* pg = m.FindPartList(sname);
18261838
if (pg) return pg;
18271839
}

0 commit comments

Comments
 (0)