diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/i_deactivated_subdomain.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/i_deactivated_subdomain.md index 5c64bbd2f559d7b4b825455dec2265a9a7c6a1d9..09035e93f47cd2acf13cf8cb64555407f62bbeb9 100644 --- a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/i_deactivated_subdomain.md +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/i_deactivated_subdomain.md @@ -1,2 +1 @@ -It defines a set of deactivated subdomains, which includes a time interval and - material IDs. +\copydoc ProcessLib::DeactivatedSubdomain diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/i_line_segment.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/i_line_segment.md new file mode 100644 index 0000000000000000000000000000000000000000..8af8a86f1b79e88a5383d8b19bbb5098dc68382b --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/i_line_segment.md @@ -0,0 +1 @@ +\copydoc ProcessLib::DeactivatedSubdomain::line_segment diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/t_end.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/t_end.md new file mode 100644 index 0000000000000000000000000000000000000000..988f10533b87f58e437dec9cd6fee8003de9320f --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/t_end.md @@ -0,0 +1 @@ +Endpoint of a line segment. diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/t_start.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/t_start.md new file mode 100644 index 0000000000000000000000000000000000000000..ae5ffe2dc4d3ecf2a4e6e0dad5bcb815ba4388ef --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/line_segment/t_start.md @@ -0,0 +1 @@ +Starting point of the line segment. diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/t_time_curve.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/t_time_curve.md new file mode 100644 index 0000000000000000000000000000000000000000..647f7fe91a31057bacf12825aa40a4da5a9a58dc --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/t_time_curve.md @@ -0,0 +1,4 @@ +A curve for time dependent element deactivation. This allows fine graded control +over the elements being deactivated compared to the time interval. The curve, +referenced by name here, is used to map the time to position along the line +segment. diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/t_time_interval.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/t_time_interval.md deleted file mode 100644 index c6052b5abbcbbda9bee4bc646e1acadc0fe4176b..0000000000000000000000000000000000000000 --- a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/t_time_interval.md +++ /dev/null @@ -1,4 +0,0 @@ -The time interval of a set of deactivated subdomains. - -For its input syntax, please also see: -\copydoc ogs_file_param__prj__time_loop__processes__process__time_interval diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/i_time_interval.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/i_time_interval.md new file mode 100644 index 0000000000000000000000000000000000000000..b14388d939ba8303eeaaa24306332641432e34fc --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/i_time_interval.md @@ -0,0 +1,3 @@ +Time interval for subdomain deactivation. Contrary to a time curve the +deactivation happens at once as soon as the start time is reached until the end +time. diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/t_end.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/t_end.md new file mode 100644 index 0000000000000000000000000000000000000000..2da79a4ca941ad082ad7427cb193545bcc23ad67 --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/t_end.md @@ -0,0 +1 @@ +End time for domain deactivation. diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/t_start.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/t_start.md new file mode 100644 index 0000000000000000000000000000000000000000..c0fe06cb4536ddb0a80b6724b8f06b8156513cfc --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/deactivated_subdomain/time_interval/t_start.md @@ -0,0 +1 @@ +Start time for domain deactivation. diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/i_deactivated_subdomains.md b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/i_deactivated_subdomains.md index 4f14a8960fdd4b9dcc6571dca33d3e2df50a7683..e930f0d3fece076f59840fb1ead95dff31e95b5f 100644 --- a/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/i_deactivated_subdomains.md +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/deactivated_subdomains/i_deactivated_subdomains.md @@ -1,8 +1 @@ -It defines sets of deactivated subdomains, each of which contains a time - interval and material IDs. When the time is in the time interval of a set of - deactivated subdomains, the elements in the deactivated subdomains are excluded - from the local and global assembly, and also from the computation of the - secondary variables. - -Note: the nodes at the borders among active subdomains and inactive subdomains - are included through the entire computations. +Definition of subdomains for time dependent deactivation. diff --git a/ProcessLib/DeactivatedSubdomain.h b/ProcessLib/DeactivatedSubdomain.h index a2832b63dd470a6580024df06e21bcd2adb21c17..282b3ace0a30e695ccfc8088a931ddafddc20f52 100644 --- a/ProcessLib/DeactivatedSubdomain.h +++ b/ProcessLib/DeactivatedSubdomain.h @@ -38,6 +38,25 @@ struct DeactivatedSubdomainMesh std::vector<MeshLib::Node*> const inner_nodes; }; +/// Time depend subdomain deactivation. +/// +/// Subdomain deactivation is space and time dependent. +/// The spatial extent of deactivated elements is defined through a set of +/// material ids. +/// Additionally a line segment separates through its normal plane and position +/// on the line segment an active and inactive part. +/// +/// The subdomain can be deactivated at once using a time interval. +/// For fine grained control a time curve can be specified. +/// It maps current time to position on the line segment. +/// Elements, which center points lie left of this position are deactivated. +/// +/// \internal +/// The deactivated elements are excluded from the assembly, pre and post call, +/// secondary variables computation and the like. To keep the size of the global +/// linear equation system artificial Dirichlet boundary conditions are applied +/// on the interior of the deactivated subdomain. The nodes on the border +/// between the active and inactive elements are not affected. struct DeactivatedSubdomain { DeactivatedSubdomain(