Files
FESADev/src/fesa/io/abaqus/domain_mapper.cpp
T

42 lines
1.3 KiB
C++

#include "fesa/io/abaqus/domain_mapper.h"
#include <utility>
#include "io/abaqus/domain_builder.h"
#include "io/abaqus/domain_mapping_context.h"
#include "io/abaqus/material_property_mapper.h"
#include "io/abaqus/step_definition_mapper.h"
#include "io/abaqus/surface_definition_mapper.h"
#include "io/abaqus/topology_mapper.h"
namespace fesa {
Result<Domain> AbaqusDomainMapper::Map(const ParsedInput& input) const {
abaqus_internal::DomainMappingContext context{input};
const abaqus_internal::TopologyMapper topology_mapper;
Status status = topology_mapper.Map(context);
if (!status.IsOk()) {
return Result<Domain>::Failure(std::move(status));
}
status = abaqus_internal::MaterialPropertyMapper{}.Map(context);
if (!status.IsOk()) {
return Result<Domain>::Failure(std::move(status));
}
status = topology_mapper.Finalize(context);
if (!status.IsOk()) {
return Result<Domain>::Failure(std::move(status));
}
status = abaqus_internal::SurfaceDefinitionMapper{}.Map(context);
if (!status.IsOk()) {
return Result<Domain>::Failure(std::move(status));
}
status = abaqus_internal::StepDefinitionMapper{}.Map(context);
if (!status.IsOk()) {
return Result<Domain>::Failure(std::move(status));
}
return abaqus_internal::DomainBuilder{}.Build(context);
}
} // namespace fesa