Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
BornAgain
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
mlz
BornAgain
Commits
3be0d1de
Commit
3be0d1de
authored
3 years ago
by
Matthias Puchner
Browse files
Options
Downloads
Patches
Plain Diff
complete InterferenceItems' serialization
parent
67c5801d
No related branches found
No related tags found
1 merge request
!573
Sample item serialization
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
GUI/Model/Sample/InterferenceItems.cpp
+60
-0
60 additions, 0 deletions
GUI/Model/Sample/InterferenceItems.cpp
GUI/Model/Sample/InterferenceItems.h
+22
-4
22 additions, 4 deletions
GUI/Model/Sample/InterferenceItems.h
with
82 additions
and
4 deletions
GUI/Model/Sample/InterferenceItems.cpp
+
60
−
0
View file @
3be0d1de
...
@@ -82,6 +82,15 @@ SelectionDescriptor<FTDecayFunction1DItem*> Interference1DLatticeItem::decayFunc
...
@@ -82,6 +82,15 @@ SelectionDescriptor<FTDecayFunction1DItem*> Interference1DLatticeItem::decayFunc
return
m_decayFunction
;
return
m_decayFunction
;
}
}
void
Interference1DLatticeItem
::
serialize
(
Serializer
&
s
)
{
s
.
assertVersion
(
0
);
s
.
rw
(
m_positionVariance
);
s
.
rw
(
m_length
);
s
.
rw
(
m_rotationAngle
);
s
.
rw
<
FTDecayFunction1DItemCatalog
>
(
m_decayFunction
);
}
// --------------------------------------------------------------------------------------------- //
// --------------------------------------------------------------------------------------------- //
SelectionDescriptor
<
Lattice2DItem
*>
Interference2DAbstractLatticeItem
::
latticeType
()
const
SelectionDescriptor
<
Lattice2DItem
*>
Interference2DAbstractLatticeItem
::
latticeType
()
const
...
@@ -132,6 +141,15 @@ std::unique_ptr<IInterference> Interference2DLatticeItem::createInterference() c
...
@@ -132,6 +141,15 @@ std::unique_ptr<IInterference> Interference2DLatticeItem::createInterference() c
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
}
}
void
Interference2DLatticeItem
::
serialize
(
Serializer
&
s
)
{
s
.
assertVersion
(
0
);
s
.
rw
(
m_positionVariance
);
s
.
rw
(
"integrate"
,
m_xiIntegration
);
s
.
rw
<
Lattice2DItemCatalog
>
(
m_latticeType
);
s
.
rw
<
FTDecayFunction2DItemCatalog
>
(
m_decayFunction
);
}
void
Interference2DLatticeItem
::
setDecayFunctionType
(
FTDecayFunction2DItem
*
p
)
void
Interference2DLatticeItem
::
setDecayFunctionType
(
FTDecayFunction2DItem
*
p
)
{
{
m_decayFunction
.
set
(
p
);
m_decayFunction
.
set
(
p
);
...
@@ -175,6 +193,19 @@ std::unique_ptr<IInterference> Interference2DParaCrystalItem::createInterference
...
@@ -175,6 +193,19 @@ std::unique_ptr<IInterference> Interference2DParaCrystalItem::createInterference
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
}
}
void
Interference2DParaCrystalItem
::
serialize
(
Serializer
&
s
)
{
s
.
assertVersion
(
0
);
s
.
rw
(
m_positionVariance
);
s
.
rw
(
"integrate"
,
m_xiIntegration
);
s
.
rw
<
Lattice2DItemCatalog
>
(
m_latticeType
);
s
.
rw
(
m_dampingLength
);
s
.
rw
(
m_domainSize1
);
s
.
rw
(
m_domainSize2
);
s
.
rw
<
FTDistribution2DItemCatalog
>
(
m_pdf1
);
s
.
rw
<
FTDistribution2DItemCatalog
>
(
m_pdf2
);
}
DoubleDescriptor
Interference2DParaCrystalItem
::
dampingLength
()
const
DoubleDescriptor
Interference2DParaCrystalItem
::
dampingLength
()
const
{
{
return
m_dampingLength
;
return
m_dampingLength
;
...
@@ -250,6 +281,16 @@ std::unique_ptr<IInterference> InterferenceFinite2DLatticeItem::createInterferen
...
@@ -250,6 +281,16 @@ std::unique_ptr<IInterference> InterferenceFinite2DLatticeItem::createInterferen
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
}
}
void
InterferenceFinite2DLatticeItem
::
serialize
(
Serializer
&
s
)
{
s
.
assertVersion
(
0
);
s
.
rw
(
m_positionVariance
);
s
.
rw
(
"integrate"
,
m_xiIntegration
);
s
.
rw
<
Lattice2DItemCatalog
>
(
m_latticeType
);
s
.
rw
(
m_domainSize1
);
s
.
rw
(
m_domainSize2
);
}
UIntDescriptor
InterferenceFinite2DLatticeItem
::
domainSize1
()
UIntDescriptor
InterferenceFinite2DLatticeItem
::
domainSize1
()
{
{
return
m_domainSize1
;
return
m_domainSize1
;
...
@@ -286,6 +327,14 @@ std::unique_ptr<IInterference> InterferenceHardDiskItem::createInterference() co
...
@@ -286,6 +327,14 @@ std::unique_ptr<IInterference> InterferenceHardDiskItem::createInterference() co
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
}
}
void
InterferenceHardDiskItem
::
serialize
(
Serializer
&
s
)
{
s
.
assertVersion
(
0
);
s
.
rw
(
m_positionVariance
);
s
.
rw
(
m_radius
);
s
.
rw
(
m_density
);
}
DoubleDescriptor
InterferenceHardDiskItem
::
density
()
const
DoubleDescriptor
InterferenceHardDiskItem
::
density
()
const
{
{
return
m_density
;
return
m_density
;
...
@@ -324,6 +373,17 @@ std::unique_ptr<IInterference> InterferenceRadialParaCrystalItem::createInterfer
...
@@ -324,6 +373,17 @@ std::unique_ptr<IInterference> InterferenceRadialParaCrystalItem::createInterfer
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
return
std
::
unique_ptr
<
IInterference
>
(
result
.
release
());
}
}
void
InterferenceRadialParaCrystalItem
::
serialize
(
Serializer
&
s
)
{
s
.
assertVersion
(
0
);
s
.
rw
(
m_positionVariance
);
s
.
rw
(
m_peakDistance
);
s
.
rw
(
m_dampingLength
);
s
.
rw
(
m_domainSize
);
s
.
rw
(
m_kappa
);
s
.
rw
<
FTDistribution1DItemCatalog
>
(
m_pdf
);
}
DoubleDescriptor
InterferenceRadialParaCrystalItem
::
peakDistance
()
const
DoubleDescriptor
InterferenceRadialParaCrystalItem
::
peakDistance
()
const
{
{
return
m_peakDistance
;
return
m_peakDistance
;
...
...
This diff is collapsed.
Click to expand it.
GUI/Model/Sample/InterferenceItems.h
+
22
−
4
View file @
3be0d1de
...
@@ -30,23 +30,24 @@ class InterferenceItem {
...
@@ -30,23 +30,24 @@ class InterferenceItem {
public:
public:
virtual
~
InterferenceItem
()
=
default
;
virtual
~
InterferenceItem
()
=
default
;
virtual
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
=
0
;
virtual
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
=
0
;
virtual
void
serialize
(
Serializer
&
s
)
=
0
;
DoubleDescriptor
positionVariance
()
const
;
DoubleDescriptor
positionVariance
()
const
;
virtual
void
serialize
(
Serializer
&
s
);
protected:
protected:
InterferenceItem
();
InterferenceItem
();
private:
DoubleProperty
m_positionVariance
;
DoubleProperty
m_positionVariance
;
};
};
// ------------------------------------------------------------------------------------------------
class
Interference1DLatticeItem
:
public
InterferenceItem
{
class
Interference1DLatticeItem
:
public
InterferenceItem
{
public:
public:
Interference1DLatticeItem
();
Interference1DLatticeItem
();
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
void
serialize
(
Serializer
&
s
)
override
;
DoubleDescriptor
length
()
const
;
DoubleDescriptor
length
()
const
;
DoubleDescriptor
rotationAngle
()
const
;
DoubleDescriptor
rotationAngle
()
const
;
...
@@ -60,6 +61,8 @@ private:
...
@@ -60,6 +61,8 @@ private:
SelectionProperty
<
FTDecayFunction1DItem
*>
m_decayFunction
;
SelectionProperty
<
FTDecayFunction1DItem
*>
m_decayFunction
;
};
};
// ------------------------------------------------------------------------------------------------
class
Interference2DAbstractLatticeItem
:
public
InterferenceItem
{
class
Interference2DAbstractLatticeItem
:
public
InterferenceItem
{
public:
public:
SelectionDescriptor
<
Lattice2DItem
*>
latticeType
()
const
;
SelectionDescriptor
<
Lattice2DItem
*>
latticeType
()
const
;
...
@@ -71,14 +74,17 @@ public:
...
@@ -71,14 +74,17 @@ public:
protected:
protected:
explicit
Interference2DAbstractLatticeItem
(
bool
xiIntegration
);
explicit
Interference2DAbstractLatticeItem
(
bool
xiIntegration
);
bool
m_xiIntegration
;
// #baMigration serialize
bool
m_xiIntegration
;
SelectionProperty
<
Lattice2DItem
*>
m_latticeType
;
SelectionProperty
<
Lattice2DItem
*>
m_latticeType
;
};
};
// ------------------------------------------------------------------------------------------------
class
Interference2DLatticeItem
:
public
Interference2DAbstractLatticeItem
{
class
Interference2DLatticeItem
:
public
Interference2DAbstractLatticeItem
{
public:
public:
Interference2DLatticeItem
();
Interference2DLatticeItem
();
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
void
serialize
(
Serializer
&
s
)
override
;
void
setDecayFunctionType
(
FTDecayFunction2DItem
*
p
);
void
setDecayFunctionType
(
FTDecayFunction2DItem
*
p
);
SelectionDescriptor
<
FTDecayFunction2DItem
*>
decayFunction
()
const
;
SelectionDescriptor
<
FTDecayFunction2DItem
*>
decayFunction
()
const
;
...
@@ -87,10 +93,13 @@ protected:
...
@@ -87,10 +93,13 @@ protected:
SelectionProperty
<
FTDecayFunction2DItem
*>
m_decayFunction
;
SelectionProperty
<
FTDecayFunction2DItem
*>
m_decayFunction
;
};
};
// ------------------------------------------------------------------------------------------------
class
Interference2DParaCrystalItem
:
public
Interference2DAbstractLatticeItem
{
class
Interference2DParaCrystalItem
:
public
Interference2DAbstractLatticeItem
{
public:
public:
Interference2DParaCrystalItem
();
Interference2DParaCrystalItem
();
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
void
serialize
(
Serializer
&
s
)
override
;
DoubleDescriptor
dampingLength
()
const
;
DoubleDescriptor
dampingLength
()
const
;
void
setDampingLength
(
double
dampingLength
);
void
setDampingLength
(
double
dampingLength
);
...
@@ -114,10 +123,13 @@ private:
...
@@ -114,10 +123,13 @@ private:
SelectionProperty
<
FTDistribution2DItem
*>
m_pdf2
;
SelectionProperty
<
FTDistribution2DItem
*>
m_pdf2
;
};
};
// ------------------------------------------------------------------------------------------------
class
InterferenceFinite2DLatticeItem
:
public
Interference2DAbstractLatticeItem
{
class
InterferenceFinite2DLatticeItem
:
public
Interference2DAbstractLatticeItem
{
public:
public:
InterferenceFinite2DLatticeItem
();
InterferenceFinite2DLatticeItem
();
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
void
serialize
(
Serializer
&
s
)
override
;
UIntDescriptor
domainSize1
();
UIntDescriptor
domainSize1
();
void
setDomainSize1
(
unsigned
int
domain_size1
);
void
setDomainSize1
(
unsigned
int
domain_size1
);
...
@@ -129,10 +141,13 @@ private:
...
@@ -129,10 +141,13 @@ private:
UIntProperty
m_domainSize2
;
UIntProperty
m_domainSize2
;
};
};
// ------------------------------------------------------------------------------------------------
class
InterferenceHardDiskItem
:
public
InterferenceItem
{
class
InterferenceHardDiskItem
:
public
InterferenceItem
{
public:
public:
InterferenceHardDiskItem
();
InterferenceHardDiskItem
();
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
void
serialize
(
Serializer
&
s
)
override
;
DoubleDescriptor
radius
()
const
;
DoubleDescriptor
radius
()
const
;
DoubleDescriptor
density
()
const
;
DoubleDescriptor
density
()
const
;
...
@@ -142,10 +157,13 @@ private:
...
@@ -142,10 +157,13 @@ private:
DoubleProperty
m_density
;
DoubleProperty
m_density
;
};
};
// ------------------------------------------------------------------------------------------------
class
InterferenceRadialParaCrystalItem
:
public
InterferenceItem
{
class
InterferenceRadialParaCrystalItem
:
public
InterferenceItem
{
public:
public:
InterferenceRadialParaCrystalItem
();
InterferenceRadialParaCrystalItem
();
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
std
::
unique_ptr
<
IInterference
>
createInterference
()
const
override
;
void
serialize
(
Serializer
&
s
)
override
;
DoubleDescriptor
peakDistance
()
const
;
DoubleDescriptor
peakDistance
()
const
;
DoubleDescriptor
dampingLength
()
const
;
DoubleDescriptor
dampingLength
()
const
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment