42 lines
1.3 KiB
C++
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
|