Skip to content
Snippets Groups Projects
Commit 09a467fd authored by Christoph Lehmann's avatar Christoph Lehmann
Browse files

[PL] started axial symmetry

parent bfc13f65
No related branches found
No related tags found
No related merge requests found
Showing
with 28 additions and 20 deletions
......@@ -54,8 +54,8 @@ GenericNaturalBoundaryCondition<BoundaryConditionData,
variable_id, component_id, std::move(all_mesh_subsets), _elements));
createLocalAssemblers<LocalAssemblerImplementation>(
global_dim, _elements, *_dof_table_boundary, _integration_order,
_local_assemblers, _data);
global_dim, _elements, *_dof_table_boundary, _local_assemblers,
false /* TODO */, _integration_order, _data);
}
template <typename BoundaryConditionData,
......
......@@ -38,11 +38,12 @@ protected:
public:
GenericNaturalBoundaryConditionLocalAssembler(
MeshLib::Element const& e, unsigned const integration_order)
MeshLib::Element const& e, bool is_axially_symmetric,
unsigned const integration_order)
: _integration_method(integration_order),
_shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType,
IntegrationMethod, GlobalDim>(
e, _integration_method))
e, is_axially_symmetric, _integration_method))
{
}
......
......@@ -31,9 +31,10 @@ public:
NeumannBoundaryConditionLocalAssembler(
MeshLib::Element const& e,
std::size_t const local_matrix_size,
bool is_axially_symmetric,
unsigned const integration_order,
Parameter<double> const& neumann_bc_parameter)
: Base(e, integration_order),
: Base(e, is_axially_symmetric, integration_order),
_neumann_bc_parameter(neumann_bc_parameter),
_local_rhs(local_matrix_size)
{
......
......@@ -31,11 +31,12 @@ class RobinBoundaryConditionLocalAssembler final
ShapeFunction, IntegrationMethod, GlobalDim>;
public:
RobinBoundaryConditionLocalAssembler(
MeshLib::Element const& e, std::size_t const local_matrix_size,
unsigned const integration_order,
RobinBoundaryConditionData const& data)
: Base(e, integration_order),
RobinBoundaryConditionLocalAssembler(MeshLib::Element const& e,
std::size_t const local_matrix_size,
bool is_axially_symmetric,
unsigned const integration_order,
RobinBoundaryConditionData const& data)
: Base(e, is_axially_symmetric, integration_order),
_data(data),
_local_K(local_matrix_size, local_matrix_size),
_local_rhs(local_matrix_size)
......
......@@ -66,6 +66,7 @@ public:
/// element matrix.
LocalAssemblerData(MeshLib::Element const& element,
std::size_t const /*local_matrix_size*/,
bool is_axially_symmetric,
unsigned const integration_order,
GroundwaterFlowProcessData const& process_data)
: _element(element),
......@@ -73,7 +74,7 @@ public:
_integration_method(integration_order),
_shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType,
IntegrationMethod, GlobalDim>(
element, _integration_method))
element, is_axially_symmetric, _integration_method))
{
}
......
......@@ -44,8 +44,8 @@ void GroundwaterFlowProcess::initializeConcreteProcess(
unsigned const integration_order)
{
ProcessLib::createLocalAssemblers<LocalAssemblerData>(
mesh.getDimension(), mesh.getElements(), dof_table, integration_order,
_local_assemblers, _process_data);
mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers,
mesh.isAxiallySymmetric(), integration_order, _process_data);
_secondary_variables.addSecondaryVariable(
"darcy_velocity_x", 1,
......
......@@ -62,6 +62,7 @@ public:
/// element matrix.
LocalAssemblerData(MeshLib::Element const& element,
std::size_t const local_matrix_size,
bool is_axially_symmetric,
unsigned const integration_order,
HeatConductionProcessData const& process_data)
: _element(element),
......@@ -69,11 +70,12 @@ public:
_integration_method(integration_order),
_shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType,
IntegrationMethod, GlobalDim>(
element, _integration_method))
element, is_axially_symmetric, _integration_method))
{
// This assertion is valid only if all nodal d.o.f. use the same shape
// matrices.
assert(local_matrix_size == ShapeFunction::NPOINTS * NUM_NODAL_DOF);
(void) local_matrix_size;
}
void assemble(double const t, std::vector<double> const& local_x,
......
......@@ -38,8 +38,8 @@ void HeatConductionProcess::initializeConcreteProcess(
unsigned const integration_order)
{
ProcessLib::createLocalAssemblers<LocalAssemblerData>(
mesh.getDimension(), mesh.getElements(), dof_table, integration_order,
_local_assemblers, _process_data);
mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers,
mesh.isAxiallySymmetric(), integration_order, _process_data);
_secondary_variables.addSecondaryVariable(
"heat_flux_x", 1,
......
......@@ -151,7 +151,7 @@ public:
auto const shape_matrices =
initShapeMatrices<ShapeFunction, ShapeMatricesType,
IntegrationMethod, DisplacementDim>(
e, _integration_method);
e, false /* TODO */, _integration_method);
for (unsigned ip = 0; ip < n_integration_points; ip++)
{
......
......@@ -110,12 +110,13 @@ template <typename ShapeFunction_, typename IntegrationMethod_,
TESLocalAssembler<ShapeFunction_, IntegrationMethod_, GlobalDim>::
TESLocalAssembler(MeshLib::Element const& e,
std::size_t const /*local_matrix_size*/,
bool is_axially_symmetric,
unsigned const integration_order,
AssemblyParams const& asm_params)
: _integration_method(integration_order),
_shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType,
IntegrationMethod_, GlobalDim>(
e, _integration_method)),
e, is_axially_symmetric, _integration_method)),
_d(asm_params,
// TODO narrowing conversion
static_cast<const unsigned>(
......
......@@ -66,6 +66,7 @@ public:
TESLocalAssembler(MeshLib::Element const& e,
std::size_t const local_matrix_size,
bool is_axially_symmetric,
unsigned const integration_order,
AssemblyParams const& asm_params);
......
......@@ -140,8 +140,8 @@ void TESProcess::initializeConcreteProcess(
MeshLib::Mesh const& mesh, unsigned const integration_order)
{
ProcessLib::createLocalAssemblers<TESLocalAssembler>(
mesh.getDimension(), mesh.getElements(), dof_table, integration_order,
_local_assemblers, _assembly_params);
mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers,
mesh.isAxiallySymmetric(), integration_order, _assembly_params);
initializeSecondaryVariables();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment